[llvm-commits] [PATCH] Preserve DebugInfo during LICM

Chris Lattner clattner at apple.com
Sun Oct 11 11:58:04 PDT 2009

On Oct 8, 2009, at 2:23 AM, Török Edwin wrote:
> Hi,

Hi Edwin, sorry for the delay, I was hoping Devang would look at this.

> LICM currently sinks, and deletes debug stoppoints as dead  
> instructions.

That is bad :).

> The attached patch disables sink/hoist of debuginfo (simplifycfg  
> should
> already knows to ignore debuginfo when checking if it can merge  
> blocks),
> and also updates the debug info when sinking/hoisting instructions (by
> copying the stoppoints as needed).

Your change to not hoist debug intrinsics makes a lot of sense, please  
commit. I don't think the UpdateDbgInfoForMotion part is needed  
though.  Devang is moving line # info to be metadata on instructions,  
which will obsolete it.

> I think that we'd need another TEST.dbgquality that tests whether each
> basicblock has at least one stoppoint (if original did),
> and also outputs how many instructions have a stoppoint in same BB,  
> how
> many have a stoppoint
> foundable by findStopPointInst, and how many don't have at all. The  
> test
> would pass if each BB has at least one stoppoint,

I'm not sure what the right approach is here.  When stoppoints move to  
being on the instructions, we won't really need this.  However, there  
will be other forms of "poor debug info", for example, when we  
implemented this:

optimizers will stomp on values used by @llvm.dbg.value, silently  
pessimizing the debug info.  It would be nice to have a way to find  
the "bad" cases of these and fix them.

Thanks for working on this!


> and output an overall quality for each test, and for the entire  
> testsuite.
> What do you think?
> Best regards,
> --Edwin
> <licm-dbginfo.patch>_______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

More information about the llvm-commits mailing list