[llvm] r340171 - AMDGPU: bump AS.MAX_COMMON_ADDRESS to 6 since 32-bit addr space
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 20 11:36:45 PDT 2018
Not sure how this suppose to work.
Now MAX_COMMON_ADDRESS allows to have AS1 and AS2 == 6
and (*ASAliasRules)[AS1][AS2].
but ASAliasRulesPrivIsZero and ASAliasRulesGenIsZero had only 6 elements
If no one is looking, I am going to revert.
On Mon, Aug 20, 2018 at 11:24 AM Vitaly Buka <vitalybuka at google.com> wrote:
> Similar for msan
> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan/builds/6784
> and ubsan
> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-ubsan/builds/5631/steps/check-llvm%20ubsan/logs/stdio
>
> On Mon, Aug 20, 2018 at 11:22 AM Vitaly Buka <vitalybuka at google.com>
> wrote:
>
>> This looks caused by the patch
>>
>> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/6883/steps/check-llvm%20asan/logs/stdio
>>
>> FAIL: LLVM :: CodeGen/AMDGPU/amdgpu-alias-analysis.ll (5325 of 27229)
>> ******************** TEST 'LLVM :: CodeGen/AMDGPU/amdgpu-alias-analysis.ll' FAILED ********************
>> Script:
>> --
>> : 'RUN: at line 1'; /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/opt -mtriple=amdgcn-- -O3 -aa-eval -print-all-alias-modref-info -disable-output < /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll 2>&1 | /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
>> : 'RUN: at line 2'; /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/opt -mtriple=r600-- -O3 -aa-eval -print-all-alias-modref-info -disable-output < /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll 2>&1 | /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
>> --
>> Exit Code: 1
>>
>> Command Output (stderr):
>> --
>> /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll:10:10: error: CHECK: expected string not found in input
>> ; CHECK: NoAlias: i8 addrspace(1)* %p1, i8 addrspace(6)* %p
>> ^
>> <stdin>:3:1: note: scanning from here
>> Function: test_32bit_addr_space: 2 pointers, 0 call sites
>> ^
>> <stdin>:3:5: note: possible intended match here
>> Function: test_32bit_addr_space: 2 pointers, 0 call sites
>> ^
>>
>> --
>>
>> ********************
>> Testing: 0 .. 10.. 20
>> FAIL: LLVM :: CodeGen/AMDGPU/widen-smrd-loads.ll (6391 of 27229)
>> ******************** TEST 'LLVM :: CodeGen/AMDGPU/widen-smrd-loads.ll' FAILED ********************
>> Script:
>> --
>> : 'RUN: at line 1'; /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/llc -amdgpu-codegenprepare-widen-constant-loads=0 -march=amdgcn -mcpu=tahiti -verify-machineinstrs < /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll | /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/FileCheck -enable-var-scope -check-prefixes=GCN,SI /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll
>> : 'RUN: at line 2'; /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/llc -amdgpu-codegenprepare-widen-constant-loads=0 -march=amdgcn -mcpu=tonga -verify-machineinstrs < /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll | /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/FileCheck -enable-var-scope -check-prefixes=GCN,VI /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll
>> --
>> Exit Code: 1
>>
>> Command Output (stderr):
>> --
>> =================================================================
>> ==22327==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000007134b68 at pc 0x0000012c05c8 bp 0x7fff2e2b6b40 sp 0x7fff2e2b6b38
>> READ of size 1 at 0x000007134b68 thread T0
>> #0 0x12c05c7 in getAliasResult /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp:99:10
>> #1 0x12c05c7 in llvm::AMDGPUAAResult::alias(llvm::MemoryLocation const&, llvm::MemoryLocation const&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp:107
>> #2 0x3367dc1 in llvm::AAResults::alias(llvm::MemoryLocation const&, llvm::MemoryLocation const&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/AliasAnalysis.cpp:105:23
>> #3 0x3396a90 in alias /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/Analysis/AliasAnalysis.h:896:25
>> #4 0x3396a90 in llvm::BasicAAResult::aliasCheck(llvm::Value const*, unsigned long, llvm::AAMDNodes, llvm::Value const*, unsigned long, llvm::AAMDNodes, llvm::Value const*, llvm::Value const*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/BasicAliasAnalysis.cpp:1779
>> #5 0x33951de in llvm::BasicAAResult::alias(llvm::MemoryLocation const&, llvm::MemoryLocation const&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/BasicAliasAnalysis.cpp:780:23
>> #6 0x3367dc1 in llvm::AAResults::alias(llvm::MemoryLocation const&, llvm::MemoryLocation const&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/AliasAnalysis.cpp:105:23
>> #7 0x35d070c in llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(llvm::MemoryLocation const&, bool, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, false>, llvm::BasicBlock*, llvm::Instruction*, unsigned int*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp:577:26
>> #8 0x35cfb45 in llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(llvm::MemoryLocation const&, bool, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, false>, llvm::BasicBlock*, llvm::Instruction*, unsigned int*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp:448:12
>> #9 0x35ce759 in llvm::MemoryDependenceResults::getPointerDependencyFrom(llvm::MemoryLocation const&, bool, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, false>, llvm::BasicBlock*, llvm::Instruction*, unsigned int*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp:341:28
>> #10 0x12c95d4 in isClobberedInFunction /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp:112:19
>> #11 0x12c95d4 in visitLoadInst /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp:142
>> #12 0x12c95d4 in visitLoad /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/IR/Instruction.def:153
>> #13 0x12c95d4 in visit /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/IR/Instruction.def:153
>> #14 0x12c95d4 in visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, false> > /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/IR/InstVisitor.h:92
>> #15 0x12c95d4 in visit /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/IR/InstVisitor.h:107 #16 0x12c95d4 in visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, true, false, void>, false, false> > /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/IR/InstVisitor.h:92
>> #17 0x12c95d4 in visit /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/IR/InstVisitor.h:103
>> #18 0x12c95d4 in (anonymous namespace)::AMDGPUAnnotateUniformValues::runOnFunction(llvm::Function&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp:184
>> #19 0x47fea6d in llvm::FPPassManager::runOnFunction(llvm::Function&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/IR/LegacyPassManager.cpp:1586:27
>> #20 0x3464f8c in RunPassOnSCC /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/CallGraphSCCPass.cpp:166:25
>> #21 0x3464f8c in RunAllPassesOnSCC /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/CallGraphSCCPass.cpp:430
>> #22 0x3464f8c in (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Analysis/CallGraphSCCPass.cpp:486
>> #23 0x47ffe7e in runOnModule /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/IR/LegacyPassManager.cpp:1669:27
>> #24 0x47ffe7e in llvm::legacy::PassManagerImpl::run(llvm::Module&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/IR/LegacyPassManager.cpp:1774
>> #25 0xa074af in compileModule(char**, llvm::LLVMContext&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/llc/llc.cpp:597:8
>> #26 0xa00ae0 in main /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/llc/llc.cpp:351:22
>> #27 0x7f33f66c22e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
>> #28 0x8f4b99 in _start (/b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/llc+0x8f4b99)
>>
>> 0x000007134b68 is located 56 bytes to the left of global variable '<string literal>' defined in '/b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp:74:5' (0x7134ba0) of size 129
>> '<string literal>' is ascii string 'AS.GLOBAL_ADDRESS == 1 && AS.REGION_ADDRESS == 2 && AS.LOCAL_ADDRESS == 3 && AS.CONSTANT_ADDRESS == 4 && AS.PRIVATE_ADDRESS == 5'
>> 0x000007134b68 is located 4 bytes to the right of global variable 'ASAliasRulesGenIsZero' defined in '/b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp:63:28' (0x7134b40) of size 36
>> SUMMARY: AddressSanitizer: global-buffer-overflow /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp:99:10 in getAliasResult
>> Shadow bytes around the buggy address:
>> 0x000080e1e910: 00 00 00 00 00 00 00 00 00 07 f9 f9 f9 f9 f9 f9
>> 0x000080e1e920: 00 00 00 00 00 00 00 01 f9 f9 f9 f9 00 00 00 00
>> 0x000080e1e930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>> 0x000080e1e940: f9 f9 f9 f9 00 00 00 00 00 03 f9 f9 f9 f9 f9 f9
>> 0x000080e1e950: 00 00 00 00 00 00 04 f9 f9 f9 f9 f9 00 00 00 00
>> =>0x000080e1e960: 00 00 00 00 00 00 00 00 00 00 00 00 04[f9]f9 f9
>> 0x000080e1e970: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
>> 0x000080e1e980: 00 00 00 00 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 00
>> 0x000080e1e990: 00 00 00 00 00 00 00 01 f9 f9 f9 f9 00 00 00 00
>> 0x000080e1e9a0: 00 00 00 00 00 00 01 f9 f9 f9 f9 f9 00 00 00 00
>> 0x000080e1e9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
>> Shadow byte legend (one shadow byte represents 8 application bytes):
>> Addressable: 00
>> Partially addressable: 01 02 03 04 05 06 07
>> Heap left redzone: fa
>> Freed heap region: fd
>> Stack left redzone: f1
>> Stack mid redzone: f2
>> Stack right redzone: f3
>> Stack after return: f5
>> Stack use after scope: f8
>> Global redzone: f9
>> Global init order: f6
>> Poisoned by user: f7
>> Container overflow: fc
>> Array cookie: ac
>> Intra object redzone: bb
>> ASan internal: fe
>> Left alloca redzone: ca
>> Right alloca redzone: cb
>> Shadow gap: cc
>> ==22327==ABORTING
>> /b/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/AMDGPU/widen-smrd-loads.ll:143:14: error: GCN-LABEL: expected string not found in input
>> ; GCN-LABEL: {{^}}widen_i16_constant32_load:
>> ^
>> <stdin>:518:37: note: scanning from here
>> widen_i1_zext_to_i64_constant_load: ; @widen_i1_zext_to_i64_constant_load
>> ^
>> <stdin>:518:48: note: possible intended match here
>> widen_i1_zext_to_i64_constant_load: ; @widen_i1_zext_to_i64_constant_load
>> ^
>>
>> --
>>
>> ********************
>> Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
>> Testing Time: 384.24s
>> ********************
>> Failing Tests (2):
>> LLVM :: CodeGen/AMDGPU/amdgpu-alias-analysis.ll
>> LLVM :: CodeGen/AMDGPU/widen-smrd-loads.ll
>>
>> Expected Passes : 26393
>> Expected Failures : 148
>> Unsupported Tests : 686
>> Unexpected Failures: 2
>> FAILED: test/CMakeFiles/check-llvm
>> cd /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/test && /usr/bin/python2.7 /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/./bin/llvm-lit -sv /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/test
>> ninja: build stopped: subcommand failed.
>> + echo @@@STEP_FAILURE@@@
>> + echo @@@BUILD_STEP check-clang asan@@@
>> @@@STEP_FAILURE@@@
>>
>>
>> --------------------------------------------------------------------------------
>> started: Mon Aug 20 06:50:07 2018
>> ended: Mon Aug 20 07:15:07 2018
>> duration: 24 mins, 59 secs
>>
>>
>> On Mon, Aug 20, 2018 at 6:19 AM Samuel Pitoiset via llvm-commits <
>> llvm-commits at lists.llvm.org> wrote:
>>
>>> Author: hakzsam
>>> Date: Mon Aug 20 06:18:59 2018
>>> New Revision: 340171
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=340171&view=rev
>>> Log:
>>> AMDGPU: bump AS.MAX_COMMON_ADDRESS to 6 since 32-bit addr space
>>>
>>> 32-bit constant address space is declared as 6, so the
>>> maximum number of address spaces is 6, not 5.
>>>
>>> Fixes "LLVM ERROR: Pointer address space out of range".
>>>
>>> v3: use static_assert()
>>> v2: add a very simple test for 32-bit addr space
>>>
>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106630
>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>>>
>>> Modified:
>>> llvm/trunk/lib/Target/AMDGPU/AMDGPU.h
>>> llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
>>> llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
>>>
>>> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPU.h
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPU.h?rev=340171&r1=340170&r2=340171&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/lib/Target/AMDGPU/AMDGPU.h (original)
>>> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPU.h Mon Aug 20 06:18:59 2018
>>> @@ -229,7 +229,7 @@ struct AMDGPUAS {
>>>
>>> enum : unsigned {
>>> // The maximum value for flat, generic, local, private, constant
>>> and region.
>>> - MAX_COMMON_ADDRESS = 5,
>>> + MAX_COMMON_ADDRESS = 6,
>>>
>>> GLOBAL_ADDRESS = 1, ///< Address space for global memory (RAT0,
>>> VTX0).
>>> CONSTANT_ADDRESS = 4, ///< Address space for constant memory (VTX2)
>>>
>>> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp?rev=340171&r1=340170&r2=340171&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp (original)
>>> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp Mon Aug 20
>>> 06:18:59 2018
>>> @@ -69,7 +69,7 @@ AMDGPUAAResult::ASAliasRulesTy::ASAliasR
>>> /* Region */ {MayAlias, NoAlias , NoAlias , NoAlias, MayAlias,
>>> NoAlias},
>>> /* Private */ {MayAlias, NoAlias , NoAlias , NoAlias , NoAlias ,
>>> MayAlias}
>>> };
>>> - assert(AS.MAX_COMMON_ADDRESS <= 5);
>>> + static_assert(AS.MAX_COMMON_ADDRESS <= 6, "Addr space out of range");
>>> if (AS.FLAT_ADDRESS == 0) {
>>> assert(AS.GLOBAL_ADDRESS == 1 &&
>>> AS.REGION_ADDRESS == 2 &&
>>>
>>> Modified: llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll?rev=340171&r1=340170&r2=340171&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll (original)
>>> +++ llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll Mon Aug 20
>>> 06:18:59 2018
>>> @@ -7,3 +7,9 @@ define void @test(i8 addrspace(5)* %p, i
>>> ret void
>>> }
>>>
>>> +; CHECK: NoAlias: i8 addrspace(1)* %p1, i8 addrspace(6)* %p
>>> +
>>> +define void @test_32bit_addr_space(i8 addrspace(6)* %p, i8
>>> addrspace(1)* %p1) {
>>> + ret void
>>> +}
>>> +
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180820/0c7a2258/attachment.html>
More information about the llvm-commits
mailing list