Package org.qbicc.plugin.opt
Class InliningBasicBlockBuilder
java.lang.Object
org.qbicc.graph.DelegatingBasicBlockBuilder
org.qbicc.plugin.opt.InliningBasicBlockBuilder
- All Implemented Interfaces:
Locatable,BasicBlockBuilder,ValueHandleVisitor<Void,ExecutableElement>
public class InliningBasicBlockBuilder
extends DelegatingBasicBlockBuilder
implements ValueHandleVisitor<Void,ExecutableElement>
The inliner. Every method call is speculatively inlined unless it is specifically annotated otherwise.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.qbicc.graph.BasicBlockBuilder
BasicBlockBuilder.ExceptionHandler, BasicBlockBuilder.ExceptionHandlerPolicyNested classes/interfaces inherited from interface org.qbicc.graph.ValueHandleVisitor
ValueHandleVisitor.Delegating<T extends Object,R extends Object> -
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionInliningBasicBlockBuilder(CompilationContext ctxt, BasicBlockBuilder delegate) -
Method Summary
Modifier and TypeMethodDescriptioncall(ValueHandle target, List<Value> arguments) callNoReturn(ValueHandle target, List<Value> arguments) callNoSideEffects(ValueHandle target, List<Value> arguments) invoke(ValueHandle target, List<Value> arguments, BlockLabel catchLabel, BlockLabel resumeLabel, Map<Slot, Value> targetArguments) invokeNoReturn(ValueHandle target, List<Value> arguments, BlockLabel catchLabel, Map<Slot, Value> targetArguments) tailCall(ValueHandle target, List<Value> arguments) tailInvoke(ValueHandle target, List<Value> arguments, BlockLabel catchLabel, Map<Slot, Value> targetArguments) visit(Void param, ConstructorElementHandle node) visit(Void param, ExactMethodElementHandle node) visit(Void param, FunctionElementHandle node) visit(Void param, StaticMethodElementHandle node) visitUnknown(Void param, ValueHandle node) Methods inherited from class org.qbicc.graph.DelegatingBasicBlockBuilder
add, addParam, addressOf, and, asm, begin, bitCast, bitReverse, byteSwap, checkcast, checkcast, classOf, cmp, cmpAndSwap, cmpG, cmpL, complement, constructorOf, constructorOf, countLeadingZeros, countTrailingZeros, currentThread, declareDebugAddress, divide, elementOf, exactMethodOf, exactMethodOf, extend, extractElement, extractInstanceField, extractInstanceField, extractMember, fence, finish, functionOf, getBlockEntry, getCallSite, getCurrentElement, getDelegate, getExceptionHandler, getFirstBlock, getFirstBuilder, getLocation, getRootElement, getTerminatedBlock, globalVariable, goto_, if_, initCheck, insertElement, insertMember, instanceFieldOf, instanceFieldOf, instanceOf, instanceOf, interfaceMethodOf, interfaceMethodOf, isEq, isGe, isGt, isLe, isLt, isNe, jsr, lengthOf, load, localVariable, max, memberOf, min, monitorEnter, monitorExit, multiNewArray, multiNewArray, multiply, negate, new_, new_, newArray, newArray, newReferenceArray, nop, notNull, offsetOfField, or, parameter, phi, pointerHandle, populationCount, reachable, readModifyWrite, referenceHandle, referenceTo, remainder, ret, return_, rol, ror, safePoint, select, selectMember, setBytecodeIndex, setCallSite, setCurrentElement, setDebugValue, setExceptionHandlerPolicy, setFirstBuilder, setLineNumber, shl, shr, stackAllocate, startMethod, staticField, staticField, staticMethod, staticMethod, store, sub, switch_, throw_, truncate, unreachable, unsafeHandle, vaArg, valueConvert, virtualMethodOf, virtualMethodOf, xorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.qbicc.graph.BasicBlockBuilder
classOf, classOf, classOf, classOf, classOf, classOf, classOf, classOf, constructorOf, emptyVoid, exactMethodOf, getContext, getCurrentClassContext, getLiteralFactory, getTypeSystem, goto_, instanceOf, interfaceMethodOf, load, pointerHandle, return_, staticMethod, store, virtualMethodOf
-
Constructor Details
-
InliningBasicBlockBuilder
-
-
Method Details
-
call
- Specified by:
callin interfaceBasicBlockBuilder- Overrides:
callin classDelegatingBasicBlockBuilder
-
callNoSideEffects
- Specified by:
callNoSideEffectsin interfaceBasicBlockBuilder- Overrides:
callNoSideEffectsin classDelegatingBasicBlockBuilder
-
callNoReturn
- Specified by:
callNoReturnin interfaceBasicBlockBuilder- Overrides:
callNoReturnin classDelegatingBasicBlockBuilder
-
invokeNoReturn
public BasicBlock invokeNoReturn(ValueHandle target, List<Value> arguments, BlockLabel catchLabel, Map<Slot, Value> targetArguments) - Specified by:
invokeNoReturnin interfaceBasicBlockBuilder- Overrides:
invokeNoReturnin classDelegatingBasicBlockBuilder
-
tailCall
- Specified by:
tailCallin interfaceBasicBlockBuilder- Overrides:
tailCallin classDelegatingBasicBlockBuilder
-
tailInvoke
public BasicBlock tailInvoke(ValueHandle target, List<Value> arguments, BlockLabel catchLabel, Map<Slot, Value> targetArguments) - Specified by:
tailInvokein interfaceBasicBlockBuilder- Overrides:
tailInvokein classDelegatingBasicBlockBuilder
-
invoke
public Value invoke(ValueHandle target, List<Value> arguments, BlockLabel catchLabel, BlockLabel resumeLabel, Map<Slot, Value> targetArguments) - Specified by:
invokein interfaceBasicBlockBuilder- Overrides:
invokein classDelegatingBasicBlockBuilder
-
visitUnknown
- Specified by:
visitUnknownin interfaceValueHandleVisitor<Void,ExecutableElement>
-
visit
- Specified by:
visitin interfaceValueHandleVisitor<Void,ExecutableElement>
-
visit
- Specified by:
visitin interfaceValueHandleVisitor<Void,ExecutableElement>
-
visit
- Specified by:
visitin interfaceValueHandleVisitor<Void,ExecutableElement>
-
visit
- Specified by:
visitin interfaceValueHandleVisitor<Void,ExecutableElement>
-