summaryrefslogtreecommitdiffstats
path: root/build/build-clang/llvmorg-17-init-237-g1b9fbc81ff15.patch
blob: 4283a1f17a9e30b179e4483abff52199f0ae3ce2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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