mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
4c16866a59
Currently the backend special cases x86_intrcc and treats the first parameter as byval. Make the IR require byval for this parameter to remove this special case, and avoid the dependence on the pointee element type. Fixes bug 46672. I'm not sure the IR is enforcing all the calling convention constraints. clang seems to ignore the attribute for empty parameter lists, but the IR tolerates it.
12 lines
527 B
Plaintext
12 lines
527 B
Plaintext
RUN: llvm-dis %p/Inputs/x86_intrcc_upgrade.bc -o - | FileCheck %s
|
|
|
|
Make sure we upgrade x86_intrcc to a byval with explicit type
|
|
|
|
CHECK: define x86_intrcc void @no_args() {
|
|
CHECK: define x86_intrcc void @non_byval_ptr_arg0(i32* byval(i32) %0)
|
|
CHECK: define x86_intrcc void @non_byval_ptr_struct(%struct* byval(%struct) %0)
|
|
|
|
CHECK: declare x86_intrcc void @no_args_decl()
|
|
CHECK: declare x86_intrcc void @non_byval_ptr_arg0_decl(i32* byval(i32))
|
|
CHECK: declare x86_intrcc void @non_byval_ptr_struct_decl(%struct* byval(%struct))
|