Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit 109ad08

Browse files
Cameron Zwarichdotdash
authored andcommitted
Add the NullCheckElimination pass to the default pass list
Since the NullCheckElimination pass has a similar intent to the CorrelatedValuePropagation pass, I decided to run it right after the both places that the latter runs.
1 parent 7833b56 commit 109ad08

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

lib/Transforms/IPO/PassManagerBuilder.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
220220
MPM.add(createEarlyCSEPass()); // Catch trivial redundancies
221221
MPM.add(createJumpThreadingPass()); // Thread jumps.
222222
MPM.add(createCorrelatedValuePropagationPass()); // Propagate conditionals
223+
// Specific to the rust-lang llvm branch:
224+
MPM.add(createNullCheckEliminationPass()); // Eliminate null checks
223225
MPM.add(createCFGSimplificationPass()); // Merge & remove BBs
224226
MPM.add(createInstructionCombiningPass()); // Combine silly seq's
225227
addExtensionsToPM(EP_Peephole, MPM);
@@ -255,6 +257,8 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
255257
addExtensionsToPM(EP_Peephole, MPM);
256258
MPM.add(createJumpThreadingPass()); // Thread jumps
257259
MPM.add(createCorrelatedValuePropagationPass());
260+
// Specific to the rust-lang llvm branch:
261+
MPM.add(createNullCheckEliminationPass()); // Eliminate null checks
258262
MPM.add(createDeadStoreEliminationPass()); // Delete dead stores
259263

260264
addExtensionsToPM(EP_ScalarOptimizerLate, MPM);

0 commit comments

Comments
 (0)