- Actually add patch...
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm14?expand=0&rev=7
This commit is contained in:
parent
65d4d69fab
commit
45602e73a0
41
llvm-rust-mangle-for-fastcall.patch
Normal file
41
llvm-rust-mangle-for-fastcall.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 54b909de682bfa4e3389b680b0916ab18c99952a Mon Sep 17 00:00:00 2001
|
||||
From: Amanieu d'Antras <amanieu@gmail.com>
|
||||
Date: Fri, 25 Feb 2022 22:06:47 +0000
|
||||
Subject: [PATCH] [Mangler] Mangle aliases to fastcall/vectorcall functions
|
||||
correctly
|
||||
|
||||
These aliases are produced by MergeFunctions and need to be mangled according to the calling convention of the function they are pointing to instead of defaulting to the C calling convention.
|
||||
|
||||
Reviewed By: rnk
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D120382
|
||||
---
|
||||
llvm/lib/IR/Mangler.cpp | 2 +-
|
||||
llvm/test/CodeGen/X86/fastcall-correct-mangling.ll | 4 ++++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/lib/IR/Mangler.cpp b/llvm/lib/IR/Mangler.cpp
|
||||
index 2399ea27ee9d4..b8e3e40e4c1d5 100644
|
||||
--- a/llvm/lib/IR/Mangler.cpp
|
||||
+++ b/llvm/lib/IR/Mangler.cpp
|
||||
@@ -144,7 +144,7 @@ void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV,
|
||||
|
||||
// Mangle functions with Microsoft calling conventions specially. Only do
|
||||
// this mangling for x86_64 vectorcall and 32-bit x86.
|
||||
- const Function *MSFunc = dyn_cast<Function>(GV);
|
||||
+ const Function *MSFunc = dyn_cast_or_null<Function>(GV->getAliaseeObject());
|
||||
|
||||
// Don't add byte count suffixes when '\01' or '?' are in the first
|
||||
// character.
|
||||
diff --git a/llvm/test/CodeGen/X86/fastcall-correct-mangling.ll b/llvm/test/CodeGen/X86/fastcall-correct-mangling.ll
|
||||
index 00dc44e75e8f5..dd8ce0f0ef505 100644
|
||||
--- a/llvm/test/CodeGen/X86/fastcall-correct-mangling.ll
|
||||
+++ b/llvm/test/CodeGen/X86/fastcall-correct-mangling.ll
|
||||
@@ -31,3 +31,7 @@ define private x86_fastcallcc void @dontCrash() {
|
||||
; CHECK64-LABEL: {{^}}.LdontCrash:
|
||||
ret void
|
||||
}
|
||||
+
|
||||
+@alias = alias void(i64, i8, i8, i16), void(i64, i8, i8, i16)* @func
|
||||
+; CHECK32-LABEL: {{^}}.set @alias@20, @func@20
|
||||
+; CHECK64-LABEL: {{^}}.set alias, func
|
Loading…
x
Reference in New Issue
Block a user