Right now the code generation for a string literal just calls luaS_new in place. We cannot rely on the C compiler moving this allocation outside of a loop, as it has no way to know that luaS_new is constant, so the Titan compiler is the one that has to do it.