Package harpoon.Analysis.Quads

This package contains analysis routines applicable only to the IR.Quads intermediate representation.

See:
          Description

Class Summary
ArrayCopyInliner ArrayCopyInliner will inline array copy.
ArrayInitRemover ArrayInitRemover converts ARRAYINIT quads into chains of ASET quads.
ArrayUnroller ArrayUnroller unrolls loops containing arrays so that CacheEquivalence can make larger equivalence sets.
BasicCSE BasicCSE is an attempt to perform common subexpression elemination, but only within basic blocks.
CachingCallGraph CachingCallGraph is a caching wrapper for a call graph.
CallGraph CallGraph is a general interface that should be implemented by a call graph.
CallGraphImpl CallGraphImpl constructs a simple directed call graph.
CallGraphImpl2 CallGraphImpl2 constructs a simple directed call graph.
CoalescingToNoSSA CoalescingToNoSSA converts SSA, SSI, and RSSx forms to No-SSA form, *coalescing* variables mentioned in phi and sigma statements where possible instead of inserting moves.
CollectSyncStats CollectSyncStats is used at run time to collect information about synchronization operations.
ComponentOfReducer The ComponentOfReducer pass attempts to transform COMPONENTOF operations into (more efficient) INSTANCEOF operations, when this is safe to do.
DeadCode DeadCode removes dead code (unused definitions/useless jmps/one-argument phi functions/all moves) from a method.
DefiniteInitOracle A DefiniteInitOracle tells you whether a given field is "definitely initialized" before control flow leaves every constructor of its declaring class.
DispatchTreeTransformation DispatchTreeTransformation replaces dynamic dispatch call sites with TYPESWITCHes leading to static dispatch calls.
FieldSyncOracle A FieldSyncOracle tells which fields a given method could possibly access (either directly, or via a method call), and whether the given method will ever acquire/release a lock (either directly, or via a method call).
InitializerTransform InitializerTransform transforms class initializers so that they are idempotent and so that they perform all needed initializer ordering checks before accessing non-local data.
MayReadOracle A MayReadOracle tells you which fields of a given class 'may' be read on the given edge.
MemoryOptimization MemoryOptimization reduces the number of memory operations by combining multiple loads/stores to the same field/array element.
MethodInliningCodeFactory MethodInliningCodeFactory makes an HCode from an HMethod, and inlines methods at call sites registered with the inline(CALL) function.
MethodTraceFactory MethodTraceFactory adds DEBUG quads to the entry and exit points of every method.
MustParamOracle A MustParamOracle tells you what method variables *must* contain the values passed in as parameters to the method.
NewMover The NewMover class moves NEW operations as close as possible to the CALL to their initializers.
Nonvirtualize Nonvirtualize uses a FinalMap to change virtual method invocations to non-virtual invocations, where this is safe.
QuadClassHierarchy QuadClassHierarchy computes a ClassHierarchy of classes possibly usable starting from some root method using quad form.
QuadCounter QuadCounter is an harpoon.ClassFile.HCodeFactory which counts the number of quads that have been converted thus far.
QuadInterferenceGraph QuadInterferenceGraph constructs a variable-liveness interference graph from a Quad.Code.
QuadLiveness QuadLiveness performs live variable analysis for a given HCode.
SimpleConstMap SimpleConstMap is a very simple implementation of ConstMap that reports whether a given Temp is defined by a CONST quad.
SmallMethodInliner SmallMethodInliner will inline small methods until the code is bloated by the specified amount.
SmallMethodInliner.IntMap  
SSICallGraph SSICallGraph
SSIStats SSIStats is a class to provide counts of uses, definitions and variables in plain, SSA, and SSI forms.
SSIToSSAMap An SSIToSSAMap allows you to look at an SSI representation "with glasses on" so that it appears as SSA.
TypeInfo TypeInfo is a simple type analysis tool for quad-ssi form.
TypeSwitchRemover TypeSwitchRemover converts TYPESWITCH quads into chains of INSTANCEOF and CJMP quads.
Unreachable Unreachable gets rid of unreachable code.
Virtualize Virtualize makes any non-virtual invocations of uncallable methods non-virtual, so that they don't lead to link errors later.
 

Package harpoon.Analysis.Quads Description

This package contains analysis routines applicable only to the IR.Quads intermediate representation.

Author:
various