[PATCH] D29833: Improve the API of DILocation::getMergedLocation()

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 10 10:17:37 PST 2017


dblaikie added a comment.

Also we should have a function for the non-merging case (hoisting/sinking) so we can do similar things there (& presumably refactor the common infrastructure between these two operations).



================
Comment at: lib/IR/Instruction.cpp:664-668
+  if (Loc && isa<CallInst>(this)) {
+    DbgLoc = DILocation::get(Loc->getContext(), 0, 0, Loc->getScope(),
+                             Loc->getInlinedAt());
+    return;
+  }
----------------
I'm not sure we can get the scope right, though - since we're potentially moving this location across scopes. It's going to be jumpy/create a difficult range in the scope no matter what, really... 

Any ideas? Take the scope from a nearby location at the destination, if possible? (doesn't really reflect reality, but nothing will - this would at least mean a chance of not punching holes in/making islands in scopes that would necessitate a DW_AT_ranges/more verbose description/etc)


Repository:
  rL LLVM

https://reviews.llvm.org/D29833





More information about the llvm-commits mailing list