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

Commit b6dfdc4

Browse files
Cameron Zwarichalexcrichton
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 641d3c2 commit b6dfdc4

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
@@ -234,6 +234,8 @@ void PassManagerBuilder::populateModulePassManager(
234234
MPM.add(createEarlyCSEPass()); // Catch trivial redundancies
235235
MPM.add(createJumpThreadingPass()); // Thread jumps.
236236
MPM.add(createCorrelatedValuePropagationPass()); // Propagate conditionals
237+
// Specific to the rust-lang llvm branch:
238+
MPM.add(createNullCheckEliminationPass()); // Eliminate null checks
237239
MPM.add(createCFGSimplificationPass()); // Merge & remove BBs
238240
MPM.add(createInstructionCombiningPass()); // Combine silly seq's
239241
addExtensionsToPM(EP_Peephole, MPM);
@@ -276,6 +278,8 @@ void PassManagerBuilder::populateModulePassManager(
276278
addExtensionsToPM(EP_Peephole, MPM);
277279
MPM.add(createJumpThreadingPass()); // Thread jumps
278280
MPM.add(createCorrelatedValuePropagationPass());
281+
// Specific to the rust-lang llvm branch:
282+
MPM.add(createNullCheckEliminationPass()); // Eliminate null checks
279283
MPM.add(createDeadStoreEliminationPass()); // Delete dead stores
280284
MPM.add(createLICMPass());
281285

0 commit comments

Comments
 (0)