[llvm] r205188 - R600/SI: Implement SIInstrInfo::isTriviallyRematerializable()
Tom Stellard
thomas.stellard at amd.com
Mon Mar 31 07:01:56 PDT 2014
Author: tstellar
Date: Mon Mar 31 09:01:56 2014
New Revision: 205188
URL: http://llvm.org/viewvc/llvm-project?rev=205188&view=rev
Log:
R600/SI: Implement SIInstrInfo::isTriviallyRematerializable()
Modified:
llvm/trunk/lib/Target/R600/SIInstrInfo.cpp
llvm/trunk/lib/Target/R600/SIInstrInfo.h
Modified: llvm/trunk/lib/Target/R600/SIInstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/SIInstrInfo.cpp?rev=205188&r1=205187&r2=205188&view=diff
==============================================================================
--- llvm/trunk/lib/Target/R600/SIInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/R600/SIInstrInfo.cpp Mon Mar 31 09:01:56 2014
@@ -308,6 +308,18 @@ SIInstrInfo::isSafeToMoveRegClassDefs(co
return RC != &AMDGPU::EXECRegRegClass;
}
+bool
+SIInstrInfo::isTriviallyReMaterializable(const MachineInstr *MI,
+ AliasAnalysis *AA) const {
+ switch(MI->getOpcode()) {
+ default: return AMDGPUInstrInfo::isTriviallyReMaterializable(MI, AA);
+ case AMDGPU::S_MOV_B32:
+ case AMDGPU::S_MOV_B64:
+ case AMDGPU::V_MOV_B32_e32:
+ return MI->getOperand(1).isImm();
+ }
+}
+
namespace llvm {
namespace AMDGPU {
// Helper function generated by tablegen. We are wrapping this with
Modified: llvm/trunk/lib/Target/R600/SIInstrInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/SIInstrInfo.h?rev=205188&r1=205187&r2=205188&view=diff
==============================================================================
--- llvm/trunk/lib/Target/R600/SIInstrInfo.h (original)
+++ llvm/trunk/lib/Target/R600/SIInstrInfo.h Mon Mar 31 09:01:56 2014
@@ -77,6 +77,9 @@ public:
virtual MachineInstr *commuteInstruction(MachineInstr *MI,
bool NewMI=false) const;
+ bool isTriviallyReMaterializable(const MachineInstr *MI,
+ AliasAnalysis *AA = 0) const;
+
virtual unsigned getIEQOpcode() const {
llvm_unreachable("Unimplemented");
}
More information about the llvm-commits
mailing list