-
Notifications
You must be signed in to change notification settings - Fork 804
Added debug info for localized global variables for inlined scopes. #7799
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 5 commits
73cb836
cab66db
4f7da33
5089400
3464c49
9865727
8ab718b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It would be better if this were an IR to IR test rather than HLSL to IR running the full pipeline. DXC's hacked up SROA is quite messy and massively under tested. The There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sure thing. Can I also keep this HLSL test? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added an IR test. I want to keep the HLSL test too just to verify end-to-end. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
// RUN: %dxc -E main -T ps_6_0 -Od -Zi %s | FileCheck %s | ||
|
||
// Check that the debug info for a global variable is present for every inlined scope | ||
|
||
// CHECK: @main | ||
|
||
// CHECK-DAG: ![[main_scope:[0-9]+]] = !DISubprogram(name: "main" | ||
// CHECK-DAG: ![[main_var:[0-9]+]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "global.g_cond", arg: {{[0-9]+}}, scope: ![[main_scope]], | ||
// CHECK-DAG: call void @llvm.dbg.value(metadata i32 %{{.+}}, metadata ![[main_var]], | ||
|
||
// CHECK-DAG: ![[foo_scope:[0-9]+]] = !DISubprogram(name: "foo" | ||
// CHECK-DAG: ![[foo_var:[0-9]+]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "global.g_cond", arg: {{[0-9]+}}, scope: ![[foo_scope]], | ||
// CHECK-DAG: call void @llvm.dbg.value(metadata i32 %{{.+}}, metadata ![[foo_var]], | ||
|
||
// CHECK-DAG: ![[bar_scope:[0-9]+]] = !DISubprogram(name: "bar" | ||
// CHECK-DAG: ![[bar_var:[0-9]+]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "global.g_cond", arg: {{[0-9]+}}, scope: ![[bar_scope]], | ||
// CHECK-DAG: call void @llvm.dbg.value(metadata i32 %{{.+}}, metadata ![[bar_var]], | ||
|
||
static bool g_cond; | ||
|
||
Texture2D tex0 : register(t0); | ||
Texture2D tex1 : register(t1); | ||
|
||
float4 bar() { | ||
if (g_cond) | ||
return tex0.Load(1); | ||
return 0; | ||
} | ||
|
||
float4 foo() { | ||
float4 ret = g_cond ? tex0.Load(0) : tex1.Load(0); | ||
ret += bar(); | ||
return ret; | ||
} | ||
|
||
[RootSignature("DescriptorTable(SRV(t0, numDescriptors=2))")] | ||
float4 main(uint a : A) : sv_target { | ||
g_cond = a != 0; | ||
return foo(); | ||
}; | ||
|
||
|
||
|
Uh oh!
There was an error while loading. Please reload this page.