P4 to Git Change 1288106 by jsjodin@jsjodin-git2p4-llvm on 2016/07/06 18:17:28
SWDEV-3 - AMDGPU: Improve load/store of illegal types. There was a combine before to handle the simple copy case. Split this into handling loads and stores separately. We might want to change how this handles some of the vector extloads, since this can result in large code size increases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274394 91177308-0d34-0410-b5e6-96231b3b80d8 GitHash: df587174ebb04a30c8b55aef601121c25af11986 Affected files ... ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/lib/Target/AMDGPU/AMDGPUISelLowering.cpp#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/lib/Target/AMDGPU/AMDGPUISelLowering.h#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/lib/Target/AMDGPU/SIISelLowering.cpp#6 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/add.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/copy-illegal-type.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/ctpop64.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/half.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/insert_vector_elt.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-constant-i16.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-constant-i32.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-constant-i64.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-constant-i8.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-global-f64.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-global-i16.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-global-i32.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-global-i64.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-global-i8.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-local-f32.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-local-i16.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-local-i8.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/load-weird-sizes.ll#1 add ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/scalar_to_vector.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/sext-in-reg.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/shift-and-i128-ubfe.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/store-barrier.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/store.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/sub.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/trunc-bitcast-vector.ll#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/CodeGen/AMDGPU/trunc-store.ll#2 edit
Этот коммит содержится в:
@@ -1072,10 +1072,9 @@ Resource::free()
|
||||
void
|
||||
Resource::writeRawData(
|
||||
VirtualGPU& gpu,
|
||||
size_t offset,
|
||||
size_t size,
|
||||
size_t size,
|
||||
const void* data,
|
||||
bool waitForEvent) const
|
||||
bool waitForEvent) const
|
||||
{
|
||||
GpuEvent event;
|
||||
|
||||
@@ -1083,8 +1082,11 @@ Resource::writeRawData(
|
||||
// size needs to be DWORD aligned
|
||||
assert((size & 3) == 0);
|
||||
gpu.eventBegin(MainEngine);
|
||||
//! @todo Remove cache flush
|
||||
//! It's a workaround for a PAL crash with embedded data, allocated before any command
|
||||
gpu.flushCUCaches();
|
||||
gpu.queue(MainEngine).addCmdMemRef(iMem());
|
||||
gpu.iCmd()->CmdUpdateMemory(*iMem(), offset, size, reinterpret_cast<const uint32_t*>(data));
|
||||
gpu.iCmd()->CmdUpdateMemory(*iMem(), 0, size, reinterpret_cast<const uint32_t*>(data));
|
||||
gpu.eventEnd(MainEngine, event);
|
||||
|
||||
setBusy(gpu, event);
|
||||
@@ -1936,7 +1938,7 @@ Resource::warmUpRenames(VirtualGPU& gpu)
|
||||
uint dummy = 0;
|
||||
const bool NoWait = false;
|
||||
// Write 0 for the buffer paging by VidMM
|
||||
writeRawData(gpu, 0, sizeof(dummy), &dummy, NoWait);
|
||||
writeRawData(gpu, sizeof(dummy), &dummy, NoWait);
|
||||
const bool Force = true;
|
||||
rename(gpu, Force);
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user