R600/SI: Add load / store machine optimizer pass.
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 10 Oct 2014 22:01:59 +0000 (22:01 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 10 Oct 2014 22:01:59 +0000 (22:01 +0000)
commit968e1f2f5b6f9379ce5c222841ca842060354e8e
treef3cdc941dc1be0ba3b6a8cb958b727e16453af2d
parent65f2077c6246534bb5d89fc2d205ef5de582549b
R600/SI: Add load / store machine optimizer pass.

Currently this only functions to match simple cases
where ds_read2_* / ds_write2_* instructions can be used.

In the future it might match some of the other weird
load patterns, such as direct to LDS loads.

Currently enabled only with a subtarget feature to enable
easier testing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219533 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/AMDGPU.h
lib/Target/R600/AMDGPU.td
lib/Target/R600/AMDGPUSubtarget.cpp
lib/Target/R600/AMDGPUSubtarget.h
lib/Target/R600/AMDGPUTargetMachine.cpp
lib/Target/R600/CMakeLists.txt
lib/Target/R600/SILoadStoreOptimizer.cpp [new file with mode: 0644]
test/CodeGen/R600/ds-negative-offset-addressing-mode-loop.ll
test/CodeGen/R600/ds_read2.ll [new file with mode: 0644]
test/CodeGen/R600/ds_write2.ll [new file with mode: 0644]