OSDN Git Service

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)
commit350d0dab1e5a77a8096b83aff6421a8b08fbcc38
tree9030d7efb25b0e8b9356145acd10f809f3a0610b
parent5b9f351e179585e45a32c9241ba3941524a04c38
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288695 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
lib/Target/AMDGPU/AMDGPUISelLowering.h
lib/Target/AMDGPU/AMDGPUInstrInfo.td
lib/Target/AMDGPU/R600ISelLowering.cpp
lib/Target/AMDGPU/R600Instructions.td
lib/Target/AMDGPU/SIDefines.h
lib/Target/AMDGPU/SIISelLowering.cpp
lib/Target/AMDGPU/SIInsertSkips.cpp
lib/Target/AMDGPU/SIInsertWaits.cpp
lib/Target/AMDGPU/SIInstrFormats.td
lib/Target/AMDGPU/SIInstrInfo.h
lib/Target/AMDGPU/SIInstrInfo.td
lib/Target/AMDGPU/SIInstructions.td
lib/Target/AMDGPU/SIIntrinsics.td
test/CodeGen/AMDGPU/ret.ll
test/CodeGen/MIR/AMDGPU/insert-waits-exp.mir [new file with mode: 0644]
test/CodeGen/MIR/AMDGPU/movrels-bug.mir