Skip to content

Revert "[Support] Recycler: Enforce minimum allocation size" #121735

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

Conversation

optimisan
Copy link
Contributor

Reverts #121425

@optimisan optimisan merged commit b51a082 into main Jan 6, 2025
7 of 10 checks passed
@optimisan optimisan deleted the revert-121425-users/Akshat-Oke/01-01-_support_recycler_enforce_minimum_allocation_size branch January 6, 2025 08:20
@llvmbot
Copy link
Member

llvmbot commented Jan 6, 2025

@llvm/pr-subscribers-llvm-support

Author: Akshat Oke (optimisan)

Changes

Reverts llvm/llvm-project#121425


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

3 Files Affected:

  • (modified) llvm/include/llvm/Support/Recycler.h (-2)
  • (modified) llvm/unittests/Support/CMakeLists.txt (-1)
  • (removed) llvm/unittests/Support/RecyclerTest.cpp (-46)
diff --git a/llvm/include/llvm/Support/Recycler.h b/llvm/include/llvm/Support/Recycler.h
index 1b9ee2084148d0..bbd9ae321ae30c 100644
--- a/llvm/include/llvm/Support/Recycler.h
+++ b/llvm/include/llvm/Support/Recycler.h
@@ -85,8 +85,6 @@ class Recycler {
                   "Recycler allocation alignment is less than object align!");
     static_assert(sizeof(SubClass) <= Size,
                   "Recycler allocation size is less than object size!");
-    static_assert(Size >= sizeof(FreeNode) &&
-                  "Recycler size must be at least sizeof(FreeNode)");
     return FreeList ? reinterpret_cast<SubClass *>(pop_val())
                     : static_cast<SubClass *>(Allocator.Allocate(Size, Align));
   }
diff --git a/llvm/unittests/Support/CMakeLists.txt b/llvm/unittests/Support/CMakeLists.txt
index 6de81658264420..d64f89847aa8e7 100644
--- a/llvm/unittests/Support/CMakeLists.txt
+++ b/llvm/unittests/Support/CMakeLists.txt
@@ -69,7 +69,6 @@ add_llvm_unittest(SupportTests
   PerThreadBumpPtrAllocatorTest.cpp
   ProcessTest.cpp
   ProgramTest.cpp
-  RecyclerTest.cpp
   RegexTest.cpp
   ReverseIterationTest.cpp
   ReplaceFileTest.cpp
diff --git a/llvm/unittests/Support/RecyclerTest.cpp b/llvm/unittests/Support/RecyclerTest.cpp
deleted file mode 100644
index 8cd763c0b83f8a..00000000000000
--- a/llvm/unittests/Support/RecyclerTest.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===--- unittest/Support/RecyclerTest.cpp --------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/Recycler.h"
-#include "llvm/Support/AllocatorBase.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-namespace {
-
-struct Object1 {
-  char Data[1];
-};
-
-class DecoratedMallocAllocator : public MallocAllocator {
-public:
-  int DeallocCount = 0;
-
-  template <typename T> void Deallocate(T *Ptr) {
-    DeallocCount++;
-    MallocAllocator::Deallocate(Ptr);
-  }
-};
-
-TEST(RecyclerTest, RecycleAllocation) {
-  DecoratedMallocAllocator Allocator;
-  // Recycler needs size to be atleast 8 bytes.
-  Recycler<Object1, 8, 8> R;
-  Object1 *A1 = R.Allocate(Allocator);
-  Object1 *A2 = R.Allocate(Allocator);
-  R.Deallocate(Allocator, A2);
-  Object1 *A3 = R.Allocate(Allocator);
-  EXPECT_EQ(A2, A3); // reuse the deallocated object.
-  R.Deallocate(Allocator, A1);
-  R.Deallocate(Allocator, A3);
-  R.clear(Allocator); // Should deallocate A1 and A3.
-  EXPECT_EQ(Allocator.DeallocCount, 2);
-}
-
-} // end anonymous namespace

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jan 6, 2025

LLVM Buildbot has detected a new failure on builder lld-x86_64-win running on as-worker-93 while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/146/builds/2011

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM-Unit :: Support/./SupportTests.exe/38/87' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:C:\a\lld-x86_64-win\build\unittests\Support\.\SupportTests.exe-LLVM-Unit-16484-38-87.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=87 GTEST_SHARD_INDEX=38 C:\a\lld-x86_64-win\build\unittests\Support\.\SupportTests.exe
--

Script:
--
C:\a\lld-x86_64-win\build\unittests\Support\.\SupportTests.exe --gtest_filter=ProgramEnvTest.CreateProcessLongPath
--
C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp(160): error: Expected equality of these values:
  0
  RC
    Which is: -2

C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp(163): error: fs::remove(Twine(LongPath)): did not return errc::success.
error number: 13
error message: permission denied



C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp:160
Expected equality of these values:
  0
  RC
    Which is: -2

C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp:163
fs::remove(Twine(LongPath)): did not return errc::success.
error number: 13
error message: permission denied




********************


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants