
Fixes #139024 and #139954 - Refactor DXILShaderFlags to compute the flags that apply to a whole module before computing flags that apply individually to each function - Make DXILResourceMap const, since it is not modified in DXILShaderFlags - Per-function shader flag analysis now initially starts with the set of flags that apply to the whole module instead of starting from no flags. This change fixes the above linked issues - Fix shader flag tests affected by the above change
45 lines
1.5 KiB
LLVM
45 lines
1.5 KiB
LLVM
; RUN: opt -S --passes="print-dx-shader-flags" 2>&1 %s | FileCheck %s
|
|
|
|
|
|
; CHECK: ; Combined Shader Flags for Module
|
|
; CHECK-NEXT: ; Shader Flags Value: 0x00000001
|
|
|
|
; CHECK: ; Note: extra DXIL module flags:
|
|
; CHECK-NEXT: ; Disable shader optimizations
|
|
|
|
; CHECK: ; Shader Flags for Module Functions
|
|
; CHECK: ; Function main : 0x00000001
|
|
; The test source in this file generated from the following command:
|
|
; clang -cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -emit-llvm -O0 -o - <<EOF
|
|
|
|
; [numthreads(1,1,1)]
|
|
; [shader("compute")]
|
|
; void main() {}
|
|
|
|
; int foo() {return 0;}
|
|
; EOF
|
|
|
|
target triple = "dxilv1.3-pc-shadermodel6.3-library"
|
|
|
|
; Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
|
|
define internal void @_Z4mainv() #0 {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
; Function Attrs: convergent noinline norecurse optnone
|
|
define void @main() #1 {
|
|
entry:
|
|
call void @_Z4mainv()
|
|
ret void
|
|
}
|
|
|
|
; Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
|
|
define noundef i32 @_Z3foov() #0 {
|
|
entry:
|
|
ret i32 0
|
|
}
|
|
|
|
attributes #0 = { convergent mustprogress noinline norecurse nounwind optnone "approx-func-fp-math"="true" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
|
|
attributes #1 = { convergent noinline norecurse optnone "approx-func-fp-math"="true" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
|