Inferno
0.2
|
Steps namespace contains all of inferno's transformation steps. More...
Classes | |
class | CleanupCompoundExpression |
Find compound statements inside compund statements and flatten. More... | |
class | CleanupCompoundMulti |
Find compound statements inside compund statements and flatten. More... | |
class | CleanupCompoundSingle |
Find compound blocks with only a single statement, and flatten. More... | |
class | CleanupNop |
Get rid of Nops. More... | |
class | CleanupDuplicateLabels |
class | CleanupIneffectualGoto |
Find a goto to a lable just before the label, and remove the goto. More... | |
class | CleanupIneffectualLabels |
Find a goto to a lable just before the label, and remove the goto. More... | |
class | CleanupUnusedLabels |
class | CleanUpDeadCode |
class | ReduceVoidCompoundExpression |
class | CleanupUnusedVariables |
class | CleanupNestedIf |
Simplify if(x) if(y) z using &&. More... | |
class | PlaceLabelsInArray |
Put all the labels in an array indexable by an enum. More... | |
class | LabelTypeToEnum |
Change all types from Labeley to the state enum, and move lmap lookups from && to goto. More... | |
class | LabelVarsToEnum |
Variable-by-variable, change type from Labeley to the state enum, and move lmap lookups though the variable. More... | |
class | SwapSubscriptMultiplex |
Find c ? a[i] : a[j] and replace with a[ c ? i : j ]. More... | |
class | AddStateEnumVar |
Insert state variable as an enum. More... | |
class | ApplyCombGotoPolicy |
class | ApplyYieldGotoPolicy |
class | ApplyBottomPolicy |
class | ApplyLabelPolicy |
Group all labels at the top by placing state bodies under if. More... | |
class | ApplyTopPolicy |
class | EnsureResetYield |
class | DetectSuperLoop |
class | InsertInferredYield |
class | ForToWhile |
class | WhileToDo |
class | GenerateImplicitCasts |
class | ExplicitiseReturn |
class | UseTempForReturnValue |
class | ReturnViaTemp |
class | AddLinkAddress |
class | ParamsViaTemps |
class | GenerateStacks |
class | MergeFunctions |
class | DetectUncombableSwitch |
class | MakeAllForUncombable |
class | DetectCombableFor |
class | MakeAllBreakUncombable |
class | DetectCombableBreak |
class | IfToIfGoto |
class | SwitchToIfGoto |
class | DoToIfGoto |
class | BreakToGoto |
class | LogicalOrToIf |
class | LogicalAndToIf |
class | MultiplexorToIf |
class | ExtractCallParams |
class | SlaveTest |
class | SplitInstanceDeclarations |
class | MoveInstanceDeclarations |
class | SplitInstanceDeclarations2 |
class | GotoAfterWait |
Make sure every SystemC wait is followed by a goto. More... | |
class | NormaliseConditionalGotos |
class | CompactGotos |
class | AddGotoBeforeLabel |
class | EnsureBootstrap |
class | AddStateLabelVar |
class | EnsureSuperLoop |
class | ShareGotos |
class | InsertSwitch |
class | SwitchCleanUp |
class | InferBreak |
class | FixFallthrough |
class | MakeFallThroughMachine |
class | AddYieldFlag |
class | AddInferredYield |
class | MoveInitIntoSuperLoop |
class | LoopRotation |
class | DetectAllSCTypes |
class | AutosToModule |
class | TempsAndStaticsToModule |
class | DeclsToModule |
class | ThreadToMethod |
class | ExplicitiseReturns |
Functions | |
TreePtr< Node > | MakeCheckUncombable (TreePtr< CPPTree::Statement > construct) |
Make a sub-pattern for search that restricts for uncombability. |
Steps namespace contains all of inferno's transformation steps.
TreePtr< Node > Steps::MakeCheckUncombable | ( | TreePtr< CPPTree::Statement > | construct | ) |
Make a sub-pattern for search that restricts for uncombability.
Insert in search pattern at the base of a construct, which can be a Statement or an Expression, and this step will restrict the search so that it only matches if the construct contains something uncombable, somewhere underneath.
Definition at line 16 of file uncombable.cpp.
Referenced by Steps::BreakToGoto::BreakToGoto(), Steps::DoToIfGoto::DoToIfGoto(), Steps::ExtractCallParams::ExtractCallParams(), Steps::ForToWhile::ForToWhile(), Steps::IfToIfGoto::IfToIfGoto(), Steps::LogicalAndToIf::LogicalAndToIf(), Steps::LogicalOrToIf::LogicalOrToIf(), Steps::MultiplexorToIf::MultiplexorToIf(), Steps::SwitchToIfGoto::SwitchToIfGoto(), and Steps::WhileToDo::WhileToDo().