[llvm-branch-commits] [llvm] Add SimplifyTypeTests pass. (PR #141327)
Teresa Johnson via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed May 28 07:34:08 PDT 2025
================
@@ -2478,3 +2479,76 @@ PreservedAnalyses LowerTypeTestsPass::run(Module &M,
return PreservedAnalyses::all();
return PreservedAnalyses::none();
}
+
+PreservedAnalyses SimplifyTypeTestsPass::run(Module &M,
+ ModuleAnalysisManager &AM) {
+ bool Changed = false;
+ // Figure out whether inlining has exposed a constant address to a lowered
+ // type test, and remove the test if so and the address is known to pass the
+ // test. Unfortunately this pass ends up needing to reverse engineer what
+ // LowerTypeTests did; this is currently inherent to the design of ThinLTO
+ // importing where LowerTypeTests needs to run at the start.
+ for (auto &GV : M.globals()) {
+ if (!GV.getName().starts_with("__typeid_") ||
+ !GV.getName().ends_with("_global_addr"))
+ continue;
+ auto *MD = MDString::get(M.getContext(),
----------------
teresajohnson wrote:
Can you add a comment on this conversion? Figured it out by adding up the chars myself but it would be good to make it explicit.
https://github.com/llvm/llvm-project/pull/141327
More information about the llvm-branch-commits
mailing list