Modifier and Type | Field and Description |
---|---|
protected List<Instr> |
IRBuilder.instructions |
Modifier and Type | Method and Description |
---|---|
Instr[] |
IRManager.optimizeTemporaryVariablesIfEnabled(IRScope scope,
Instr[] instrs) |
Modifier and Type | Method and Description |
---|---|
void |
IRBuilder.addInstr(Instr instr) |
void |
IRBuilder.addInstrAtBeginning(Instr instr) |
void |
IRVisitor.Instr(Instr instr) |
Instr[] |
IRManager.optimizeTemporaryVariablesIfEnabled(IRScope scope,
Instr[] instrs) |
void |
IRVisitor.visit(Instr instr) |
Modifier and Type | Method and Description |
---|---|
InterpreterContext |
IRScriptBody.allocateInterpreterContext(List<Instr> instructions) |
InterpreterContext |
IRScope.allocateInterpreterContext(List<Instr> instructions)
Make version specific to scope which needs it (e.g.
|
InterpreterContext |
IREvalScript.allocateInterpreterContext(List<Instr> instructions) |
InterpreterContext |
IRClosure.allocateInterpreterContext(List<Instr> instructions) |
void |
IRScope.computeScopeFlagsEarly(List<Instr> instructions)
This is called when building an IRMethod before it has completed the build and made an IC
yet.
|
Modifier and Type | Method and Description |
---|---|
abstract void |
FlowGraphNode.applyTransferFunction(Instr i)
Apply transfer function to the instruction
|
abstract void |
FlowGraphNode.buildDataFlowVars(Instr i)
Builds the data-flow variables (or facts) for a particular instruction.
|
Modifier and Type | Method and Description |
---|---|
void |
UnboxableOpsAnalysisNode.applyTransferFunction(Instr i) |
void |
StoreLocalVarPlacementNode.applyTransferFunction(Instr i) |
void |
LoadLocalVarPlacementNode.applyTransferFunction(Instr i) |
void |
LiveVariableNode.applyTransferFunction(Instr i) |
void |
UnboxableOpsAnalysisNode.buildDataFlowVars(Instr i) |
void |
StoreLocalVarPlacementNode.buildDataFlowVars(Instr i) |
void |
LoadLocalVarPlacementNode.buildDataFlowVars(Instr i) |
void |
LiveVariableNode.buildDataFlowVars(Instr i) |
Modifier and Type | Method and Description |
---|---|
void |
UnboxableOpsAnalysisNode.boxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state,
Class reqdType,
Map<Variable,TemporaryLocalVariable> unboxMap,
Variable v,
List<Instr> newInstrs) |
void |
UnboxableOpsAnalysisNode.unboxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state,
Class reqdType,
Map<Variable,TemporaryLocalVariable> unboxMap,
Variable v,
List<Instr> newInstrs) |
Modifier and Type | Method and Description |
---|---|
Instr |
ZSuperInstr.clone(CloneInfo ii) |
Instr |
YieldInstr.clone(CloneInfo ii) |
Instr |
UnresolvedSuperInstr.clone(CloneInfo ii) |
Instr |
UndefMethodInstr.clone(CloneInfo ii) |
Instr |
TraceInstr.clone(CloneInfo ii) |
Instr |
ToAryInstr.clone(CloneInfo ii) |
Instr |
ThrowExceptionInstr.clone(CloneInfo ii) |
Instr |
ThreadPollInstr.clone(CloneInfo ii) |
Instr |
StoreLocalVarInstr.clone(CloneInfo ii) |
Instr |
SetCapturedVarInstr.clone(CloneInfo ii) |
Instr |
SearchConstInstr.clone(CloneInfo ii) |
Instr |
RuntimeHelperCall.clone(CloneInfo ii) |
Instr |
ReturnInstr.clone(CloneInfo info) |
Instr |
RestArgMultipleAsgnInstr.clone(CloneInfo ii) |
Instr |
RescueEQQInstr.clone(CloneInfo ii) |
Instr |
ReqdArgMultipleAsgnInstr.clone(CloneInfo ii) |
Instr |
ReifyClosureInstr.clone(CloneInfo info) |
Instr |
RecordEndBlockInstr.clone(CloneInfo ii) |
Instr |
ReceiveSelfInstr.clone(CloneInfo info) |
Instr |
ReceiveRubyExceptionInstr.clone(CloneInfo ii) |
Instr |
ReceiveRestArgInstr.clone(CloneInfo info) |
Instr |
ReceivePreReqdArgInstr.clone(CloneInfo info) |
Instr |
ReceivePostReqdArgInstr.clone(CloneInfo info) |
Instr |
ReceiveOptArgInstr.clone(CloneInfo info) |
Instr |
ReceiveKeywordRestArgInstr.clone(CloneInfo ii) |
Instr |
ReceiveKeywordArgInstr.clone(CloneInfo ii) |
Instr |
ReceiveJRubyExceptionInstr.clone(CloneInfo ii) |
Instr |
RaiseRequiredKeywordArgumentError.clone(CloneInfo ii) |
Instr |
RaiseArgumentErrorInstr.clone(CloneInfo ii) |
Instr |
PutGlobalVarInstr.clone(CloneInfo ii) |
Instr |
PutFieldInstr.clone(CloneInfo ii) |
Instr |
PutConstInstr.clone(CloneInfo ii) |
Instr |
PutClassVariableInstr.clone(CloneInfo ii) |
Instr |
PushFrameInstr.clone(CloneInfo ii) |
Instr |
PushBindingInstr.clone(CloneInfo ii) |
Instr |
ProcessModuleBodyInstr.clone(CloneInfo ii) |
Instr |
PopFrameInstr.clone(CloneInfo ii) |
Instr |
PopBindingInstr.clone(CloneInfo ii) |
Instr |
OptArgMultipleAsgnInstr.clone(CloneInfo ii) |
Instr |
NoResultCallInstr.clone(CloneInfo ii) |
Instr |
NopInstr.clone(CloneInfo ii) |
Instr |
NonlocalReturnInstr.clone(CloneInfo info) |
Instr |
ModuleVersionGuardInstr.clone(CloneInfo ii) |
Instr |
MatchInstr.clone(CloneInfo ii) |
Instr |
LoadLocalVarInstr.clone(CloneInfo ii) |
Instr |
LoadImplicitClosureInstr.clone(CloneInfo info) |
Instr |
LoadFrameClosureInstr.clone(CloneInfo info) |
Instr |
LineNumberInstr.clone(CloneInfo ii) |
Instr |
LexicalSearchConstInstr.clone(CloneInfo ii) |
Instr |
LabelInstr.clone(CloneInfo ii) |
Instr |
JumpInstr.clone(CloneInfo ii) |
abstract Instr |
Instr.clone(CloneInfo info)
Clone the instruction for use in an inlining context (either when a scope is inlined into
another scope, or when a block has to be cloned because its associated call belongs to
an inlined scope).
|
Instr |
InstanceSuperInstr.clone(CloneInfo ii) |
Instr |
InlinedLineNumberInstr.clone(CloneInfo ii) |
Instr |
InheritanceSearchConstInstr.clone(CloneInfo ii) |
Instr |
GVarAliasInstr.clone(CloneInfo ii) |
Instr |
GetGlobalVariableInstr.clone(CloneInfo ii) |
Instr |
GetFieldInstr.clone(CloneInfo ii) |
Instr |
GetEncodingInstr.clone(CloneInfo ii) |
Instr |
GetClassVariableInstr.clone(CloneInfo ii) |
Instr |
GetClassVarContainerModuleInstr.clone(CloneInfo ii) |
Instr |
ExceptionRegionStartMarkerInstr.clone(CloneInfo ii) |
Instr |
ExceptionRegionEndMarkerInstr.clone(CloneInfo ii) |
Instr |
EQQInstr.clone(CloneInfo ii) |
Instr |
DefineModuleInstr.clone(CloneInfo ii) |
Instr |
DefineMetaClassInstr.clone(CloneInfo ii) |
Instr |
DefineInstanceMethodInstr.clone(CloneInfo ii) |
Instr |
DefineClassMethodInstr.clone(CloneInfo ii) |
Instr |
DefineClassInstr.clone(CloneInfo ii) |
Instr |
CopyInstr.clone(CloneInfo ii) |
Instr |
ConstMissingInstr.clone(CloneInfo ii) |
Instr |
ClassSuperInstr.clone(CloneInfo ii) |
Instr |
CheckForLJEInstr.clone(CloneInfo info) |
Instr |
CheckArityInstr.clone(CloneInfo info) |
Instr |
CheckArgsArrayArityInstr.clone(CloneInfo ii) |
Instr |
CallInstr.clone(CloneInfo ii) |
Instr |
BUndefInstr.clone(CloneInfo ii) |
Instr |
BuildSplatInstr.clone(CloneInfo ii) |
Instr |
BuildRangeInstr.clone(CloneInfo ii) |
Instr |
BuildLambdaInstr.clone(CloneInfo ii) |
Instr |
BuildDynRegExpInstr.clone(CloneInfo ii) |
Instr |
BuildCompoundStringInstr.clone(CloneInfo ii) |
Instr |
BuildCompoundArrayInstr.clone(CloneInfo ii) |
Instr |
BTrueInstr.clone(CloneInfo ii) |
Instr |
BreakInstr.clone(CloneInfo info) |
Instr |
BNilInstr.clone(CloneInfo ii) |
Instr |
BNEInstr.clone(CloneInfo ii) |
Instr |
BlockGivenInstr.clone(CloneInfo ii) |
Instr |
BFalseInstr.clone(CloneInfo ii) |
Instr |
BEQInstr.clone(CloneInfo ii) |
Instr |
BacktickInstr.clone(CloneInfo ii) |
Instr |
AttrAssignInstr.clone(CloneInfo ii) |
Instr |
ArgScopeDepthInstr.clone(CloneInfo ii) |
Instr |
AliasInstr.clone(CloneInfo ii) |
Instr |
UnresolvedSuperInstr.discardResult() |
Instr |
InstanceSuperInstr.discardResult() |
Instr |
ClassSuperInstr.discardResult() |
Instr |
CallInstr.discardResult() |
Modifier and Type | Class and Description |
---|---|
class |
AluInstr |
class |
BoxBooleanInstr |
class |
BoxFixnumInstr |
class |
BoxFloatInstr |
class |
BoxInstr |
class |
UnboxBooleanInstr |
class |
UnboxFixnumInstr |
class |
UnboxFloatInstr |
class |
UnboxInstr |
Modifier and Type | Method and Description |
---|---|
Instr |
UnboxInstr.clone(CloneInfo info) |
Instr |
UnboxFloatInstr.clone(CloneInfo ii) |
Instr |
UnboxFixnumInstr.clone(CloneInfo ii) |
Instr |
UnboxBooleanInstr.clone(CloneInfo ii) |
Instr |
BoxFloatInstr.clone(CloneInfo ii) |
Instr |
BoxFixnumInstr.clone(CloneInfo ii) |
Instr |
BoxBooleanInstr.clone(CloneInfo ii) |
Instr |
AluInstr.clone(CloneInfo ii) |
Modifier and Type | Class and Description |
---|---|
class |
GetErrorInfoInstr |
class |
RestoreErrorInfoInstr |
Modifier and Type | Method and Description |
---|---|
Instr |
RestoreErrorInfoInstr.clone(CloneInfo ii) |
Instr |
GetErrorInfoInstr.clone(CloneInfo info) |
Modifier and Type | Class and Description |
---|---|
class |
OneArgOperandAttrAssignInstr |
class |
OneFixnumArgNoBlockCallInstr |
class |
OneFloatArgNoBlockCallInstr |
class |
OneOperandArgBlockCallInstr |
class |
OneOperandArgNoBlockCallInstr |
class |
OneOperandArgNoBlockNoResultCallInstr |
class |
ZeroOperandArgNoBlockCallInstr |
Modifier and Type | Method and Description |
---|---|
Instr |
ZeroOperandArgNoBlockCallInstr.clone(CloneInfo ii) |
Instr |
OneOperandArgNoBlockNoResultCallInstr.clone(CloneInfo ii) |
Instr |
OneOperandArgNoBlockCallInstr.clone(CloneInfo ii) |
Instr |
OneOperandArgBlockCallInstr.clone(CloneInfo ii) |
Instr |
OneFloatArgNoBlockCallInstr.clone(CloneInfo ii) |
Instr |
OneFixnumArgNoBlockCallInstr.clone(CloneInfo ii) |
Instr |
OneArgOperandAttrAssignInstr.clone(CloneInfo ii) |
Modifier and Type | Field and Description |
---|---|
protected Instr[] |
InterpreterContext.instructions |
Modifier and Type | Method and Description |
---|---|
Instr[] |
InterpreterContext.getInstructions() |
Modifier and Type | Method and Description |
---|---|
protected static void |
InterpreterEngine.extractToMethodToAvoidC2Crash(Instr instr,
Throwable t) |
protected static void |
InterpreterEngine.processBookKeepingOp(ThreadContext context,
Instr instr,
Operation operation,
String name,
IRubyObject[] args,
IRubyObject self,
Block block,
Block.Type blockType,
RubyModule implClass,
Stack<Integer> rescuePCs) |
protected static void |
InterpreterEngine.processCall(ThreadContext context,
Instr instr,
Operation operation,
DynamicScope currDynScope,
StaticScope currScope,
Object[] temp,
IRubyObject self) |
protected static void |
StartupInterpreterEngine.processOtherOp(ThreadContext context,
Instr instr,
Operation operation,
DynamicScope currDynScope,
StaticScope currScope,
Object[] temp,
IRubyObject self,
Block.Type blockType) |
protected static void |
InterpreterEngine.processOtherOp(ThreadContext context,
Instr instr,
Operation operation,
DynamicScope currDynScope,
StaticScope currScope,
Object[] temp,
IRubyObject self,
Block.Type blockType,
double[] floats,
long[] fixnums,
boolean[] booleans) |
protected static IRubyObject |
InterpreterEngine.processReturnOp(ThreadContext context,
Instr instr,
Operation operation,
DynamicScope currDynScope,
Object[] temp,
IRubyObject self,
Block.Type blockType,
StaticScope currScope) |
protected static void |
InterpreterEngine.receiveArg(ThreadContext context,
Instr i,
Operation operation,
IRubyObject[] args,
boolean acceptsKeywordArgument,
DynamicScope currDynScope,
Object[] temp,
Object exception,
Block block) |
protected static void |
InterpreterEngine.setResult(Object[] temp,
DynamicScope currDynScope,
Instr instr,
Object result) |
static void |
Profiler.updateCallSite(Instr instr,
IRScope scope,
Integer scopeVersion) |
Constructor and Description |
---|
FullInterpreterContext(IRScope scope,
Instr[] instructions) |
Constructor and Description |
---|
BeginEndInterpreterContext(IRScope scope,
List<Instr> instructions) |
ClosureInterpreterContext(IRClosure scope,
List<Instr> instructions) |
InterpreterContext(IRScope scope,
List<Instr> instructions) |
Modifier and Type | Method and Description |
---|---|
Instr |
InstructionsListenerDecorator.get(int index) |
Instr |
InstructionsListenerDecorator.remove(int index) |
Instr |
InstructionsListenerDecorator.set(int index,
Instr element) |
Modifier and Type | Method and Description |
---|---|
Iterator<Instr> |
InstructionsListenerDecorator.iterator() |
ListIterator<Instr> |
InstructionsListenerDecorator.listIterator() |
ListIterator<Instr> |
InstructionsListenerDecorator.listIterator(int index) |
List<Instr> |
InstructionsListenerDecorator.subList(int fromIndex,
int toIndex) |
Modifier and Type | Method and Description |
---|---|
boolean |
InstructionsListenerDecorator.add(Instr e) |
void |
InstructionsListenerDecorator.add(int index,
Instr element) |
void |
IRScopeListener.addedInstr(IRScope scope,
Instr instr,
int index) |
void |
InstructionsListener.instrChanged(List<Instr> instrs,
Instr oldInstr,
Instr newInstr,
int index,
InstructionsListener.OperationType op)
listen to a change of a list of instructions, right before the change going to take place
|
Instr |
InstructionsListenerDecorator.set(int index,
Instr element) |
Modifier and Type | Method and Description |
---|---|
boolean |
InstructionsListenerDecorator.addAll(Collection<? extends Instr> c) |
boolean |
InstructionsListenerDecorator.addAll(int index,
Collection<? extends Instr> c) |
void |
InstructionsListener.instrChanged(List<Instr> instrs,
Instr oldInstr,
Instr newInstr,
int index,
InstructionsListener.OperationType op)
listen to a change of a list of instructions, right before the change going to take place
|
Constructor and Description |
---|
InstructionsListenerDecorator(List<Instr> instrs,
InstructionsListener listener) |
Modifier and Type | Method and Description |
---|---|
static Instr[] |
OptimizeTempVarsPass.optimizeTmpVars(IRScope s,
Instr[] initialInstrs) |
static Instr |
LocalOptimizationPass.optInstr(IRScope s,
Instr instr,
Map<Operand,Operand> valueMap,
Map<Variable,List<Variable>> simplificationMap) |
Modifier and Type | Method and Description |
---|---|
static Instr[] |
OptimizeTempVarsPass.optimizeTmpVars(IRScope s,
Instr[] initialInstrs) |
static Instr |
LocalOptimizationPass.optInstr(IRScope s,
Instr instr,
Map<Operand,Operand> valueMap,
Map<Variable,List<Variable>> simplificationMap) |
static void |
LocalOptimizationPass.runLocalOptsOnInstrArray(IRScope s,
Instr[] instrs) |
Modifier and Type | Method and Description |
---|---|
Instr |
IRReaderStream.decodeInstr() |
Instr |
IRReaderDecoder.decodeInstr() |
Modifier and Type | Method and Description |
---|---|
List<Instr> |
IRReaderStream.decodeInstructionsAt(IRScope scope,
int offset) |
List<Instr> |
IRReaderDecoder.decodeInstructionsAt(IRScope scope,
int offset) |
Modifier and Type | Method and Description |
---|---|
void |
IRWriterStream.encode(Instr instr) |
void |
IRWriterEncoder.encode(Instr value) |
void |
IRWriterAnalzer.encode(Instr instr) |
Modifier and Type | Method and Description |
---|---|
Instr |
BasicBlock.getLastInstr() |
Modifier and Type | Method and Description |
---|---|
List<Instr> |
BasicBlock.getInstrs() |
Modifier and Type | Method and Description |
---|---|
void |
BasicBlock.addInstr(Instr i) |
org.jruby.dirgra.DirectedGraph<BasicBlock> |
CFG.build(Instr[] instrs)
Build the Control Flow Graph
|
void |
BasicBlock.insertInstr(Instr i) |
boolean |
BasicBlock.removeInstr(Instr i) |
BasicBlock |
BasicBlock.splitAtInstruction(Instr splitPoint,
Label newLabel,
boolean includeSplitPointInstr) |
Modifier and Type | Method and Description |
---|---|
void |
BasicBlock.replaceInstrs(List<Instr> instrs) |
Modifier and Type | Method and Description |
---|---|
void |
JVMVisitor.visit(Instr instr) |
Copyright © 2001-2015 JRuby. All Rights Reserved.