<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libc/test/src/__support/block_test.cpp, branch users/nico/python-1</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[libc] Fix malloc riscv32 test failures from #117815</title>
<updated>2025-01-17T21:07:46+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2025-01-17T20:54:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5db28679da38bee65feb55b803a23aceee568f44'/>
<id>5db28679da38bee65feb55b803a23aceee568f44</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][libc] Add Block::PREV_FIELD_SIZE for use in tests</title>
<updated>2025-01-16T23:11:03+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2025-01-16T23:10:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=859b4f193861d837f382a7e27d37dc167d4cc07d'/>
<id>859b4f193861d837f382a7e27d37dc167d4cc07d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][libc] Remove Block::ALIGNMENT and Block::BLOCK_OVERHEAD</title>
<updated>2025-01-16T22:25:02+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2025-01-16T22:21:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cd92aedf1bb67f643fb9656ab8d28fc5eab05083'/>
<id>cd92aedf1bb67f643fb9656ab8d28fc5eab05083</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Fix malloc Block alignment issue on riscv32 (#117815)</title>
<updated>2025-01-16T19:56:46+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2025-01-16T19:56:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=60de7dc886b9d83b0e2b6c9d7b73173d5d870388'/>
<id>60de7dc886b9d83b0e2b6c9d7b73173d5d870388</id>
<content type='text'>
Aligning blocks to max_align_t is neither necessary nor sufficient to
ensure that the usable_space() is so aligned. Instead, we make this an
invariant of Block and maintain it in init() and split().

This allows targets like riscv32 with small pointers and large
max_align_t to maintain the property that all available blocks are
aligned for malloc(). This change adjusts the tests to match and also
updates them closer to llvm-libc style.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Aligning blocks to max_align_t is neither necessary nor sufficient to
ensure that the usable_space() is so aligned. Instead, we make this an
invariant of Block and maintain it in init() and split().

This allows targets like riscv32 with small pointers and large
max_align_t to maintain the property that all available blocks are
aligned for malloc(). This change adjusts the tests to match and also
updates them closer to llvm-libc style.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc][NFC] Remove template arguments from Block (#117386)</title>
<updated>2024-11-22T23:33:18+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2024-11-22T23:33:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d121d71fc7fcb8c969959147f5f58b31f9c6b251'/>
<id>d121d71fc7fcb8c969959147f5f58b31f9c6b251</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "[libc] Use best-fit binary trie to make malloc logarithmic (#117065)"</title>
<updated>2024-11-21T23:26:24+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2024-11-21T21:43:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=385961d7b23d5500d20954ad8137b27ecced2692'/>
<id>385961d7b23d5500d20954ad8137b27ecced2692</id>
<content type='text'>
This reverts commit 93b83642ee34d0092b94776728dad0117c2b72a1.

 - Correct riscv32 assumption about alignment (bit of a hack).
 - Fix test case where the largest_small and smallest sizes are the
   same.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 93b83642ee34d0092b94776728dad0117c2b72a1.

 - Correct riscv32 assumption about alignment (bit of a hack).
 - Fix test case where the largest_small and smallest sizes are the
   same.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[libc] Use best-fit binary trie to make malloc logarithmic (#117065)"</title>
<updated>2024-11-21T19:56:05+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2024-11-21T19:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=93b83642ee34d0092b94776728dad0117c2b72a1'/>
<id>93b83642ee34d0092b94776728dad0117c2b72a1</id>
<content type='text'>
This reverts commit b05600d96f46697e21f6b1b7ad901391326243a8.
riscv32 unit test still broken
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit b05600d96f46697e21f6b1b7ad901391326243a8.
riscv32 unit test still broken
</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "[libc] Use best-fit binary trie to make malloc logarithmic" (#117065)</title>
<updated>2024-11-21T19:30:51+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2024-11-20T22:05:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b05600d96f46697e21f6b1b7ad901391326243a8'/>
<id>b05600d96f46697e21f6b1b7ad901391326243a8</id>
<content type='text'>
 - Fix assertion expressions.
 - Fix incorrect small size in freestore_test.
 - There may only be one small size for high alignment and small
   pointers (riscv32).
 - Don't rely on stack alignment in FreeList test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 - Fix assertion expressions.
 - Fix incorrect small size in freestore_test.
 - There may only be one small size for high alignment and small
   pointers (riscv32).
 - Don't rely on stack alignment in FreeList test.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[libc] Use best-fit binary trie to make malloc logarithmic" (#117065)</title>
<updated>2024-11-20T22:00:07+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2024-11-20T22:00:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9be475af81ee36f1d360ad1d70b695c4b26c98fa'/>
<id>9be475af81ee36f1d360ad1d70b695c4b26c98fa</id>
<content type='text'>
Reverts llvm/llvm-project#106259

Unit tests break on AArch64.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#106259

Unit tests break on AArch64.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Use best-fit binary trie to make malloc logarithmic (#106259)</title>
<updated>2024-11-20T21:54:00+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2024-11-20T21:54:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c3207c31fce8afa4e5ae728804f18b4e863197e7'/>
<id>c3207c31fce8afa4e5ae728804f18b4e863197e7</id>
<content type='text'>
This reworks the free store implementation in libc's malloc to use a
dlmalloc-style binary trie of circularly linked FIFO free lists. This
data structure can be maintained in logarithmic time, but it still
permits a relatively small implementation compared to other
logarithmic-time ordered maps.

The implementation doesn't do the various bitwise tricks or
optimizations used in actual dlmalloc; it instead optimizes for
(relative) readability and minimum code size. Specific optimization can
be added as necessary given future profiling.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reworks the free store implementation in libc's malloc to use a
dlmalloc-style binary trie of circularly linked FIFO free lists. This
data structure can be maintained in logarithmic time, but it still
permits a relatively small implementation compared to other
logarithmic-time ordered maps.

The implementation doesn't do the various bitwise tricks or
optimizations used in actual dlmalloc; it instead optimizes for
(relative) readability and minimum code size. Specific optimization can
be added as necessary given future profiling.</pre>
</div>
</content>
</entry>
</feed>
