[all-commits] [llvm/llvm-project] b47a63: [libc] Implement dual freestore rotation for barem...

Schrodinger ZHU Yifan via All-commits all-commits at lists.llvm.org
Tue Sep 22 18:55:35 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b47a631eeaff515d63232ba5b69f7206ea9ca718
      https://github.com/llvm/llvm-project/commit/b47a631eeaff515d63232ba5b69f7206ea9ca718
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2026-09-22 (Tue, 22 Sep 2026)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/config/config.json
    M libc/fuzzing/__support/CMakeLists.txt
    M libc/src/__support/CMakeLists.txt
    M libc/src/__support/block.h
    M libc/src/__support/freelist_heap.h
    M libc/src/__support/freestore.h
    M libc/src/__support/freetrie.cpp
    M libc/src/__support/freetrie.h
    M libc/src/__support/tlsf_table.h
    M libc/test/src/__support/CMakeLists.txt
    M libc/test/src/__support/freelist_heap_test.cpp

  Log Message:
  -----------
  [libc] Implement dual freestore rotation for baremetal heap (#209811)

Implement dual FreeStore rotation in FreeListHeap under
LIBC_COPT_BAREMETAL_HEAP_ENABLE_FREESTORE_ROTATION option for baremetal
targets.

- Allocations pull from active store; free() quarantines blocks into
non-active store (1 - active).
- On allocation failure in active store, rotate() flips active index and
migrates/coalesces quarantined blocks into the new active store.
- Added 2-bit prev_free tracking in BlockRef metadata to distinguish
freestore indices.
- Added unit smoke tests and updated fuzzer for dual freestore rotation.

Assisted-by: Gemini and Claude based automation tool (human-in-the-loop)

---------

Co-authored-by: Yifan Zhu <yfzhu at google.com>
Co-authored-by: Claude Fable 5.1 <noreply at anthropic.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list