Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

non-asm-mode crash #1170

Open
regehr opened this issue Feb 13, 2025 · 0 comments
Open

non-asm-mode crash #1170

regehr opened this issue Feb 13, 2025 · 0 comments

Comments

@regehr
Copy link
Contributor

regehr commented Feb 13, 2025

regehr@john-home:~/alive2-regehr/build/assertion-fail$ cat reduced.ll
@var_13 = external global i8

define void @test(i32 %var_0, i16 %var_1, i16 %var_2, i64 %var_3, i16 %var_4, i1 %var_6, i1 %var_8, i8 %var_9, i8 %var_10, ptr %arr_1) {
entry:
  br i1 %var_6, label %entry.split.us, label %for.body.us141

entry.split.us:                                   ; preds = %entry
  %cmp17.us149 = icmp ult i32 %var_0, 23
  br i1 %cmp17.us149, label %common.ret, label %for.cond.cleanup

common.ret:                                       ; preds = %for.cond.cleanup, %entry.split.us
  ret void

for.body.us141:                                   ; preds = %entry
  store i8 0, ptr %arr_1, align 1
  br label %for.cond.cleanup

for.cond.cleanup:                                 ; preds = %for.body.us141, %entry.split.us
  store i8 %var_10, ptr @var_13, align 1
  br label %common.ret
}
regehr@john-home:~/alive2-regehr/build/assertion-fail$ cat tgt.ll 
; ModuleID = 'tgtModule'
source_filename = "tgtModule"

@var_13 = external local_unnamed_addr global i8

declare void @llvm.assert(i1)

define void @test(i32 %0, i16 %1, i16 %2, i64 %3, i16 %4, i1 %5, i1 %6, i8 %7, i8 %8, ptr %9) local_unnamed_addr {
arm_tv_entry:
  %stack27 = alloca i8, i64 1280, align 16
  %10 = getelementptr inbounds nuw i8, ptr %stack27, i64 1024
  %a0_139 = zext i8 %8 to i64
  store i64 %a0_139, ptr %10, align 16
  %11 = getelementptr inbounds nuw i8, ptr %stack27, i64 1032
  store ptr %9, ptr %11, align 8
  br i1 %5, label %lifter_a4_0, label %lifter_a8_0

lifter_a4_0:                                      ; preds = %arm_tv_entry
  %a5_7 = icmp ugt i32 %0, 22
  br i1 %a5_7, label %lifter_a12_0, label %common.ret

common.ret:                                       ; preds = %lifter_a4_0, %lifter_a12_0
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  tail call void @llvm.assert(i1 true)
  ret void

lifter_a8_0:                                      ; preds = %arm_tv_entry
  store i8 0, ptr %9, align 1
  %a12_2.pre = load i8, ptr %10, align 16
  br label %lifter_a12_0

lifter_a12_0:                                     ; preds = %lifter_a4_0, %lifter_a8_0
  %a12_2 = phi i8 [ %8, %lifter_a4_0 ], [ %a12_2.pre, %lifter_a8_0 ]
  store i8 %a12_2, ptr @var_13, align 1
  br label %common.ret
}

; Function Attrs: mustprogress willreturn allockind("alloc") allocsize(0)
declare nonnull ptr @myalloc(i64, i64 allocalign) local_unnamed_addr #0

attributes #0 = { mustprogress willreturn allockind("alloc") allocsize(0) "alloc-family"="arm-tv-alloc" }

regehr@john-home:~/alive2-regehr/build/assertion-fail$ ../alive-tv reduced.ll tgt.ll 

----------------------------------------
@var_13 = global 1 bytes, align 1

define void @test(i32 %var_0, i16 %var_1, i16 %var_2, i64 %var_3, i16 %var_4, i1 %var_6, i1 %var_8, i8 %var_9, i8 %var_10, ptr %arr_1) {
entry:
  br i1 %var_6, label %entry.split.us, label %for.body.us141

for.body.us141:
  store i8 0, ptr %arr_1, align 1
  br label %for.cond.cleanup

entry.split.us:
  %cmp17.us149 = icmp ult i32 %var_0, 23
  br i1 %cmp17.us149, label %common.ret, label %for.cond.cleanup

for.cond.cleanup:
  store i8 %var_10, ptr @var_13, align 1
  br label %common.ret

common.ret:
  ret void
}
=>
@var_13 = global 1 bytes, align 1

define void @test(i32 %#0, i16 %#1, i16 %#2, i64 %#3, i16 %#4, i1 %#5, i1 %#6, i8 %#7, i8 %#8, ptr %#9) {
arm_tv_entry:
  %stack27 = alloca i64 1 x i64 1280, align 16
  %#10 = gep inbounds nuw ptr %stack27, 1 x i64 1024
  %a0_139 = zext i8 %#8 to i64
  store i64 %a0_139, ptr %#10, align 16
  %#11 = gep inbounds nuw ptr %stack27, 1 x i64 1032
  store ptr %#9, ptr %#11, align 8
  br i1 %#5, label %lifter_a4_0, label %lifter_a8_0

lifter_a8_0:
  store i8 0, ptr %#9, align 1
  %a12_2.pre = load i8, ptr %#10, align 16
  br label %lifter_a12_0

lifter_a4_0:
  %a5_7 = icmp ugt i32 %#0, 22
  br i1 %a5_7, label %lifter_a12_0, label %common.ret

lifter_a12_0:
  %a12_2 = phi i8 [ %#8, %lifter_a4_0 ], [ %a12_2.pre, %lifter_a8_0 ]
  store i8 %a12_2, ptr @var_13, align 1
  br label %common.ret

common.ret:
  ret void
}
alive-tv: /home/regehr/alive2-regehr/ir/memory.cpp:1009: IR::Memory::AliasSet IR::Memory::computeAliasing(const IR::Pointer&, const smt::expr&, uint64_t, bool) const: Assertion `sz_local <= aliasing.size(true)' failed.
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVMSupport.so.21.0git 0x000074ad8b633350 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 64
1  libLLVMSupport.so.21.0git 0x000074ad8b62ff56
2  libc.so.6                 0x000074ad8ac45330
3  libc.so.6                 0x000074ad8ac9eb2c pthread_kill + 284
4  libc.so.6                 0x000074ad8ac4527e gsignal + 30
5  libc.so.6                 0x000074ad8ac288ff abort + 223
6  libc.so.6                 0x000074ad8ac2881b
7  libc.so.6                 0x000074ad8ac3b517
8  alive-tv                  0x000058152ceb0ff8
9  alive-tv                  0x000058152ceb115a
10 alive-tv                  0x000058152ceb2112
11 alive-tv                  0x000058152ceb26ce
12 alive-tv                  0x000058152cf3de09
13 alive-tv                  0x000058152cf42269
14 alive-tv                  0x000058152cf485e6
15 alive-tv                  0x000058152cf4d76b
16 alive-tv                  0x000058152ce1f856
17 alive-tv                  0x000058152ce22aa8
18 alive-tv                  0x000058152ce15db8
19 libc.so.6                 0x000074ad8ac2a1ca
20 libc.so.6                 0x000074ad8ac2a28b __libc_start_main + 139
21 alive-tv                  0x000058152ce16dd5
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: ../alive-tv reduced.ll tgt.ll
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVMSupport.so.21.0git 0x000074ad8b633350 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 64
1  libLLVMSupport.so.21.0git 0x000074ad8b62ff56
2  libc.so.6                 0x000074ad8ac45330
3  libc.so.6                 0x000074ad8ac9eb2c pthread_kill + 284
4  libc.so.6                 0x000074ad8ac4527e gsignal + 30
5  libc.so.6                 0x000074ad8ac288ff abort + 223
6  libc.so.6                 0x000074ad8ac2881b
7  libc.so.6                 0x000074ad8ac3b517
8  alive-tv                  0x000058152ceb0ff8
9  alive-tv                  0x000058152ceb115a
10 alive-tv                  0x000058152ceb2112
11 alive-tv                  0x000058152ceb26ce
12 alive-tv                  0x000058152cf3de09
13 alive-tv                  0x000058152cf42269
14 alive-tv                  0x000058152cf485e6
15 alive-tv                  0x000058152cf4d76b
16 alive-tv                  0x000058152ce1f856
17 alive-tv                  0x000058152ce22aa8
18 alive-tv                  0x000058152ce15db8
19 libc.so.6                 0x000074ad8ac2a1ca
20 libc.so.6                 0x000074ad8ac2a28b __libc_start_main + 139
21 alive-tv                  0x000058152ce16dd5
Aborted (core dumped)
regehr@john-home:~/alive2-regehr/build/assertion-fail$ 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant