Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "[clang] Increase VecLib bitfield size to 4 bits in CodeGenOptions.def" #109161

Merged
merged 1 commit into from
Sep 18, 2024

Conversation

AaronBallman
Copy link
Collaborator

Reverts #108804

@llvmbot llvmbot added clang Clang issues not falling into any other category clang:frontend Language frontend issues, e.g. anything involving "Sema" labels Sep 18, 2024
@AaronBallman AaronBallman merged commit 3f0dfab into main Sep 18, 2024
6 of 9 checks passed
@AaronBallman AaronBallman deleted the revert-108804-MainakSil-patch-1 branch September 18, 2024 15:34
@llvmbot
Copy link
Member

llvmbot commented Sep 18, 2024

@llvm/pr-subscribers-clang

Author: Aaron Ballman (AaronBallman)

Changes

Reverts llvm/llvm-project#108804


Full diff: https://github.com/llvm/llvm-project/pull/109161.diff

4 Files Affected:

  • (modified) clang/include/clang/Basic/CodeGenOptions.def (+2-12)
  • (removed) clang/unittests/CodeGen/AllLibrariesFit.cpp (-10)
  • (removed) clang/unittests/CodeGen/EncodingDecodingTest.cpp (-17)
  • (removed) clang/unittests/CodeGen/SimulatedOverflowTest.cpp (-26)
diff --git a/clang/include/clang/Basic/CodeGenOptions.def b/clang/include/clang/Basic/CodeGenOptions.def
index b78ae61e6509ea..b600198998d85b 100644
--- a/clang/include/clang/Basic/CodeGenOptions.def
+++ b/clang/include/clang/Basic/CodeGenOptions.def
@@ -375,18 +375,8 @@ ENUM_CODEGENOPT(Inlining, InliningMethod, 2, NormalInlining)
 /// The maximum stack size a function can have to be considered for inlining.
 VALUE_CODEGENOPT(InlineMaxStackSize, 32, UINT_MAX)
 
-// Define the number of bits required for the VecLib enum
-#define VECLIB_BIT_COUNT (llvm::countPopulation(llvm::driver::VectorLibrary::MaxLibrary))
-
-// Ensure the VecLib bitfield has enough space for future vector libraries.
-// The number of bits is determined automatically based on the number of enum values.
-static_assert(static_cast<size_t>(llvm::driver::VectorLibrary::MaxLibrary) <= (1 << VECLIB_BIT_COUNT),
-              "VecLib bitfield size is too small to accommodate all vector libraries.");
-              
-// VecLib definition in CodeGenOptions.def
-ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, VECLIB_BIT_COUNT, llvm::driver::VectorLibrary::NoLibrary)
-
-#undef VECLIB_BIT_COUNT
+// Vector functions library to use.
+ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, llvm::driver::VectorLibrary::NoLibrary)
 
 /// The default TLS model to use.
 ENUM_CODEGENOPT(DefaultTLSModel, TLSModel, 2, GeneralDynamicTLSModel)
diff --git a/clang/unittests/CodeGen/AllLibrariesFit.cpp b/clang/unittests/CodeGen/AllLibrariesFit.cpp
deleted file mode 100644
index dfe63b557729ee..00000000000000
--- a/clang/unittests/CodeGen/AllLibrariesFit.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "clang/Basic/CodeGenOptions.h"
-#include "llvm/Driver/Options.h"
-#include "gtest/gtest.h"
-
-TEST(VecLibBitfieldTest, AllLibrariesFit) {
-  // We expect that all vector libraries fit in the bitfield size
-  EXPECT_LE(static_cast<size_t>(llvm::driver::VectorLibrary::MaxLibrary),
-            (1 << VECLIB_BIT_COUNT))
-      << "VecLib bitfield size is too small!";
- }
diff --git a/clang/unittests/CodeGen/EncodingDecodingTest.cpp b/clang/unittests/CodeGen/EncodingDecodingTest.cpp
deleted file mode 100644
index 67c89ef07c428b..00000000000000
--- a/clang/unittests/CodeGen/EncodingDecodingTest.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-TEST(VecLibBitfieldTest, EncodingDecodingTest) {
-  clang::CodeGenOptions Opts;
-
-  // Test encoding and decoding for each vector library
-  for (int i = static_cast<int>(llvm::driver::VectorLibrary::Accelerate);
-       i <= static_cast<int>(llvm::driver::VectorLibrary::MaxLibrary); ++i) {
-
-    Opts.VecLib = static_cast<llvm::driver::VectorLibrary>(i);
-
-    // Encode and then decode
-    llvm::driver::VectorLibrary decodedValue =
-        static_cast<llvm::driver::VectorLibrary>(Opts.VecLib);
-
-    EXPECT_EQ(decodedValue, Opts.VecLib)
-        << "Encoding/Decoding failed for vector library " << i;
-  }
-}
diff --git a/clang/unittests/CodeGen/SimulatedOverflowTest.cpp b/clang/unittests/CodeGen/SimulatedOverflowTest.cpp
deleted file mode 100644
index acfeaf7498b6d0..00000000000000
--- a/clang/unittests/CodeGen/SimulatedOverflowTest.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// Simulate the addition of a new library without increasing the bitfield size
-enum class SimulatedVectorLibrary {
-  Accelerate = 0,
-  LIBMVEC,
-  MASSV,
-  SVML,
-  SLEEF,
-  Darwin_libsystem_m,
-  ArmPL,
-  AMDLIBM,
-  NoLibrary,
-  // Simulate new addition
-  NewLibrary,
-  MaxLibrary
-};
-
-#define SIMULATED_VECLIB_BIT_COUNT                                             \
-  4 // The current bitfield size (should be 4 for 9 options)
-
-TEST(VecLibBitfieldTest, SimulatedOverflowTest) {
-  // Simulate the addition of a new library and check if the bitfield size is
-  // sufficient
-  EXPECT_LE(static_cast<size_t>(SimulatedVectorLibrary::MaxLibrary),
-            (1 << SIMULATED_VECLIB_BIT_COUNT))
-      << "Simulated VecLib bitfield size overflow!";
-}

tmsri pushed a commit to tmsri/llvm-project that referenced this pull request Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:frontend Language frontend issues, e.g. anything involving "Sema" clang Clang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants