public interface LoopPolicies
| Modifier and Type | Interface and Description |
|---|---|
static class |
LoopPolicies.Options |
static class |
LoopPolicies.UnswitchingDecision
Models the decision of
LoopPolicies::shouldUnswitch. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
shouldFullUnroll(LoopEx loop) |
boolean |
shouldPartiallyUnroll(LoopEx loop,
CoreProviders providers) |
boolean |
shouldPeel(LoopEx loop,
ControlFlowGraph cfg,
CoreProviders providers,
int peelingIteration) |
boolean |
shouldTryUnswitch(LoopEx loop) |
LoopPolicies.UnswitchingDecision |
shouldUnswitch(LoopEx loop,
org.graalvm.collections.EconomicMap<ValueNode,List<ControlSplitNode>> controlSplits)
Decide which control split invariant should be unswitched in the given loop.
|
boolean shouldPeel(LoopEx loop, ControlFlowGraph cfg, CoreProviders providers, int peelingIteration)
boolean shouldFullUnroll(LoopEx loop)
boolean shouldPartiallyUnroll(LoopEx loop, CoreProviders providers)
boolean shouldTryUnswitch(LoopEx loop)
LoopPolicies.UnswitchingDecision shouldUnswitch(LoopEx loop, org.graalvm.collections.EconomicMap<ValueNode,List<ControlSplitNode>> controlSplits)
loop - the loop to unswitch.controlSplits - the invariant grouped by their condition.