Optimization ------------ The IR-code generated by the front-end can be optimized in many ways. The compiler does not have the best way to optimize code, but instead has a bag of tricks it can use. Abstract base classes ~~~~~~~~~~~~~~~~~~~~~ The optimization passes all subclass one of the following base classes. .. autoclass:: ppci.opt.transform.ModulePass :members: .. autoclass:: ppci.opt.transform.FunctionPass :members: .. autoclass:: ppci.opt.transform.BlockPass :members: .. autoclass:: ppci.opt.transform.InstructionPass :members: Optimization passes ~~~~~~~~~~~~~~~~~~~ .. autoclass:: ppci.opt.Mem2RegPromotor .. autoclass:: ppci.opt.LoadAfterStorePass .. autoclass:: ppci.opt.DeleteUnusedInstructionsPass .. autoclass:: ppci.opt.RemoveAddZeroPass .. autoclass:: ppci.opt.CommonSubexpressionEliminationPass .. autoclass:: ppci.opt.cjmp.CJumpPass Uml ~~~ .. uml:: ppci.opt