R600: Add a CONST_ADDRESS node to model constant buf read
authorTom Stellard <thomas.stellard@amd.com>
Wed, 23 Jan 2013 02:09:03 +0000 (02:09 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 23 Jan 2013 02:09:03 +0000 (02:09 +0000)
Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173221 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/AMDGPUISelLowering.cpp
lib/Target/R600/AMDGPUISelLowering.h
lib/Target/R600/R600Instructions.td

index 473dac4ddcb0a082729b596a45d0564806312ab5..309bcf5bfc39ed43b124fff60888381694ecca38 100644 (file)
@@ -413,5 +413,6 @@ const char* AMDGPUTargetLowering::getTargetNodeName(unsigned Opcode) const {
   NODE_NAME_CASE(INTERP)
   NODE_NAME_CASE(INTERP_P0)
   NODE_NAME_CASE(EXPORT)
+  NODE_NAME_CASE(CONST_ADDRESS)
   }
 }
index c7abaf69b4e49107643a5312cf98e2ed2d1e69b9..9938c65de8845c31d83c193754f31ef3b7a3118c 100644 (file)
@@ -123,6 +123,7 @@ enum {
   INTERP,
   INTERP_P0,
   EXPORT,
+  CONST_ADDRESS,
   LAST_AMDGPU_ISD_NUMBER
 };
 
index 8a0c52d858ca58e4990088f7299462fb446bba29..d4fa3d682627a13694a91c4972752a2ffeb9a8d8 100644 (file)
@@ -470,7 +470,7 @@ def isR600toCayman : Predicate<
                      "Subtarget.device()->getGeneration() <= AMDGPUDeviceInfo::HD6XXX">;
 
 //===----------------------------------------------------------------------===//
-// Interpolation Instructions
+// R600 SDNodes
 //===----------------------------------------------------------------------===//
 
 def INTERP: SDNode<"AMDGPUISD::INTERP",
@@ -481,6 +481,15 @@ def INTERP_P0: SDNode<"AMDGPUISD::INTERP_P0",
   SDTypeProfile<1, 1, [SDTCisFP<0>, SDTCisInt<1>]>
   >;
 
+def CONST_ADDRESS: SDNode<"AMDGPUISD::CONST_ADDRESS",
+  SDTypeProfile<1, 1, [SDTCisFP<0>, SDTCisPtrTy<1>]>,
+  [SDNPMayLoad]
+>;
+
+//===----------------------------------------------------------------------===//
+// Interpolation Instructions
+//===----------------------------------------------------------------------===//
+
 let usesCustomInserter = 1 in {
 def input_perspective :  AMDGPUShaderInst <
   (outs R600_Reg128:$dst),