|
Jlm
|
Aggregate Alloca Splitting Transformation. More...
#include <AggregateAllocaSplitting.hpp>


Classes | |
| struct | AllocaTraceInfo |
| struct | Context |
| class | Statistics |
Public Member Functions | |
| ~AggregateAllocaSplitting () noexcept override | |
| AggregateAllocaSplitting () | |
| void | Run (rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override |
| Perform RVSDG transformation. | |
Public Member Functions inherited from jlm::rvsdg::Transformation | |
| virtual | ~Transformation () noexcept |
| Transformation (std::string_view Name) | |
| const std::string_view & | GetName () const noexcept |
| void | Run (RvsdgModule &module) |
| Perform RVSDG transformation. | |
Private Member Functions | |
| void | splitAllocaNodes (rvsdg::RvsdgModule &rvsdgModule) |
| std::vector< AllocaTraceInfo > | findSplitableAllocaNodes (rvsdg::Region ®ion) const |
Static Private Member Functions | |
| static void | splitAllocaNode (const AllocaTraceInfo &allocaTraceInfo) |
| static bool | checkGetElementPtrUsers (const rvsdg::SimpleNode &gepNode) |
| static std::optional< AllocaTraceInfo > | isSplitable (rvsdg::SimpleNode &allocaNode) |
| static bool | isSplitableType (const rvsdg::Type &type) |
Private Attributes | |
| std::unique_ptr< Context > | context_ {} |
Aggregate Alloca Splitting Transformation.
Aggregate Alloca Splitting splits up AllocaOperation nodes with aggregate types, i.e., struct and array types, into multiple AllocaOperation nodes with simple types, i.e., integer or floating-point types. The intention is to simplify the processing of these AllocaOperation nodes by passes such as StoreValueForwarding.
Definition at line 22 of file AggregateAllocaSplitting.hpp.
|
overridedefaultnoexcept |
| jlm::llvm::AggregateAllocaSplitting::AggregateAllocaSplitting | ( | ) |
Definition at line 94 of file AggregateAllocaSplitting.cpp.
|
staticprivate |
Definition at line 272 of file AggregateAllocaSplitting.cpp.
|
private |
Definition at line 413 of file AggregateAllocaSplitting.cpp.
|
staticprivate |
Definition at line 119 of file AggregateAllocaSplitting.cpp.
|
staticprivate |
Definition at line 99 of file AggregateAllocaSplitting.cpp.
|
overridevirtual |
Perform RVSDG transformation.
| module | RVSDG module the transformation is performed on. |
| statisticsCollector | Statistics collector for collecting transformation statistics. |
Implements jlm::rvsdg::Transformation.
Definition at line 599 of file AggregateAllocaSplitting.cpp.
|
staticprivate |
Definition at line 539 of file AggregateAllocaSplitting.cpp.
|
private |
Definition at line 585 of file AggregateAllocaSplitting.cpp.
|
private |
Definition at line 55 of file AggregateAllocaSplitting.hpp.