Tests that use -O1, -O2 and -O3 would often produce different results
with the new pass manager which makes these tests fail. Disable new PM
explicitly for these tests.
Details
- Reviewers
chandlerc serge-sans-paille efriedma - Commits
- rG516e6cc1dd94: [Clang] Disable new PM for tests that use optimization level -O1, -O2 and -O3
rL362580: [Clang] Disable new PM for tests that use optimization level -O1, -O2 and -O3
rC362580: [Clang] Disable new PM for tests that use optimization level -O1, -O2 and -O3
Diff Detail
- Repository
- rL LLVM
Event Timeline
I can understand why tests that use -O1 or -O2 would produce different results with the new pass manager, but it looks like not all the tests are like that. Do you know why those tests are failing?
For the tests that do use -O, instead of marking them unsupported, could you use -fno-experimental-new-pass-manager or something like that?
Based on the -dev discussion, update once the target machine differences are addressed by mimicing the way the legacy PM works, which will hopefully restrict this similarly to what Eli is suggesting as well...
For at least some of them, maybe we should run it in both modes (using the explicit flag as suggested by Eli) and check both forms.
I only looked at some of them and what I saw was just a different sequence of instructions, I can dig into it a bit more.
For the tests that do use -O, instead of marking them unsupported, could you use -fno-experimental-new-pass-manager or something like that?
Done
I thought the plan was to fix whatever issue was causing the -O0 tests to fail, then rebase on top of that?