Using different opt with clang


I have made some changes in the LowerTypeTests Pass of opt, and would like to use these changes with the clang version I have downloaded.

I compiled clang and llvm from scratch, made my changes in LowerTypeTests.cpp, and recompiled clang and opt. When I run clang with the appropriate flags to invoke the pass, it invokes the pass as originally written, but when I run opt on the relevant bitcode, it invokes the pass as I have written it.

How can I modify clang to make it use my version of opt to run the pass I’ve changed? Thanks!

Shishir Jessu

are you sure you’re running the recompiled clang & not some existing clang you had on your system? Try putting something more blatant in your optimization pass, like an assert(false) or other ridiculous thing that’ll make it obvious if the pass is/isn’t running, perhaps?

The LowerTypeTests pass normally runs during LTO (i.e. in the linker). I would make sure that you’ve rebuilt lld or the gold plugin (whichever one you are using) with your pass changes.