Package org.qbicc.plugin.opt
Class FinalFieldLoadOptimizer
java.lang.Object
org.qbicc.graph.DelegatingBasicBlockBuilder
org.qbicc.plugin.opt.FinalFieldLoadOptimizer
- All Implemented Interfaces:
Locatable,ProgramLocatable,BasicBlockBuilder
This optimization is run during the ANALYZE phase and replaces loads
of reallyFinal fields with their constant values using the build-time
heap constructed by the interpreter during the ADD phase.
It optimizes static field and instance fields on ObjectLiterals.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.qbicc.graph.BasicBlockBuilder
BasicBlockBuilder.FactoryContextNested classes/interfaces inherited from interface org.qbicc.context.ProgramLocatable
ProgramLocatable.Frozen -
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionFinalFieldLoadOptimizer(BasicBlockBuilder.FactoryContext ctxt, BasicBlockBuilder delegate) -
Method Summary
Methods inherited from class org.qbicc.graph.DelegatingBasicBlockBuilder
add, addParam, and, auto, begin, begin, bitCast, bitReverse, bytecodeIndex, byteOffsetPointer, byteSwap, call, callNoReturn, callNoSideEffects, callSite, checkcast, checkcast, classOf, cmp, cmpAndSwap, cmpG, cmpL, complement, countLeadingZeros, countTrailingZeros, currentThread, declareDebugAddress, decodeReference, deref, divide, divisorCheck, element, elementOf, encodeReference, enterSafePoint, exitSafePoint, extend, extractElement, extractInstanceField, extractInstanceField, extractMember, fence, finish, fpToInt, getBlockEntry, getDelegate, getEntryLabel, getFirstBlock, getFirstBuilder, getLocation, getParam, getRootElement, getTerminatedBlock, goto_, if_, initCheck, initializeClass, insertElement, insertMember, instanceFieldOf, instanceFieldOf, instanceOf, instanceOf, intToFp, invoke, invokeDynamic, invokeNoReturn, isEq, isGe, isGt, isLe, isLt, isNe, lineNumber, loadLength, loadTypeId, lookupInterfaceMethod, lookupInterfaceMethod, lookupVirtualMethod, lookupVirtualMethod, max, memberOf, memberOfUnion, min, monitorEnter, monitorExit, multiNewArray, multiNewArray, multiply, negate, new_, new_, newArray, newArray, newReferenceArray, nop, notNull, nullCheck, offsetOfField, offsetPointer, or, pointerDifference, pollSafePoint, populationCount, reachable, readModifyWrite, receiverBound, remainder, resolveConstructor, resolveInstanceMethod, resolveStaticField, resolveStaticMethod, ret, return_, rol, ror, select, setBytecodeIndex, setCallSite, setCurrentElement, setDebugValue, setFirstBuilder, setLineNumber, shl, shr, stackAllocate, store, sub, switch_, tailCall, threadBound, throw_, truncate, unreachable, vaArg, 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
addParam, begin, call, callNoReturn, callNoSideEffects, classOf, classOf, classOf, classOf, classOf, classOf, classOf, classOf, decodeReference, emptyVoid, encodeReference, getContext, getCurrentClassContext, getLiteralFactory, getTypeSystem, goto_, instanceOf, invoke, invokeNoReturn, load, return_, store, tailCallMethods inherited from interface org.qbicc.context.ProgramLocatable
enclosingType, freeze, sourceFileName, withUnderlyingCallSite
-
Constructor Details
-
FinalFieldLoadOptimizer
-
-
Method Details
-
load
- Specified by:
loadin interfaceBasicBlockBuilder- Overrides:
loadin classDelegatingBasicBlockBuilder
-