public abstract class LoopTransformations extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
LoopTransformations.PreMainPostResult |
| Modifier and Type | Method and Description |
|---|---|
static void |
adaptCountedLoopExitProbability(AbstractBeginNode lex,
double newFrequency)
Inject a new frequency for the condition dominating the given loop exit path.
|
static void |
ensureExitsHaveUniqueStates(LoopEx loop)
Create unique framestates for the loop exits of this loop: unique states ensure that virtual
instance nodes of this framestate are not shared with other framestates.
|
static org.graalvm.collections.EconomicMap<ValueNode,List<ControlSplitNode>> |
findUnswitchable(LoopEx loop)
Find all unswichable control split nodes in the given loop.
|
static void |
fullUnroll(LoopEx loop,
CoreProviders context,
CanonicalizerPhase canonicalizer) |
static LoopTransformations.PreMainPostResult |
insertPrePostLoops(LoopEx loop) |
static boolean |
isUnrollableLoop(LoopEx loop) |
static void |
partialUnroll(LoopEx loop,
org.graalvm.collections.EconomicMap<LoopBeginNode,OpaqueNode> opaqueUnrolledStrides) |
static LoopFragmentInside |
peel(LoopEx loop) |
static void |
unswitch(LoopEx loop,
List<ControlSplitNode> controlSplitNodeSet,
boolean isTrivialUnswitch) |
public static LoopFragmentInside peel(LoopEx loop)
public static void fullUnroll(LoopEx loop, CoreProviders context, CanonicalizerPhase canonicalizer)
public static void unswitch(LoopEx loop, List<ControlSplitNode> controlSplitNodeSet, boolean isTrivialUnswitch)
public static void partialUnroll(LoopEx loop, org.graalvm.collections.EconomicMap<LoopBeginNode,OpaqueNode> opaqueUnrolledStrides)
public static void ensureExitsHaveUniqueStates(LoopEx loop)
public static LoopTransformations.PreMainPostResult insertPrePostLoops(LoopEx loop)
public static void adaptCountedLoopExitProbability(AbstractBeginNode lex, double newFrequency)
public static org.graalvm.collections.EconomicMap<ValueNode,List<ControlSplitNode>> findUnswitchable(LoopEx loop)
loop - search control split nodes in this loop.public static boolean isUnrollableLoop(LoopEx loop)