diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-01-13 12:45:47 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-01-13 12:45:47 -0800 |
commit | 78f4ed59328b46efab1fd98037cc35c65fc7cf68 (patch) | |
tree | 18bac3a298005d81afd110dff455b3cb0a22cf9b | |
parent | a4b924c71acf88ca536d05c52280902abc598df8 (diff) |
use flexible automatically managed buffer in relooper
-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 |