[PATCH] D49337: Skip debuginfo intrinsic in markLiveBlocks.

Xin Tong via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 13 21:38:39 PDT 2018


trentxintong created this revision.
trentxintong added a reviewer: davide.
Herald added subscribers: JDevlieghere, aprantl.

The optimizer is 10%+ slower with vs without debuginfo. I started checking where
the difference is coming from.

I compiled sqlite3.c with and without debug info from CTMark and compare the time difference.

I use Xcode Instrument to find where time is spent. This brings about 20ms, out of ~20s.


Repository:
  rL LLVM

https://reviews.llvm.org/D49337

Files:
  lib/Transforms/Utils/Local.cpp


Index: lib/Transforms/Utils/Local.cpp
===================================================================
--- lib/Transforms/Utils/Local.cpp
+++ lib/Transforms/Utils/Local.cpp
@@ -2016,6 +2016,9 @@
     // instructions into LLVM unreachable insts.  The instruction combining pass
     // canonicalizes unreachable insts into stores to null or undef.
     for (Instruction &I : *BB) {
+      // Skip debug info.
+      if (isa<DbgInfoIntrinsic>(I))
+        continue;
       // Assumptions that are known to be false are equivalent to unreachable.
       // Also, if the condition is undefined, then we make the choice most
       // beneficial to the optimizer, and choose that to also be unreachable.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49337.155548.patch
Type: text/x-patch
Size: 702 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180714/f44ce2ae/attachment.bin>


More information about the llvm-commits mailing list