Note: you are watching revision 2 of this wiki entry.
(
view plain diff
)
compiler tactics
delayed compilation
tiered compilation
[url=http://java.sun.com/developer/technicalArticles/Networking/HotSpot/onstack.html]on-stack replacement[/url]
delayed re-optimization
[url=http://en.wikipedia.org/wiki/Dependency_graph]program dependence[/url] graph representation
[url=http://en.wikipedia.org/wiki/Static_single_assignment_form]static single assignment representation[/url]
proof-based techniques
exact [url=http://en.wikipedia.org/wiki/Type_inference]type inference[/url]
memory value inference
memory value tracking
[url=http://en.wikipedia.org/wiki/Constant_propagation]constant folding[/url]
reassociation
operator [url=http://en.wikipedia.org/wiki/Strength_reduction]strength reduction[/url]
null check elimination
type test strength reduction
type test elimination
algebraic simplification
[url=http://en.wikipedia.org/wiki/Common_subexpression_elimination]common subexpression elimination[/url]
integer range typing
flow-sensitive rewrites
conditional [url=http://en.wikipedia.org/wiki/Constant_propagation]constant propagation[/url]
dominating test detection
flow-carried type narrowing
[url=http://en.wikipedia.org/wiki/Dead_code_elimination]dead code elimination[/url]
language-specific techniques
class hierarchy analysis
devirtualization
symbolic constant propagation
autobox elimination
escape analysis/scalar replacement
lock elision
lock fusion
de-reflection
speculative (profile-based) techniques
optimistic nullness assertions
optimistic type assertions
optimistic type strengthening
optimistic array length strengthening
untaken branch pruning
optimistic N-morphic inlining
branch frequency prediction
call frequency prediction
memory and placement transformation
expression hoisting
expression sinking
redundant store elimination
adjacent store fusion
card-mark elimination
merge-point splitting
loop transformations
[url=http://en.wikipedia.org/wiki/Loop_unrolling]loop unrolling[/url]
[url=http://en.wikipedia.org/wiki/Loop_splitting]loop peeling[/url]
safepoint elimination
iteration range splitting
range check elimination
loop vectorization
global code shaping
inlining (graph integration)
global code motion
heat-based code layout
switch balancing
throw inlining
[url=http://en.wikipedia.org/wiki/Control_flow_graph]control flow graph[/url] transformation
local code scheduling
local code bundling
delay slot filling
graph-coloring [url=http://en.wikipedia.org/wiki/Register_allocation]register allocation[/url]
linear scan [url=http://en.wikipedia.org/wiki/Register_allocation]register allocation[/url]
live range splitting
copy coalescing
constant splitting
copy removal
address mode matching
instruction peepholing
[url=http://en.wikipedia.org/wiki/Data-flow_analysis]DFA[/url]-based code generator
List on the HotSpot wiki: [url=https://wikis.oracle.com/display/HotSpotInternals/PerformanceTacticIndex]here[/url]
compiler tactics
delayed compilation
tiered compilation
on-stack replacement delayed re-optimization
program dependence graph representation
static single assignment representationproof-based techniques
exact
type inference memory value inference
memory value tracking
constant folding reassociation
operator
strength reduction null check elimination
type test strength reduction
type test elimination
algebraic simplification
common subexpression elimination integer range typing
flow-sensitive rewrites
conditional
constant propagation dominating test detection
flow-carried type narrowing
dead code eliminationlanguage-specific techniques
class hierarchy analysis
devirtualization
symbolic constant propagation
autobox elimination
escape analysis/scalar replacement
lock elision
lock fusion
de-reflection
speculative (profile-based) techniques
optimistic nullness assertions
optimistic type assertions
optimistic type strengthening
optimistic array length strengthening
untaken branch pruning
optimistic N-morphic inlining
branch frequency prediction
call frequency prediction
memory and placement transformation
expression hoisting
expression sinking
redundant store elimination
adjacent store fusion
card-mark elimination
merge-point splitting
loop transformations
loop unrolling loop peeling safepoint elimination
iteration range splitting
range check elimination
loop vectorization
global code shaping
inlining (graph integration)
global code motion
heat-based code layout
switch balancing
throw inlining
control flow graph transformation
local code scheduling
local code bundling
delay slot filling
graph-coloring
register allocation linear scan
register allocation live range splitting
copy coalescing
constant splitting
copy removal
address mode matching
instruction peepholing
DFA-based code generator
List on the HotSpot wiki:
here
This wiki entry has had 4 revisions with contributions from 2 members.
(
more info)