xo-jit: add mem-to-register pass to IrPipeline

This commit is contained in:
Roland Conybeare 2024-06-21 17:01:30 -04:00
commit 2235bba872
2 changed files with 8 additions and 0 deletions

View file

@ -28,6 +28,7 @@
#include "llvm/Transforms/InstCombine/InstCombine.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Scalar/GVN.h"
#include "llvm/Transforms/Utils/Mem2Reg.h"
#include "llvm/Transforms/Scalar/Reassociate.h"
#include "llvm/Transforms/Scalar/SimplifyCFG.h"

View file

@ -24,6 +24,13 @@ namespace xo {
/** transform passes **/
this->llvm_fpmgr_->addPass(llvm::InstCombinePass());
/* NOTE: llvm 19 adds mem2reg transform here.
* speculating that PromotePass() does same/goodenough thing in llvm 18.
* This pays off, works first try!
*/
this->llvm_fpmgr_->addPass(llvm::PromotePass());
this->llvm_fpmgr_->addPass(llvm::ReassociatePass());
this->llvm_fpmgr_->addPass(llvm::GVNPass());
this->llvm_fpmgr_->addPass(llvm::SimplifyCFGPass());