| // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -msave-reg-params -fclangir -emit-cir %s -o %t.cir |
| // RUN: FileCheck --input-file=%t.cir %s -check-prefix=CIR |
| // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -msave-reg-params -fclangir -emit-llvm %s -o %t.ll |
| // RUN: FileCheck --input-file=%t.ll %s -check-prefix=LLVM |
| // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -msave-reg-params -emit-llvm %s -o %t.ll |
| // RUN: FileCheck --input-file=%t.ll %s -check-prefix=LLVM |
| |
| extern "C" { |
| |
| __attribute__((hot)) |
| void func(){} |
| // CIR: cir.func{{.*}}@func() |
| // CIR-SAME: save_reg_params |
| // LLVM: define{{.*}}@func() #[[FUNC_ATTRS:.*]] { |
| |
| void caller() { |
| func(); |
| // CIR: cir.call{{.*}}@func() |
| // CIR-NOT: save_reg_params |
| // CIR: cir.return |
| // LLVM: call void{{.*}}@func() #[[CALL_ATTRS:.*]] |
| |
| } |
| } |
| |
| // LLVM: attributes #[[FUNC_ATTRS]] |
| // LLVM-SAME: "save-reg-params" |
| // LLVM: attributes #[[CALL_ATTRS]] |
| // LLVM-NOT: "save-reg-params" |