Your turn
To help you solidify your understanding of what you learned throughout this chapter, we prepared two exercises that will put you to the test.
In the first one, you will create a pass with both the legacy pass manager and the new pass manager.
In the second, you will also interact with both managers, but this time, you will create a pass pipeline that can produce logging information.
Writing your own pass
For this exercise, you will have to produce two implementations: one for the legacy pass manager, where you will fill in the blanks for a function called createYourTurnPassForLegacyPM
, located in ch5/your_first_pass/your_turn/passWithLegacyPM.cpp
, and one for the new pass manager, where you will have to implement the class called YourTurnConstantPropagationNewPass
declared in ch5/your_first_pass/your_turn/passWithNewPM.h
and whose implementation should live in ch5/your_first_pass/your_turn/passWithNewPM.cpp
.
Note
The pointer that you hand...