[PATCH] D55299: [LoopDeletion] Update debug values after loop deletion.
    Davide Italiano via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Dec  4 14:58:49 PST 2018
    
    
  
davide created this revision.
davide added reviewers: efriedma, aprantl, vsk, jmorse, CarlosAlbertoEnciso.
Herald added a subscriber: hiraditya.
When loops are deleted, we don't keep track of variables modified inside the loops, so the DI will contain the wrong value for these.
e.g.
int b() {
  int i;
  for (i = 0; i < 2; i++)
    ;
  patatino();
  return a;
-> 6   	  patatino();
  7   	  return a;
  8   	}
  9   	int main() { b(); }
(lldb) frame var i
(int) i = 0
We mark instead these values as unavailable inserting a `@llvm.dbg.value(undef` to make sure we don't end up printing an incorrect value in the debugger. We could consider doing something fancier, for, e.g. constants, in the future.
PR39868.
rdar://problem/46418795
https://reviews.llvm.org/D55299
Files:
  llvm/lib/Transforms/Utils/LoopUtils.cpp
  llvm/test/Transforms/LoopDeletion/diundef.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55299.176718.patch
Type: text/x-patch
Size: 6876 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181204/fb4eb00c/attachment.bin>
    
    
More information about the llvm-commits
mailing list