protected EQQInstr(IRScope scope, Variable result, Operand v1, Operand v2, boolean splattedValue, CallSite callSite, long callSiteID) { super(scope, Operation.EQQ, CallType.FUNCTIONAL, result, scope.getManager().getRuntime().newSymbol("==="), v1, new Operand[] { v2 }, null, false, callSite, callSiteID); this.splattedValue = splattedValue; }
public UnresolvedSuperInstr(IRScope scope, Operation op, Variable result, Operand receiver, Operand[] args, Operand closure, boolean isPotentiallyRefined, CallSite callSite, long callSiteId) { super(scope, op, CallType.SUPER, result, scope.getManager().getRuntime().newSymbol(UNKNOWN_SUPER_TARGET), receiver, args, closure, isPotentiallyRefined, callSite, callSiteId); }
public EQQInstr(IRScope scope, Variable result, Operand v1, Operand v2, boolean splattedValue) { super(scope, Operation.EQQ, CallType.FUNCTIONAL, result, scope.getManager().getRuntime().newSymbol("==="), v1, new Operand[] { v2 }, null, false); assert result != null: "EQQInstr result is null"; this.splattedValue = splattedValue; }
public UnresolvedSuperInstr(IRScope scope, Operation op, Variable result, Operand receiver, Operand[] args, Operand closure, boolean isPotentiallyRefined, CallSite callSite, long callSiteId) { super(scope, op, CallType.SUPER, result, scope.getManager().getRuntime().newSymbol(UNKNOWN_SUPER_TARGET), receiver, args, closure, isPotentiallyRefined, callSite, callSiteId); }
public UnresolvedSuperInstr(IRScope scope, Operation op, Variable result, Operand receiver, Operand[] args, Operand closure, boolean isPotentiallyRefined) { super(scope, op, CallType.SUPER, result, scope.getManager().getRuntime().newSymbol(UNKNOWN_SUPER_TARGET), receiver, args, closure, isPotentiallyRefined); }
public ArrayDerefInstr(IRScope scope, Variable result, Operand obj, FrozenString arg0, CallSite callSite, long callSiteId) { super(scope, Operation.ARRAY_DEREF, CallType.FUNCTIONAL, result, scope.getManager().getRuntime().newSymbol(AREF), obj, new Operand[] {arg0}, false, callSite, callSiteId); key = arg0; }
protected EQQInstr(IRScope scope, Variable result, Operand v1, Operand v2, boolean splattedValue, CallSite callSite, long callSiteID) { super(scope, Operation.EQQ, CallType.FUNCTIONAL, result, scope.getManager().getRuntime().newSymbol("==="), v1, new Operand[] { v2 }, null, false, callSite, callSiteID); this.splattedValue = splattedValue; }
public UnresolvedSuperInstr(IRScope scope, Operation op, Variable result, Operand receiver, Operand[] args, Operand closure, boolean isPotentiallyRefined) { super(scope, op, CallType.SUPER, result, scope.getManager().getRuntime().newSymbol(UNKNOWN_SUPER_TARGET), receiver, args, closure, isPotentiallyRefined); }
public ArrayDerefInstr(IRScope scope, Variable result, Operand obj, FrozenString arg0, CallSite callSite, long callSiteId) { super(scope, Operation.ARRAY_DEREF, CallType.FUNCTIONAL, result, scope.getManager().getRuntime().newSymbol(AREF), obj, new Operand[] {arg0}, false, callSite, callSiteId); key = arg0; }
public EQQInstr(IRScope scope, Variable result, Operand v1, Operand v2, boolean splattedValue) { super(scope, Operation.EQQ, CallType.FUNCTIONAL, result, scope.getManager().getRuntime().newSymbol("==="), v1, new Operand[] { v2 }, null, false); assert result != null: "EQQInstr result is null"; this.splattedValue = splattedValue; }
public NthRef(IRScope scope, int matchNumber) { super(scope.getManager().getRuntime().newSymbol("$" + matchNumber)); this.matchNumber = matchNumber; }
public IGVCFGVisitor(CFG cfg, PrintStream writer, String name) { this.writer = writer; listener = (IGVInstrListener) cfg.getScope().getManager().getInstructionsListener(); CFG(cfg, name); listener.reset(); }
private static Map<RubySymbol, LocalVariable> decodeScopeLocalVariables(IRReaderDecoder decoder, IRScope scope) { int size = decoder.decodeInt(); Map<RubySymbol, LocalVariable> localVariables = new HashMap(size); for (int i = 0; i < size; i++) { RubySymbol name = scope.getManager().getRuntime().newSymbol(decoder.decodeByteList()); int offset = decoder.decodeInt(); localVariables.put(name, scope instanceof IRClosure ? // SSS FIXME: do we need to read back locallyDefined boolean? new ClosureLocalVariable(name, 0, offset) : new LocalVariable(name, 0, offset)); } return localVariables; }
private static Map<RubySymbol, LocalVariable> decodeScopeLocalVariables(IRReaderDecoder decoder, IRScope scope) { int size = decoder.decodeInt(); Map<RubySymbol, LocalVariable> localVariables = new HashMap(size); for (int i = 0; i < size; i++) { RubySymbol name = scope.getManager().getRuntime().newSymbol(decoder.decodeByteList()); int offset = decoder.decodeInt(); localVariables.put(name, scope instanceof IRClosure ? // SSS FIXME: do we need to read back locallyDefined boolean? new ClosureLocalVariable(name, 0, offset) : new LocalVariable(name, 0, offset)); } return localVariables; }
public IGVCFGVisitor(CFG cfg, PrintStream writer, String name) { this.writer = writer; listener = (IGVInstrListener) cfg.getScope().getManager().getInstructionsListener(); CFG(cfg, name); listener.reset(); }
private Object makeSureDependencyHasRunOnce(Class<? extends CompilerPass> passClass, IRScope scope, boolean childScope) { CompilerPass pass = createPassInstance(passClass); Object data = pass.previouslyRun(scope); if (data == null) { data = pass.run(scope, false, childScope); } else { for (CompilerPassListener listener: scope.getManager().getListeners()) { listener.alreadyExecuted(pass, scope, data, childScope); } } return data; }
private Object makeSureDependencyHasRunOnce(Class<? extends CompilerPass> passClass, IRScope scope, boolean childScope) { CompilerPass pass = createPassInstance(passClass); Object data = pass.previouslyRun(scope); if (data == null) { data = pass.run(scope, childScope); } else { for (CompilerPassListener listener: scope.getManager().getListeners()) { listener.alreadyExecuted(pass, scope, data, childScope); } } return data; }
private Object makeSureDependencyHasRunOnce(Class<? extends CompilerPass> passClass, IRScope scope, boolean childScope) { CompilerPass pass = createPassInstance(passClass); Object data = pass.previouslyRun(scope); if (data == null) { data = pass.run(scope, false, childScope); } else { for (CompilerPassListener listener: scope.getManager().getListeners()) { listener.alreadyExecuted(pass, scope, data, childScope); } } return data; }
public LocalVariable getNewFlipStateVariable() { ByteList flip = FLIP.dup(); flip.append(allocateNextPrefixedName("%flip")); return getLocalVariable(getManager().getRuntime().newSymbol(flip) , 0); }
public void inlineMethod(IRScope method, RubyModule implClass, int classToken, BasicBlock basicBlock, CallBase call) { // Inline depends(cfg()); new CFGInliner(cfg).inlineMethod(method, implClass, classToken, basicBlock, call); // Reset state resetState(); // Re-run opts for (CompilerPass pass: getManager().getInliningCompilerPasses(this)) { pass.run(this); } }