[PATCH] D155642: Unconditionally include intrinsic headers in MSVC mode

2023-07-18 Thread Alexander Neumann via Phabricator via cfe-commits
Neumann-A created this revision.
Herald added a project: All.
Neumann-A requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Even though there is a significant compile time overhead for all users being a 
true drop in replacement for cl requires including the intrinsic headers 
without a guard.

Github issues (there are probably more related):
https://github.com/llvm/llvm-project/issues/53520
https://github.com/llvm/llvm-project/issues/63492


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D155642

Files:
  clang/lib/Headers/bmiintrin.h
  clang/lib/Headers/immintrin.h
  clang/lib/Headers/keylockerintrin.h
  clang/lib/Headers/x86gprintrin.h
  clang/lib/Headers/x86intrin.h

Index: clang/lib/Headers/x86intrin.h
===
--- clang/lib/Headers/x86intrin.h
+++ clang/lib/Headers/x86intrin.h
@@ -14,52 +14,52 @@
 
 #include 
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__3dNOW__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__PRFCHW__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__SSE4A__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__FMA4__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__XOP__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__TBM__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__LWP__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__MWAITX__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__CLZERO__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__RDPRU__)
 #include 
 #endif
Index: clang/lib/Headers/x86gprintrin.h
===
--- clang/lib/Headers/x86gprintrin.h
+++ clang/lib/Headers/x86gprintrin.h
@@ -10,32 +10,32 @@
 #ifndef __X86GPRINTRIN_H
 #define __X86GPRINTRIN_H
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__HRESET__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__UINTR__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__CRC32__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__PRFCHI__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__RAOINT__)
 #include 
 #endif
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__CMPCCXADD__)
 #include 
 #endif
Index: clang/lib/Headers/keylockerintrin.h
===
--- clang/lib/Headers/keylockerintrin.h
+++ clang/lib/Headers/keylockerintrin.h
@@ -28,7 +28,7 @@
 #ifndef _KEYLOCKERINTRIN_H
 #define _KEYLOCKERINTRIN_H
 
-#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||  \
+#if defined(_MSC_VER) || !defined(__SCE__) || __has_feature(modules) ||  \
 defined(__KL__)
 
 /* Define the defau

[PATCH] D20291: [ms] Reintroduce feature guards in intrinsic headers in Microsoft mode

2023-07-12 Thread Alexander Neumann via Phabricator via cfe-commits
Neumann-A added a comment.
Herald added a project: All.

Should this be reverted due to:

https://github.com/llvm/llvm-project/issues/53520
https://github.com/llvm/llvm-project/issues/63492

I mean: yes faster compile is nice to have but having diverging behavior from 
MSVC seems like the wrong way to solve it.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D20291/new/

https://reviews.llvm.org/D20291

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits