| Issue |
115733
|
| Summary |
@llvm.experimental.stackmap intrinsic crashes when the second parameter (numShadowBytes) is a variable instead of a constant
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
DigOrDog
|
# Description
The llvm.experimental.stackmap intrinsic currently crashes when the numShadowBytes parameter is provided as a variable rather than a constant. According to the syntax, llvm.experimental.stackmap is expected to record the location of specified values in the stack map without generating code. However, when attempting to pass a variable as the second argument (numShadowBytes), the compiler fails, leading to a segmentation fault during the X86 DAG->DAG Instruction Selection pass.
Example code that triggers the crash:
```
@G = global i16 0
@G.1 = global i32 2147483647
define void @f(i32 %nelems) {
entry:
%B = sub i32 %nelems, 65536
%mem = alloca i32, i32 %nelems, align 4
call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 %B, ptr %mem)
ret void
}
; Function Attrs: nocallback nofree nosync willreturn
declare void @llvm.experimental.stackmap(i64, i32, ...) #0
attributes #0 = { nocallback nofree nosync willreturn }
```
https://godbolt.org/z/eM46jdv7r
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs