<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libc/src/stdlib/freelist_malloc.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] Breakup freelist_malloc into separate files (#119806)</title>
<updated>2024-12-16T18:30:27+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2024-12-16T18:30:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7bf3137c39a61283ebcb58793e830f8b768b74e7'/>
<id>7bf3137c39a61283ebcb58793e830f8b768b74e7</id>
<content type='text'>
This better matches the structure we use for the rest of libc.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This better matches the structure we use for the rest of libc.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[libc] Breakup freelist_malloc into separate files" (#119749)</title>
<updated>2024-12-12T21:28:30+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2024-12-12T21:28:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=379cc44f56e6f220422ce85d2295833f849086e0'/>
<id>379cc44f56e6f220422ce85d2295833f849086e0</id>
<content type='text'>
Reverts llvm/llvm-project#98784 which broke libc builders.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#98784 which broke libc builders.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Breakup freelist_malloc into separate files (#98784)</title>
<updated>2024-12-12T19:24:36+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2024-12-12T19:24:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4e2a9e50f6dd6760b12838517c7f85a0c9032921'/>
<id>4e2a9e50f6dd6760b12838517c7f85a0c9032921</id>
<content type='text'>
This better matches the structure we use for the rest of libc.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This better matches the structure we use for the rest of libc.</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>
<entry>
<title>[libc] Lazily initialize freelist malloc using symbols (#99254)</title>
<updated>2024-07-25T20:38:06+00:00</updated>
<author>
<name>Daniel Thornburgh</name>
<email>dthorn@google.com</email>
</author>
<published>2024-07-25T20:38:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0c10bdc05f0f90ae173f29854f03796e92ed76e4'/>
<id>0c10bdc05f0f90ae173f29854f03796e92ed76e4</id>
<content type='text'>
This requires the user to set the upper bounds of the heap by defining
the symbol `__libc_heap_limit`. The heap begins at `_end` and ends
`__libc_heap_limit` bytes afterwards. This prevents a completely unused
heap from requiring any space, and it prevents the heap from being
zeroed at initialization time as part of BSS. It also allows users to
customize the available heap location without recompiling libc.
    
I'd think this should eventually be replaced with an implemenation based
on a morecore() library. This would allow the same implementation to use
sbrk() on POSIX, `_end` and `__libc_heap_limit` on embedded, and a
buffer in tests. It would also provide better "wilderness" behavior that
tends to decrease heap fragementation (see Wilson et al.)

See #98096</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This requires the user to set the upper bounds of the heap by defining
the symbol `__libc_heap_limit`. The heap begins at `_end` and ends
`__libc_heap_limit` bytes afterwards. This prevents a completely unused
heap from requiring any space, and it prevents the heap from being
zeroed at initialization time as part of BSS. It also allows users to
customize the available heap location without recompiling libc.
    
I'd think this should eventually be replaced with an implemenation based
on a morecore() library. This would allow the same implementation to use
sbrk() on POSIX, `_end` and `__libc_heap_limit` on embedded, and a
buffer in tests. It would also provide better "wilderness" behavior that
tends to decrease heap fragementation (see Wilson et al.)

See #98096</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98597)</title>
<updated>2024-07-12T16:28:41+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2024-07-12T16:28:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5ff3ff33ff930e4ec49da7910612d8a41eb068cb'/>
<id>5ff3ff33ff930e4ec49da7910612d8a41eb068cb</id>
<content type='text'>
This is a part of #97655.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a part of #97655.</pre>
</div>
</content>
</entry>
</feed>
