[llvm-dev] [RFC] Moving llvm.dbg.value out of the instruction stream

Adrian Prantl via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 23 09:53:07 PDT 2018


[resending with a bugfix s/x/y/ in my example]

We still have to support constant dbg.values that need to be at a specific point in the instruction stream and don't refer to any SSA value.
For example, we can still have code like this:

 int x = foo();
 int y = 42;
 bar();
 y = x;
 baz();

that might lower into IR like

 %x = call i32 @foo()
 call void @llvm.dbg.value(i32 %x, DIVariable("x"), ...)
 call void @llvm.dbg.value(i32 42, DIVariable("y"), ...)
 call void @bar()
 call void @llvm.dbg.value(i32 %x, DIVariable("y"), ...) ; %x is not materialized here, and we also can't hoist this.
 call void @foo()

-- adrian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181023/5133f87e/attachment.html>


More information about the llvm-dev mailing list