radeon/llvm: Set the neverHasSideEffects bit on more instructions
authorTom Stellard <thomas.stellard@amd.com>
Wed, 29 Aug 2012 14:20:24 +0000 (10:20 -0400)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 29 Aug 2012 19:52:10 +0000 (15:52 -0400)
This flag makes these instructions candidates for the dead code
elimination and common subexpression elimination.

src/gallium/drivers/radeon/SIInstructions.td

index 11bc8012fbd26592eddfb52cd903e7ff52ad7899..8bc311b08a5fe5b4f0896c8f52e6a6217d8ac567 100644 (file)
@@ -12,6 +12,7 @@ def isSI : Predicate<"Subtarget.device()"
 
 let Predicates = [isSI] in {
 
+let neverHasSideEffects = 1 in {
 def S_MOV_B32 : SOP1_32 <0x00000003, "S_MOV_B32", []>;
 def S_MOV_B64 : SOP1_64 <0x00000004, "S_MOV_B64", []>;
 def S_CMOV_B32 : SOP1_32 <0x00000005, "S_CMOV_B32", []>;
@@ -22,6 +23,7 @@ def S_WQM_B32 : SOP1_32 <0x00000009, "S_WQM_B32", []>;
 def S_WQM_B64 : SOP1_64 <0x0000000a, "S_WQM_B64", []>;
 def S_BREV_B32 : SOP1_32 <0x0000000b, "S_BREV_B32", []>;
 def S_BREV_B64 : SOP1_64 <0x0000000c, "S_BREV_B64", []>;
+} // End neverHasSideEffects = 1
 ////def S_BCNT0_I32_B32 : SOP1_BCNT0 <0x0000000d, "S_BCNT0_I32_B32", []>;
 ////def S_BCNT0_I32_B64 : SOP1_BCNT0 <0x0000000e, "S_BCNT0_I32_B64", []>;
 ////def S_BCNT1_I32_B32 : SOP1_BCNT1 <0x0000000f, "S_BCNT1_I32_B32", []>;