P4 to Git Change 1288111 by jsjodin@jsjodin-git2p4-llvm on 2016/07/06 18:20:21
SWDEV-3 - [msan] Fix __msan_maybe_ for non-standard type sizes. Fix incorrect calculation of the type size for __msan_maybe_warning_N call that resulted in an invalid (narrowing) zext instruction and \"Assertion `castIsValid(op, S, Ty) && \"Invalid cast!\"' failed.\" Only happens in very large functions (with more than 3500 MSan checks) operating on integer types that are not power-of-two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274395 91177308-0d34-0410-b5e6-96231b3b80d8 GitHash: dcfa1b5241a1d0484ad1a67485329b1c7c13b575 Affected files ... ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/lib/Transforms/Instrumentation/MemorySanitizer.cpp#4 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm.git/test/Instrumentation/MemorySanitizer/with-call-type-size.ll#1 add
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user