Remove scope chain parameter from IonBuilder (bug 773123, r=jandem).

This commit is contained in:
David Anderson 2012-07-12 15:03:54 -07:00
parent a1979795df
commit 0dee9273a5
3 changed files with 7 additions and 12 deletions

View File

@ -879,7 +879,7 @@ IonCompile(JSContext *cx, JSScript *script, StackFrame *fp, jsbytecode *osrPc)
types::AutoEnterCompilation enterCompiler(cx, script, false, 0);
AutoCompilerRoots roots(script->compartment()->rt);
IonBuilder builder(cx, fp->scopeChain(), temp, graph, &oracle, *info);
IonBuilder builder(cx, temp, graph, &oracle, *info);
if (!TestCompiler(builder, graph)) {
IonSpew(IonSpew_Abort, "IM Compilation failed.");
return false;

View File

@ -57,11 +57,10 @@
using namespace js;
using namespace js::ion;
IonBuilder::IonBuilder(JSContext *cx, HandleObject scopeChain, TempAllocator &temp, MIRGraph &graph,
TypeOracle *oracle, CompileInfo &info, size_t inliningDepth, uint32 loopDepth)
IonBuilder::IonBuilder(JSContext *cx, TempAllocator &temp, MIRGraph &graph, TypeOracle *oracle,
CompileInfo &info, size_t inliningDepth, uint32 loopDepth)
: MIRGenerator(cx, temp, graph, info),
script(info.script()),
initialScopeChain_(scopeChain),
loopDepth_(loopDepth),
callerResumePoint_(NULL),
callerBuilder_(NULL),
@ -582,7 +581,7 @@ IonBuilder::initScopeChain()
return false;
}
} else {
scope = MConstant::New(ObjectValue(*initialScopeChain_));
scope = MConstant::New(ObjectValue(*script->global()));
current->add(scope);
}
@ -2807,10 +2806,7 @@ IonBuilder::jsop_call_inline(HandleFunction callee, uint32 argc, bool constructi
if (!oracle.init(cx, callee->script()))
return false;
RootedObject scopeChain(NULL);
IonBuilder inlineBuilder(cx, scopeChain, temp(), graph(), &oracle,
*info, inliningDepth + 1, loopDepth_);
IonBuilder inlineBuilder(cx, temp(), graph(), &oracle, *info, inliningDepth + 1, loopDepth_);
// Create |this| on the caller-side for inlined constructors.
MDefinition *thisDefn = NULL;

View File

@ -200,8 +200,8 @@ class IonBuilder : public MIRGenerator
static int CmpSuccessors(const void *a, const void *b);
public:
IonBuilder(JSContext *cx, HandleObject scopeChain, TempAllocator &temp, MIRGraph &graph,
TypeOracle *oracle, CompileInfo &info, size_t inliningDepth = 0, uint32 loopDepth = 0);
IonBuilder(JSContext *cx, TempAllocator &temp, MIRGraph &graph, TypeOracle *oracle,
CompileInfo &info, size_t inliningDepth = 0, uint32 loopDepth = 0);
bool build();
bool buildInline(IonBuilder *callerBuilder, MResumePoint *callerResumePoint,
@ -446,7 +446,6 @@ class IonBuilder : public MIRGenerator
private:
jsbytecode *pc;
HandleObject initialScopeChain_;
MBasicBlock *current;
uint32 loopDepth_;