Ver Fonte

Not set GlobalVariable to constant.
Update tests.

Xiang Li há 7 anos atrás
pai
commit
84546aa8f1

+ 0 - 9
lib/HLSL/DxilGenerationPass.cpp

@@ -28,7 +28,6 @@
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/InstIterator.h"
 #include "llvm/IR/IntrinsicInst.h"
-#include "llvm/Transforms/Utils/GlobalStatus.h"
 #include "llvm/IR/Module.h"
 #include "llvm/IR/DebugInfo.h"
 #include "llvm/IR/PassManager.h"
@@ -83,14 +82,6 @@ public:
 };
 
 void SimplifyGlobalSymbol(GlobalVariable *GV) {
-  GlobalStatus GS;
-
-  if (GlobalStatus::analyzeGlobal(GV, GS))
-    return;
-  if (GS.StoredType == GS.NotStored || GS.StoredType == GS.InitializerStored) {
-    GV->setConstant(true);
-    GV->setInitializer(nullptr);
-  }
   Type *Ty = GV->getType()->getElementType();
   if (!Ty->isArrayTy()) {
     // Make sure only 1 load of GV in each function.

+ 5 - 2
tools/clang/test/CodeGenHLSL/lib_entries.hlsl

@@ -1,11 +1,16 @@
 // RUN: %dxc -T lib_6_1 %s | FileCheck %s
 
+
 // Make sure entry function exist.
 // CHECK: @cs_main()
 // Make sure signatures are lowered.
 // CHECK: dx.op.threadId
 // CHECK: dx.op.groupId
 
+
+// Make sure cloned function exist.
+// CHECK: @"\01?ps_main
+
 // Make sure entry function exist.
 // CHECK: @gs_main()
 // Make sure signatures are lowered.
@@ -55,8 +60,6 @@
 // CHECK-NOT: call void @dx.op.storeOutput
 
 
-// Make sure cloned function exist.
-// CHECK: @"\01?ps_main
 
 
 // Make sure function entrys exist.

+ 3 - 2
tools/clang/test/CodeGenHLSL/lib_entries2.hlsl

@@ -6,6 +6,9 @@
 // CHECK: dx.op.threadId
 // CHECK: dx.op.groupId
 
+// Make sure cloned function exist.
+// CHECK: @"\01?ps_main
+
 // Make sure entry function exist.
 // CHECK: @gs_main()
 // Make sure signatures are lowered.
@@ -53,8 +56,6 @@
 // CHECK-NOT: call void @dx.op.storeOutput
 
 
-// Make sure cloned function exist.
-// CHECK: @"\01?ps_main
 
 
 // Make sure function entrys exist.

+ 1 - 1
tools/clang/test/CodeGenHLSL/lib_no_alias.hlsl

@@ -1,7 +1,7 @@
 // RUN: %dxc -T lib_6_1 %s | FileCheck %s
 
 // Make sure out param has no-alias.
-// CHECK: void @"\01?test@@YAMMUT@@AIAV?$matrix@M$01$01@@M@Z"(float, float* noalias nocapture, i32* noalias nocapture, [4 x float]* noalias nocapture dereferenceable(16), float, float* noalias nocapture)
+// CHECK: float @"\01?test@@YAMMUT@@AIAV?$matrix@M$01$01@@M@Z"(float %a, %struct.T* noalias nocapture %t, %class.matrix.float.2.2* noalias nocapture dereferenceable(16) %m, float %b)
 
 struct T {
   float a;

+ 3 - 9
tools/clang/test/CodeGenHLSL/lib_resource.hlsl

@@ -1,14 +1,8 @@
 // RUN: %dxc -T lib_6_1 %s | FileCheck %s
 
-// Make sure globals for link info exist.
-// CHECK: g_txDiffuse_rangeID
-// CHECK: g_samLinear_rangeID
-
-// Make sure link info metadata exist.
-// CHECK: dx.resources.link.info
-// CHECK: !{i32* @g_txDiffuse_rangeID}
-// CHECK: !{i32* @g_samLinear_rangeID}
-
+// Make sure globals for resource exist.
+// CHECK: @"\01?g_txDiffuse@@3V?$Texture2D@V?$vector@M$03@@@@A" = external global %class.Texture2D, align 4
+// CHECK: @"\01?g_samLinear@@3USamplerState@@A" = external global %struct.SamplerState, align 4
 
 Texture2D    g_txDiffuse;
 SamplerState    g_samLinear;

+ 3 - 3
tools/clang/test/CodeGenHLSL/quick-test/lib_select_res.hlsl

@@ -1,9 +1,9 @@
 // RUN: %dxc -T lib_6_1 %s | FileCheck %s
 
 // Make sure createHandleFromResourceStructForLib is used for resource.
-// CHECK:call %dx.types.Handle @"dx.op.createHandleFromResourceStructForLib.%struct.ByteAddressBuffer
-// CHECK:call %dx.types.Handle @"dx.op.createHandleFromResourceStructForLib.%struct.ByteAddressBuffer
-// CHECK:call %dx.types.Handle @"dx.op.createHandleFromResourceStructForLib.%struct.RWByteAddressBuffer
+// CHECK:call %dx.types.Handle @dx.op.createHandleFromResourceStructForLib.struct.ByteAddressBuffer(i32 160
+// CHECK:call %dx.types.Handle @dx.op.createHandleFromResourceStructForLib.struct.ByteAddressBuffer(i32 160
+// CHECK:call %dx.types.Handle @dx.op.createHandleFromResourceStructForLib.struct.RWByteAddressBuffer(i32 160
 
 RWByteAddressBuffer outputBuffer : register(u0);
 ByteAddressBuffer ReadBuffer : register(t0);