Issue 66180
Summary llvm::X86TargetLowering::EmitInstrWithCustomInserter(llvm::MachineInstr&, llvm::MachineBasicBlock*) const: Assertion `Subtarget.is32Bit() && "preallocated only used in 32-bit"' failed.
Labels new issue
Assignees
Reporter LRY89757
    ### code
llvm ir
```llvm
declare token @llvm.call.preallocated.setup(i32)
declare ptr @llvm.call.preallocated.arg(token, i32)

define internal i32 @f(ptr %m) {
  %v = load i32, ptr %m
  %_one_ = add i32 %v, 1
  store i32 %one, ptr %m
  ret i32 %v
}

define internal x86_thiscallcc i32 @g(ptr %m) {
  %v = load i32, ptr %m
  %_one_ = add i32 %v, 1
  store i32 %one, ptr %m
  ret i32 %v
}

define internal coldcc i32 @h(ptr %m) {
  %v = load i32, ptr %m
  %_one_ = add i32 %v, 1
  store i32 %one, ptr %m
  ret i32 %v
}

define internal i32 @j(ptr %m) {
 %v = load i32, ptr %m
  %_one_ = add i32 %v, 1
  store i32 %one, ptr %m
  ret i32 %v
}

define internal i32 @inalloca(ptr inalloca(i32) %p) {
  %v = load i32, ptr %p
  store i32 %v, ptr %p
 %_one_ = add i32 %v, 1
  store i32 %one, ptr %p
  ret i32 %v
}

define i32 @inalloca2_caller(ptr inalloca(i32) %p) {
  %rv = call i32 @inalloca2(ptr inalloca(i32) %p)
  ret i32 %rv
}
define internal i32 @inalloca2(ptr inalloca(i32) %p) {
  %v = load i32, ptr %p
  store i32 %v, ptr %p
  %_one_ = add i32 %v, 1
  store i32 %one, ptr %p
  ret i32 %v
}

define internal i32 @preallocated(ptr preallocated(i32) %p) {
  %v = load i32, ptr %p
  store i32 %v, ptr %p
  %_one_ = add i32 %v, 1
  store i32 %one, ptr %p
  ret i32 %v
}

declare void @removeprealloc(ptr)

define void @call_things() {
  %m = alloca i32
  call i32 @f(ptr %m)
  call x86_thiscallcc i32 @g(ptr %m)
  call coldcc i32 @h(ptr %m)
  call i32 @j(ptr %m)
  %args = alloca inalloca i32
  call i32 @inalloca(ptr inalloca(i32) %args)
  %c = call token @llvm.call.preallocated.setup(i32 1)
  %N = call ptr @llvm.call.preallocated.arg(token %c, i32 0) preallocated(i32)
  call i32 @preallocated(ptr preallocated(i32) %N) ["preallocated"(token %c)]
  ret void
}

@llvm.used = appending global [4 x ptr] [
  ptr @f, ptr @g, ptr @h, ptr @j
], section "llvm.metadata"
```

command
```bash
"llc", file, "-O3","-filetype=obj",   "-mtriple=x86_64-unknown-linux-gnu", "-o", exe_before_opt + ".o"
```
error
```
llc: /home/runyu/projects/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:36165: virtual llvm::MachineBasicBlock* llvm::X86TargetLowering::EmitInstrWithCustomInserter(llvm::MachineInstr&, llvm::MachineBasicBlock*) const: Assertion `Subtarget.is32Bit() && "preallocated only used in 32-bit"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: llc /JawTitan/whitefox-data/starcoder/llvm-exe-result/trigger_test/no_source_with_specific_ir_prompt8/GlobalOptPass_oneshot_3/GlobalOptPass_oneshot_3_2.py.ll -O3 -filetype=obj -mtriple=x86_64-unknown-linux-gnu -o /home/runyu/projects/JIT-parser/bug_analysis/GlobalOptPass_oneshot_3_2.py_GlobalOptPass_oneshot_3_no_source_with_specific_ir_prompt8/exe_before_opt.o
1.	Running pass 'Function Pass Manager' on module '/JawTitan/whitefox-data/starcoder/llvm-exe-result/trigger_test/no_source_with_specific_ir_prompt8/GlobalOptPass_oneshot_3/GlobalOptPass_oneshot_3_2.py.ll'.
2.	Running pass 'Finalize ISel and expand pseudo-instructions' on function '@call_things'
 #0 0x00000000025875d8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/runyu/projects/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:22
 #1 0x0000000002587a1b PrintStackTraceSignalHandler(void*) /home/runyu/projects/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x000000000258519b llvm::sys::RunSignalHandlers() /home/runyu/projects/llvm-project/llvm/lib/Support/Signals.cpp:105:20
 #3 0x0000000002586fad SignalHandler(int) /home/runyu/projects/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007fe209894420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #5 0x00007fe20929100b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #6 0x00007fe209270859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
 #7 0x00007fe209270729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
 #8 0x00007fe209270729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
 #9 0x00007fe209281fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#10 0x0000000000ac6b29 llvm::X86TargetLowering::EmitInstrWithCustomInserter(llvm::MachineInstr&, llvm::MachineBasicBlock*) const /home/runyu/projects/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:36166:51
#11 0x0000000001343bc8 (anonymous namespace)::FinalizeISel::runOnMachineFunction(llvm::MachineFunction&) /home/runyu/projects/llvm-project/llvm/lib/CodeGen/FinalizeISel.cpp:60:69
#12 0x00000000014e0f79 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/runyu/projects/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:33
#13 0x0000000001c4620d llvm::FPPassManager::runOnFunction(llvm::Function&) /home/runyu/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1435:20
#14 0x0000000001c4646f llvm::FPPassManager::runOnModule(llvm::Module&) /home/runyu/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1481:13
#15 0x0000000001c46885 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/runyu/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1550:20
#16 0x0000000001c41b54 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/runyu/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:13
#17 0x0000000001c470af llvm::legacy::PassManager::run(llvm::Module&) /home/runyu/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1678:1
#18 0x00000000007d4eab compileModule(char**, llvm::LLVMContext&) /home/runyu/projects/llvm-project/llvm/tools/llc/llc.cpp:754:66
#19 0x00000000007d2872 main /home/runyu/projects/llvm-project/llvm/tools/llc/llc.cpp:416:35
#20 0x00007fe209272083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#21 0x00000000007d152e _start (/home/runyu/projects/llvm-project/build/bin/llc+0x7d152e)
```


_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to