Currently all tir passes are self-contained, i.e. the class (typically a subclass of a mutator class) and the member functions are all defined in a single .cc file and run as a unit. This doesn’t allow any of the member functions to be overridden to implement custom processing.
Is it a design choice to disallow this? Or can this be modified?
The modifications would be to create a separate header file, and let targets produce their own objects inherited from the default one, that would then be used in the pass.