[llvm] r340171 - AMDGPU: bump AS.MAX_COMMON_ADDRESS to 6 since 32-bit addr space
Samuel Pitoiset via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 20 12:10:23 PDT 2018
This should be fixed by https://reviews.llvm.org/D50974
Sorry for the breakage and please don't revert it, I guess a fix should
be upstream soon.
Thanks!
On 8/20/18 8:36 PM, Vitaly Buka wrote:
> 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
> <mailto: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
> <mailto: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
> <mailto: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
> <mailto: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 <mailto:llvm-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list