Simply test for available locations in optimization remarks.
authorDiego Novillo <dnovillo@google.com>
Wed, 18 Jun 2014 18:46:58 +0000 (18:46 +0000)
committerDiego Novillo <dnovillo@google.com>
Wed, 18 Jun 2014 18:46:58 +0000 (18:46 +0000)
When emitting optimization remarks, we test for the presence of
instruction locations by testing for a valid llvm.dbg.cu annotation.
This is slightly inefficient because we can simply ask whether the
debug location we have is known or not.

Additionally, if my current plan works, I will need to remove the
llvm.dbg.cu annotation from the IL (or prevent it from being generated)
when -Rpass is used without -g.  In those cases, we'll want to generate
line tables but we will want to prevent code generation from emitting
DWARF code for them.

Tested on x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211204 91177308-0d34-0410-b5e6-96231b3b80d8

lib/IR/DiagnosticInfo.cpp

index 6eeb16220eacbfc730836acdfc8a1dbf25666f54..27270636004f975f89c83717eb03679cea1b5f55 100644 (file)
@@ -128,7 +128,7 @@ void DiagnosticInfoSampleProfile::print(DiagnosticPrinter &DP) const {
 }
 
 bool DiagnosticInfoOptimizationRemarkBase::isLocationAvailable() const {
-  return getFunction().getParent()->getNamedMetadata("llvm.dbg.cu") != nullptr;
+  return getDebugLoc().isUnknown() == false;
 }
 
 void DiagnosticInfoOptimizationRemarkBase::getLocation(StringRef *Filename,