AMDGPU: Refactor exp instructions
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 5 Dec 2016 20:23:10 +0000 (20:23 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 5 Dec 2016 20:23:10 +0000 (20:23 +0000)
commit7bee6ac798f2c547753dd867e130ec587f201483
treeda0fea7e1f415a0dbada331fc836c3e2ca547240
parentdf87d070c917029bd0209408fcfe833d149bcca7
AMDGPU: Refactor exp instructions

Structure the definitions a bit more like the other classes.

The main change here is to split EXP with the done bit set
to a separate opcode, so we can set mayLoad = 1 so that it won't
be reordered before the other exp stores, since this has the special
constraint that if the done bit is set then this should be the last
exp in she shader.

Previously all exp instructions were inferred to have unmodeled
side effects.

llvm-svn: 288695
17 files changed:
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
llvm/lib/Target/AMDGPU/R600Instructions.td
llvm/lib/Target/AMDGPU/SIDefines.h
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/lib/Target/AMDGPU/SIInsertSkips.cpp
llvm/lib/Target/AMDGPU/SIInsertWaits.cpp
llvm/lib/Target/AMDGPU/SIInstrFormats.td
llvm/lib/Target/AMDGPU/SIInstrInfo.h
llvm/lib/Target/AMDGPU/SIInstrInfo.td
llvm/lib/Target/AMDGPU/SIInstructions.td
llvm/lib/Target/AMDGPU/SIIntrinsics.td
llvm/test/CodeGen/AMDGPU/ret.ll
llvm/test/CodeGen/MIR/AMDGPU/insert-waits-exp.mir [new file with mode: 0644]
llvm/test/CodeGen/MIR/AMDGPU/movrels-bug.mir