Rollup merge of #129468 - Rajveer100:hack-to-avoid-function-merging, r=Mark-Simulacrum
[testsuite][cleanup] Remove all usages of `dont_merge` hack to avoid function merging Resolves #129438 The `-Zmerge-functions=disabled` compile flag exists for this purpose.
This commit is contained in:
commit
adcee23a95
@ -1,6 +1,7 @@
|
||||
//@ assembly-output: emit-asm
|
||||
//@ compile-flags: -O -C panic=abort
|
||||
//@ compile-flags: --target aarch64-unknown-linux-gnu
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
//@ needs-llvm-components: aarch64
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs)]
|
||||
@ -29,12 +30,6 @@ macro_rules! check {
|
||||
// -O and extern "C" guarantee that the selected register is always r0/s0/d0/q0
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn $func() -> i32 {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!($code, out($reg) y);
|
||||
y
|
||||
|
@ -4,6 +4,7 @@
|
||||
//@ [aarch64] needs-llvm-components: aarch64
|
||||
//@ [arm64ec] compile-flags: --target arm64ec-pc-windows-msvc
|
||||
//@ [arm64ec] needs-llvm-components: aarch64
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch, f16, f128)]
|
||||
#![crate_type = "rlib"]
|
||||
@ -132,12 +133,6 @@ macro_rules! check {
|
||||
// LLVM issue: <https://github.com/llvm/llvm-project/issues/94434>
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(inp: &$ty, out: &mut $ty) {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let x = *inp;
|
||||
let y;
|
||||
asm!(
|
||||
@ -155,12 +150,6 @@ macro_rules! check_reg {
|
||||
// FIXME(f16_f128): See FIXME in `check!`
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(inp: &$ty, out: &mut $ty) {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let x = *inp;
|
||||
let y;
|
||||
asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
|
||||
|
@ -2,6 +2,7 @@
|
||||
//@ compile-flags: -O -C panic=abort
|
||||
//@ compile-flags: --target armv7-unknown-linux-gnueabihf
|
||||
//@ compile-flags: -C target-feature=+neon
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
//@ needs-llvm-components: arm
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, repr_simd)]
|
||||
@ -40,12 +41,6 @@ macro_rules! check {
|
||||
// -O and extern "C" guarantee that the selected register is always r0/s0/d0/q0
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn $func() -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " {0:", $modifier, "}, {0:", $modifier, "}"), out($reg) y);
|
||||
y
|
||||
|
@ -2,6 +2,7 @@
|
||||
//@ assembly-output: emit-asm
|
||||
//@ compile-flags: --target armv7-unknown-linux-gnueabihf
|
||||
//@ compile-flags: -C opt-level=0
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
//@[d32] compile-flags: -C target-feature=+d32
|
||||
//@[neon] compile-flags: -C target-feature=+neon --cfg d32
|
||||
//@[neon] filecheck-flags: --check-prefix d32
|
||||
@ -114,12 +115,6 @@ macro_rules! check {
|
||||
($func:ident $ty:ident $class:ident $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " {}, {}"), out($class) y, in($class) x);
|
||||
y
|
||||
@ -131,12 +126,6 @@ macro_rules! check_reg {
|
||||
($func:ident $ty:ident $reg:tt $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
|
||||
y
|
||||
|
@ -1,5 +1,6 @@
|
||||
//@ assembly-output: emit-asm
|
||||
//@ compile-flags: --target hexagon-unknown-linux-musl
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
//@ needs-llvm-components: hexagon
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
|
||||
@ -41,12 +42,6 @@ macro_rules! check {
|
||||
($func:ident $ty:ident $class:ident) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!("{} = {}", out($class) y, in($class) x);
|
||||
y
|
||||
@ -58,12 +53,6 @@ macro_rules! check_reg {
|
||||
($func:ident $ty:ident $reg:tt) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($reg, " = ", $reg), lateout($reg) y, in($reg) x);
|
||||
y
|
||||
@ -77,12 +66,6 @@ pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// CHECK: InlineAsm End
|
||||
#[no_mangle]
|
||||
pub unsafe fn sym_static() {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
asm!("r0 = #{}", sym extern_static);
|
||||
}
|
||||
|
||||
@ -92,12 +75,6 @@ pub unsafe fn sym_static() {
|
||||
// CHECK: InlineAsm End
|
||||
#[no_mangle]
|
||||
pub unsafe fn sym_fn() {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
asm!("r0 = #{}", sym extern_func);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
//@ assembly-output: emit-asm
|
||||
//@ compile-flags: --target loongarch64-unknown-linux-gnu
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
//@ needs-llvm-components: loongarch
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
|
||||
@ -39,11 +40,6 @@ impl Copy for ptr {}
|
||||
static extern_static: u8;
|
||||
}
|
||||
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
|
||||
// CHECK-LABEL: sym_fn:
|
||||
// CHECK: #APP
|
||||
// CHECK: pcalau12i $t0, %got_pc_hi20(extern_func)
|
||||
@ -67,8 +63,6 @@ pub unsafe fn sym_static() {
|
||||
macro_rules! check { ($func:ident, $ty:ty, $class:ident, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov," {}, {}"), out($class) y, in($class) x);
|
||||
y
|
||||
@ -78,8 +72,6 @@ pub unsafe fn $func(x: $ty) -> $ty {
|
||||
macro_rules! check_reg { ($func:ident, $ty:ty, $reg:tt, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
|
||||
y
|
||||
|
@ -4,6 +4,7 @@
|
||||
//@[mips32] needs-llvm-components: mips
|
||||
//@[mips64] compile-flags: --target mips64-unknown-linux-gnuabi64
|
||||
//@[mips64] needs-llvm-components: mips
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
|
||||
#![crate_type = "rlib"]
|
||||
@ -43,16 +44,9 @@ impl Copy for ptr {}
|
||||
static extern_static: u8;
|
||||
}
|
||||
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
|
||||
macro_rules! check { ($func:ident, $ty:ty, $class:ident, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov," {}, {}"), out($class) y, in($class) x);
|
||||
y
|
||||
@ -62,8 +56,6 @@ pub unsafe fn $func(x: $ty) -> $ty {
|
||||
macro_rules! check_reg { ($func:ident, $ty:ty, $reg:tt, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
|
||||
y
|
||||
|
@ -4,6 +4,7 @@
|
||||
//@[powerpc] needs-llvm-components: powerpc
|
||||
//@[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu
|
||||
//@[powerpc64] needs-llvm-components: powerpc
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
|
||||
#![crate_type = "rlib"]
|
||||
@ -43,16 +44,9 @@ impl Copy for ptr {}
|
||||
static extern_static: u8;
|
||||
}
|
||||
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
|
||||
macro_rules! check { ($func:ident, $ty:ty, $class:ident, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov," {}, {}"), out($class) y, in($class) x);
|
||||
y
|
||||
@ -62,8 +56,6 @@ pub unsafe fn $func(x: $ty) -> $ty {
|
||||
macro_rules! check_reg { ($func:ident, $ty:ty, $rego:tt, $regc:tt, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " ", $rego, ", ", $rego), lateout($regc) y, in($regc) x);
|
||||
y
|
||||
|
@ -27,6 +27,7 @@
|
||||
//@[riscv32-zfh] filecheck-flags: --check-prefix zfhmin
|
||||
|
||||
//@ compile-flags: -C target-feature=+d
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, f16)]
|
||||
#![crate_type = "rlib"]
|
||||
@ -90,12 +91,6 @@ macro_rules! check {
|
||||
($func:ident $ty:ident $class:ident $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " {}, {}"), out($class) y, in($class) x);
|
||||
y
|
||||
@ -107,12 +102,6 @@ macro_rules! check_reg {
|
||||
($func:ident $ty:ident $reg:tt $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
|
||||
y
|
||||
|
@ -2,6 +2,7 @@
|
||||
//@ assembly-output: emit-asm
|
||||
//@[s390x] compile-flags: --target s390x-unknown-linux-gnu
|
||||
//@[s390x] needs-llvm-components: systemz
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
|
||||
#![crate_type = "rlib"]
|
||||
@ -42,16 +43,9 @@ impl Copy for ptr {}
|
||||
static extern_static: u8;
|
||||
}
|
||||
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
|
||||
macro_rules! check { ($func:ident, $ty:ty, $class:ident, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov," {}, {}"), out($class) y, in($class) x);
|
||||
y
|
||||
@ -61,8 +55,6 @@ pub unsafe fn $func(x: $ty) -> $ty {
|
||||
macro_rules! check_reg { ($func:ident, $ty:ty, $reg:tt, $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " %", $reg, ", %", $reg), lateout($reg) y, in($reg) x);
|
||||
y
|
||||
|
@ -7,6 +7,7 @@
|
||||
//@[i686] needs-llvm-components: x86
|
||||
//@ compile-flags: -C llvm-args=--x86-asm-syntax=intel
|
||||
//@ compile-flags: -C target-feature=+avx512bw
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs)]
|
||||
#![crate_type = "rlib"]
|
||||
@ -38,12 +39,6 @@ macro_rules! check {
|
||||
// -O and extern "C" guarantee that the selected register is always ax/xmm0
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn $func() -> i32 {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " {0:", $modifier, "}, {0:", $modifier, "}"), out($reg) y);
|
||||
y
|
||||
|
@ -6,6 +6,7 @@
|
||||
//@[i686] needs-llvm-components: x86
|
||||
//@ compile-flags: -C llvm-args=--x86-asm-syntax=intel
|
||||
//@ compile-flags: -C target-feature=+avx512bw
|
||||
//@ compile-flags: -Zmerge-functions=disabled
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs, repr_simd, f16, f128)]
|
||||
#![crate_type = "rlib"]
|
||||
@ -283,12 +284,6 @@ macro_rules! check {
|
||||
($func:ident $ty:ident $class:ident $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " {}, {}"), lateout($class) y, in($class) x);
|
||||
y
|
||||
@ -300,12 +295,6 @@ macro_rules! check_reg {
|
||||
($func:ident $ty:ident $reg:tt $mov:literal) => {
|
||||
#[no_mangle]
|
||||
pub unsafe fn $func(x: $ty) -> $ty {
|
||||
// Hack to avoid function merging
|
||||
extern "Rust" {
|
||||
fn dont_merge(s: &str);
|
||||
}
|
||||
dont_merge(stringify!($func));
|
||||
|
||||
let y;
|
||||
asm!(concat!($mov, " ", $reg, ", ", $reg), lateout($reg) y, in($reg) x);
|
||||
y
|
||||
|
Loading…
Reference in New Issue
Block a user