From 78f4ed59328b46efab1fd98037cc35c65fc7cf68 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 13 Jan 2014 12:45:47 -0800 Subject: use flexible automatically managed buffer in relooper --- lib/Target/JSBackend/JSBackend.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lib/Target/JSBackend/JSBackend.cpp') 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 -- cgit v1.2.3-18-g5258