[llvm] r337021 - AMDGPU: Fix handling of alignment padding in DAG argument lowering

Evgenii Stepanov via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 13 18:18:53 PDT 2018


On Fri, Jul 13, 2018 at 5:39 PM, Evgenii Stepanov <eugeni.stepanov at gmail.com
> wrote:

> Hi,
>
> MSan is not happy about this change, but the report in unfortunately
> truncated:
> http://lab.llvm.org:8011/builders/sanitizer-x86_64-
> linux-bootstrap-msan/builds/5926/steps/check-llvm%20msan/logs/stdio
>
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AM
>> DGPU/AMDGPUAsmPrinter.cpp?rev=337021&r1=337020&r2=337021&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp (original)
>> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp Fri Jul 13
>> 09:40:25 2018
>> @@ -1128,6 +1128,13 @@ static amd_element_byte_size_t getElemen
>>  void AMDGPUAsmPrinter::getAmdKernelCode(amd_kernel_code_t &Out,
>>                                          const SIProgramInfo
>> &CurrentProgramInfo,
>>                                          const MachineFunction &MF) const
>> {
>> +  const Function &F = MF.getFunction();
>> +
>> +  // Avoid asserting on erroneous cases.
>> +  if (F.getCallingConv() != CallingConv::AMDGPU_KERNEL &&
>> +      F.getCallingConv() != CallingConv::SPIR_KERNEL)
>> +    return;
>> +
>>
>
This function can return w/o initializing the &Out argument.

WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x1415cd65 in void write_signed<long>(llvm::raw_ostream&, long,
unsigned long, llvm::IntegerStyle)
/code/llvm-project/llvm/lib/Support/NativeFormatting.cpp:95:7
    #1 0x1415c900 in llvm::write_integer(llvm::raw_ostream&, long, unsigned
long, llvm::IntegerStyle)
/code/llvm-project/llvm/lib/Support/NativeFormatting.cpp:121:3
    #2 0x1472357f in llvm::raw_ostream::operator<<(long)
/code/llvm-project/llvm/lib/Support/raw_ostream.cpp:117:3
    #3 0x13bb9d4 in llvm::raw_ostream::operator<<(int)
/code/llvm-project/llvm/include/llvm/Support/raw_ostream.h:210:18
    #4 0x3c2bc18 in void printField<unsigned int,
&(amd_kernel_code_s::amd_kernel_code_version_major)>(llvm::StringRef,
amd_kernel_code_s const&, llvm::raw_ostream&)
/code/llvm-project/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp:78:23
    #5 0x3c250ba in llvm::printAmdKernelCodeField(amd_kernel_code_s const&,
int, llvm::raw_ostream&)
/code/llvm-project/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp:104:5
    #6 0x3c27ca3 in llvm::dumpAmdKernelCode(amd_kernel_code_s const*,
llvm::raw_ostream&, char const*)
/code/llvm-project/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp:113:5
    #7 0x3a46e6c in
llvm::AMDGPUTargetAsmStreamer::EmitAMDKernelCodeT(amd_kernel_code_s const&)
/code/llvm-project/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp:161:3
    #8 0xd371e4 in llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart()
/code/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp:204:26

[...]

Uninitialized value was created by an allocation of 'KernelCode' in the
stack frame of function
'_ZN4llvm16AMDGPUAsmPrinter21EmitFunctionBodyStartEv'
    #0 0xd36650 in llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart()
/code/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp:192
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180713/35e94686/attachment.html>


More information about the llvm-commits mailing list