[clang] [flang] [llvm] [AArch64][Driver] Better handling of target feature dependencies (PR #78270)

David Spickett via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 17 05:55:24 PST 2024


================
@@ -308,6 +312,94 @@ inline constexpr ExtensionInfo Extensions[] = {
 };
 // clang-format on
 
+struct ExtensionSet {
+  // Set of extensions which are currently enabled.
+  ExtensionBitset Enabled;
+  // Set of extensions which have been enabled or disabled at any point. Used
+  // to avoid cluttering the cc1 command-line with lots of unneeded features.
+  ExtensionBitset Touched;
+  // Base architecture version, which we need to know because some feature
+  // dependencies change depending on this.
+  const ArchInfo *BaseArch;
+
+  ExtensionSet() : Enabled(), Touched(), BaseArch(nullptr) {}
+
+  // Enable the given architecture extension, and any other extensions it
+  // depends on.
----------------
DavidSpickett wrote:

Is it worth saying here whether it updates the base architecture version? I'm guessing that it does not.

https://github.com/llvm/llvm-project/pull/78270


More information about the cfe-commits mailing list