Closed tommymcm closed 1 week ago
Current Design for PassManager updates
compiler/memoir/passes/Passes.hpp
compiler/memoir/passes/src/Passes.cpp
, along with required dependencies.PassManager design changed to single source:
In compiler/memoir/Passes.def
, register your pass with PASS(<scope>, <class>, <name>, <args>...)
or analysis with ANALYSIS(<scope>, <class>, <result>, <args>...)
.
Where:
<scope>
is one of Module or Function<class>
is the name of the class that implements the pass/analysis<name>
is the name used to run the pass from the command line<result>
is the type of the result returned from the analysis<args>...
are additional arguments to be used when constructing the classEverything except for RangeAnalysis, LiveRangeAnalysis, DeadElementElimination has been updated.
Those features rely on NOELLE, so we must wait until they are ready.
They are currently disabled by default, otherwise v18 can be considered as rc1.
Completed with 077073d
This issue will track progress on upgrading MEMOIR to LLVM18.
Once closed, the current
main
branch will be renamed tov9
andv18
will becomemain
.General problems that fall under this issue: