@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.getElts().length == 1) ? a.getElts()[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); return (newArray == array) ? this : new Splat(newArray); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand[] newElts = new Operand[elts.length]; for (int i = 0; i < elts.length; i++) { newElts[i] = elts[i].getSimplifiedOperand(valueMap, force); } return new Array(newElts); }
@Override public Operand cloneForInlining(InlinerInfo ii) { if (hasKnownValue()) return this; Operand[] newElts = new Operand[elts.length]; for (int i = 0; i < elts.length; i++) { newElts[i] = elts[i].cloneForInlining(ii); } return new Array(newElts); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newSource = source.getSimplifiedOperand(valueMap, force); return newSource == source ? this : new AsString(newSource); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newSelf = self.getSimplifiedOperand(valueMap, force); return newSelf == self ? this : new WrappedIRClosure((Variable)newSelf, closure); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.elts.length == 1) ? a.elts[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
public Operand cloneForInlining(CloneInfo ii) { Operand clonedSymbolName = symbolName.cloneForInlining(ii); return clonedSymbolName == symbolName ? this : new DynamicSymbol(clonedSymbolName); }
private Operand[] adjustVariableDepth(Operand[] args, int depthFromSuper) { Operand[] newArgs = new Operand[args.length]; for (int i = 0; i < args.length; i++) { // Because of keyword args, we can have a keyword-arg hash in the call args. if (args[i] instanceof Hash) { newArgs[i] = ((Hash) args[i]).cloneForLVarDepth(depthFromSuper); } else { newArgs[i] = ((DepthCloneable) args[i]).cloneForDepth(depthFromSuper); } } return newArgs; }
public TemporaryLocalVariable getNewTemporaryVariableFor(LocalVariable var) { temporaryVariableIndex++; return new TemporaryLocalReplacementVariable(var.getId(), temporaryVariableIndex); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.getElts().length == 1) ? a.getElts()[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
@Override public Operand cloneForInlining(CloneInfo ii) { if (hasKnownValue()) return this; Operand[] newElts = new Operand[elts.length]; for (int i = 0; i < elts.length; i++) { newElts[i] = elts[i].cloneForInlining(ii); } return new Array(newElts); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); /* * SSS FIXME: Cannot convert this to an Array operand! * if (_array instanceof Variable) { _array = ((Variable)_array).getValue(valueMap); } */ return (newArray == array) ? this : new Splat(newArray); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand[] newElts = new Operand[elts.length]; for (int i = 0; i < elts.length; i++) { newElts[i] = elts[i].getSimplifiedOperand(valueMap, force); } return new Array(newElts); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newSource = source.getSimplifiedOperand(valueMap, force); return newSource == source ? this : new AsString(newSource); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newSelf = self.getSimplifiedOperand(valueMap, force); return newSelf == self ? this : new WrappedIRClosure((Variable)newSelf, closure); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.elts.length == 1) ? a.elts[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
private Operand[] adjustVariableDepth(Operand[] args, int depthFromSuper) { Operand[] newArgs = new Operand[args.length]; for (int i = 0; i < args.length; i++) { // Because of keyword args, we can have a keyword-arg hash in the call args. if (args[i] instanceof Hash) { newArgs[i] = ((Hash) args[i]).cloneForLVarDepth(depthFromSuper); } else { newArgs[i] = ((DepthCloneable) args[i]).cloneForDepth(depthFromSuper); } } return newArgs; }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); return (newArray == array) ? this : new Splat(newArray); }