mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
ba27a18628
This requires a couple backports from clang trunk: - one for https://github.com/llvm/llvm-project/issues/60109 - one to replace revert-llvmorg-15-init-17171-g8bb4451a651a.patch, which addresses the regression rather than reverting it. clang_include_cleaner.patch is also disabled in clang-tidy, as the patch doesn't apply anymore, and the check it adds is not enabled by default. Differential Revision: https://phabricator.services.mozilla.com/D173106
46 lines
1.9 KiB
Diff
46 lines
1.9 KiB
Diff
From 1b9fbc81ff15f6ad5a0e7f29c486c6edd0bce94c Mon Sep 17 00:00:00 2001
|
|
From: Mike Hommey <mh@glandium.org>
|
|
Date: Thu, 26 Jan 2023 21:28:09 +0100
|
|
Subject: [PATCH] [extract_symbols.py] Filter out more symbols for MSVC
|
|
|
|
This strips out about 5k symbols.
|
|
|
|
Fixes https://github.com/llvm/llvm-project/issues/60109
|
|
|
|
Reviewed By: john.brawn
|
|
|
|
Differential Revision: https://reviews.llvm.org/D142431
|
|
---
|
|
llvm/utils/extract_symbols.py | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/llvm/utils/extract_symbols.py b/llvm/utils/extract_symbols.py
|
|
index 0f8e8ba64c80..298ee6ba4eeb 100755
|
|
--- a/llvm/utils/extract_symbols.py
|
|
+++ b/llvm/utils/extract_symbols.py
|
|
@@ -141,7 +141,10 @@ def should_keep_microsoft_symbol(symbol, calling_convention_decoration):
|
|
# Remove calling convention decoration from names
|
|
match = re.match('[_@]([^@]+)', symbol)
|
|
if match:
|
|
- return match.group(1)
|
|
+ symbol = match.group(1)
|
|
+ # Discard floating point/SIMD constants.
|
|
+ if symbol.startswith(("__xmm@", "__ymm@", "__real@")):
|
|
+ return None
|
|
return symbol
|
|
# Function template instantiations start with ?$; keep the instantiations of
|
|
# clang::Type::getAs, as some of them are explipict specializations that are
|
|
@@ -165,6 +168,9 @@ def should_keep_microsoft_symbol(symbol, calling_convention_decoration):
|
|
# namespace doesn't exist outside of that translation unit.
|
|
elif re.search('\?A(0x\w+)?@', symbol):
|
|
return None
|
|
+ # Skip X86GenMnemonicTables functions, they are not exposed from llvm/include/.
|
|
+ elif re.match('\?is[A-Z0-9]*@X86@llvm', symbol):
|
|
+ return None
|
|
# Keep mangled llvm:: and clang:: function symbols. How we detect these is a
|
|
# bit of a mess and imprecise, but that avoids having to completely demangle
|
|
# the symbol name. The outermost namespace is at the end of the identifier
|
|
--
|
|
2.39.0.1.g6739ec1790
|
|
|