public InlinerInfo(CallBase call, CFG c) { this.varRenameMap = new HashMap<Variable, Variable>(); this.lblRenameMap = new HashMap<Label, Label>(); this.bbRenameMap = new HashMap<BasicBlock, BasicBlock>(); this.yieldSites = new ArrayList(); this.call = call; this.callArgs = call.getCallArgs(); this.callerCFG = c; this.callReceiver = call.getReceiver(); this.inClosureCloneMode = false; this.inClosureInlineMode = false; this.canMapArgsStatically = !containsSplat(callArgs); this.argsArray = this.canMapArgsStatically ? null : getInlineHostScope().getNewTemporaryVariable(); synchronized (globalInlineCount) { this.inlineVarPrefix = "%in" + globalInlineCount + "_"; globalInlineCount++; } }
public Operand getCallClosure() { return call.getClosureArg(callerCFG.getScope().getManager().getNil()); }