![]() |
PandA-2024.02
|
Analysis step that optimize the phis starting from the IR. More...


Go to the source code of this file.
Data Structures | |
| class | PhiOpt |
| Restructure the tree control flow graph. More... | |
Enumerations | |
| enum | PhiOpt_PatternType { PhiOpt_PatternType::UNKNOWN, PhiOpt_PatternType::DIFF_NOTHING, PhiOpt_PatternType::GIMPLE_NOTHING, PhiOpt_PatternType::IF_MERGE, PhiOpt_PatternType::IF_NOTHING, PhiOpt_PatternType::IF_REMOVE, PhiOpt_PatternType::MULTI_MERGE, PhiOpt_PatternType::MULTI_NOTHING, PhiOpt_PatternType::MULTI_REMOVE, PhiOpt_PatternType::UNCHANGED } |
| Identifier of patterns to be transformed by phi_opt. More... | |
Functions | |
forward declarations | |
Superclass include Utility include | |
| REF_FORWARD_DECL (bloc) | |
| REF_FORWARD_DECL (Schedule) | |
| REF_FORWARD_DECL (tree_manager) | |
| CONSTREF_FORWARD_DECL (tree_manipulation) | |
Analysis step that optimize the phis starting from the IR.
Definition in file phi_opt.hpp.
|
strong |
Identifier of patterns to be transformed by phi_opt.
| Enumerator | |
|---|---|
| UNKNOWN | Unknown pattern. |
| DIFF_NOTHING | Empty basic block with multiple input. |
| GIMPLE_NOTHING | Empty basic block dominated by assign can be removed without further changes. |
| IF_MERGE | Edges coming from if to be merged. |
| IF_NOTHING | Basic block dominated by if can be removed without further changes. |
| IF_REMOVE | Phi dominated by gimple_cond to be removed. |
| MULTI_MERGE | Phi dominated by gimple_multi_way_if to be merged. |
| MULTI_NOTHING | Basic block dominated by multi way if can be removed without further changes. |
| MULTI_REMOVE | Phi dominated by gimple_multi_way_if to be removed. |
| UNCHANGED | Transformation blocked by timing. |
Definition at line 70 of file phi_opt.hpp.
| CONSTREF_FORWARD_DECL | ( | tree_manipulation | ) |
| REF_FORWARD_DECL | ( | bloc | ) |
| REF_FORWARD_DECL | ( | Schedule | ) |
| REF_FORWARD_DECL | ( | tree_manager | ) |
1.8.13