[llvm-dev] [RFC] Removing debug locations from ConstantSDNodes (original) (raw)
Vedant Kumar via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 24 09:16:21 PDT 2018
- Previous message: [llvm-dev] [RFC] Removing debug locations from ConstantSDNodes
- Next message: [llvm-dev] [RFC] Removing debug locations from ConstantSDNodes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Oct 23, 2018, at 11:31 PM, Anton Korobeynikov via llvm-dev <llvm-dev at lists.llvm.org> wrote:
Sorry to resurrect the old thread – I completely missed it! On Thu, Jun 21, 2018 at 6:08 AM via llvm-dev <llvm-dev at lists.llvm.org> wrote:
+1. Constants are not inherently interesting, but loading one as an action preparatory to computing a value or setting up a parameter in a call, the instruction ought to be associated with the relevant source statement. And now we have a clear problem. I'm seeing many cases when such instruction got associated with the previous source statement which does not make any sense at all.
I see. The default behavior of the DWARF emitter is to reuse the previous location (within a basic block) for instructions without a location. If you need a quick workaround, you can use the cl::opt -use-unknown-locations=Enable to emit line 0 entries for constant materialization instructions. Note that this may significantly bloat line tables.
This happens because the constant now is location-less and therefore the location of such constant-materialization instruction is implicitly defined by the previous available location.
This seems to be quite a serious regression in the quality of the debug info produced by selection dag isel in LLVM 7 release as compared to LLVM 6.
What sorts of problems is this causing in practice? Would they be addressed by using line 0 locations?
My experience has been that this change resulted in significant improvements in the single-stepping & debugging experience for Swift users. I haven’t seen any new jumpy line table bugs when compiling with swiftc -Onone
.
vedant
-- With best regards, Anton Korobeynikov Department of Statistical Modelling, Saint Petersburg State University
LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
- Previous message: [llvm-dev] [RFC] Removing debug locations from ConstantSDNodes
- Next message: [llvm-dev] [RFC] Removing debug locations from ConstantSDNodes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]