https://github.com/AaronBallman created https://github.com/llvm/llvm-project/pull/109161
Reverts llvm/llvm-project#108804 >From 4cabae1e59f75c9be5a1156cc785c93ece49c531 Mon Sep 17 00:00:00 2001 From: Aaron Ballman <aa...@aaronballman.com> Date: Wed, 18 Sep 2024 11:33:44 -0400 Subject: [PATCH] =?UTF-8?q?Revert=20"[clang]=20Increase=20VecLib=20bitfiel?= =?UTF-8?q?d=20size=20to=204=20bits=20in=20CodeGenOptions.def=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 475ceca859233b387c22f13ecef581158ef36346. --- clang/include/clang/Basic/CodeGenOptions.def | 14 ++-------- clang/unittests/CodeGen/AllLibrariesFit.cpp | 10 ------- .../CodeGen/EncodingDecodingTest.cpp | 17 ------------ .../CodeGen/SimulatedOverflowTest.cpp | 26 ------------------- 4 files changed, 2 insertions(+), 65 deletions(-) delete mode 100644 clang/unittests/CodeGen/AllLibrariesFit.cpp delete mode 100644 clang/unittests/CodeGen/EncodingDecodingTest.cpp delete mode 100644 clang/unittests/CodeGen/SimulatedOverflowTest.cpp 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!"; -} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits