diff options
Diffstat (limited to 'lib/Target/JSBackend/JSBackend.cpp')
-rw-r--r-- | lib/Target/JSBackend/JSBackend.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/Target/JSBackend/JSBackend.cpp b/lib/Target/JSBackend/JSBackend.cpp index b3ac403505..ac6aaf053c 100644 --- a/lib/Target/JSBackend/JSBackend.cpp +++ b/lib/Target/JSBackend/JSBackend.cpp @@ -1317,10 +1317,8 @@ static const SwitchInst *considerSwitch(const Instruction *I) { void JSWriter::printFunctionBody(const Function *F) { assert(!F->isDeclaration()); - // Prepare relooper TODO: resize buffer as needed - #define RELOOPER_BUFFER 10*1024*1024 - static char *buffer = new char[RELOOPER_BUFFER]; - Relooper::SetOutputBuffer(buffer, RELOOPER_BUFFER); + // Prepare relooper + Relooper::MakeOutputBuffer(1024*1024); Relooper R; //if (!canReloop(F)) R.SetEmulate(true); R.SetAsmJSMode(1); @@ -1454,6 +1452,7 @@ void JSWriter::printFunctionBody(const Function *F) { Out << " " + getAssign("sp", Type::getInt32Ty(F->getContext())) + "STACKTOP;"; // Emit (relooped) code + char *buffer = Relooper::GetOutputBuffer(); nl(Out) << buffer; // Ensure a final return if necessary |