<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/MC/MachObjectWriter.cpp, branch users/nico/python-2</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>MCAsmBackend: Replace FKF_IsPCRel with isPCRel()</title>
<updated>2025-07-03T07:51:20+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-07-03T07:51:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b478c38c19f9e6ccc7ff2b6ede79a6e27ec20d19'/>
<id>b478c38c19f9e6ccc7ff2b6ede79a6e27ec20d19</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MC: Store fragment content and fixups out-of-line</title>
<updated>2025-07-01T07:21:12+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-07-01T07:21:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9beb467d9213fe2becdb0f1469d99ca058189ac7'/>
<id>9beb467d9213fe2becdb0f1469d99ca058189ac7</id>
<content type='text'>
Moved `Contents` and `Fixups` SmallVector storage to MCSection, enabling
trivial destructors for most fragment subclasses and eliminating the need
for MCFragment::destroy in ~MCSection.

For appending content to the current section, use
getContentsForAppending. During assembler relaxation, prefer
setContents/setFixups, which may involve copying and reduce the benefits
of https://reviews.llvm.org/D145791.

Moving only Contents out-of-line caused a slight performance regression
(Alexis Engelke's 2024 prototype). By also moving Fragments out-of-line,
fragment destructors become trivial, resulting in
neglgible instructions:u increase for "stage2-O0-g" and [large max-rss decrease](https://llvm-compile-time-tracker.com/compare.php?from=84e82746c3ff63ec23a8b85e9efd4f7fccf92590&amp;to=555a28c0b2f8250a9cf86fd267a04b0460283e15&amp;stat=max-rss&amp;linkStats=on)
for the "stage1-ReleaseLTO-g (link only)" benchmark.
(
An older version using fewer inline functions: https://llvm-compile-time-tracker.com/compare.php?from=bb982e733cfcda7e4cfb0583544f68af65211ed1&amp;to=f12d55f97c47717d438951ecddecf8ebd28c296b&amp;linkStats=on
)

Now using plain SmallVector in MCSection for storage, with potential for
future allocator optimizations, such as allocating `Contents` as the
trailing object of MCDataFragment. (GNU Assembler uses gnulib's obstack
for fragment management.)

Co-authored-by: Alexis Engelke &lt;engelke@in.tum.de&gt;

Pull Request: https://github.com/llvm/llvm-project/pull/146307
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Moved `Contents` and `Fixups` SmallVector storage to MCSection, enabling
trivial destructors for most fragment subclasses and eliminating the need
for MCFragment::destroy in ~MCSection.

For appending content to the current section, use
getContentsForAppending. During assembler relaxation, prefer
setContents/setFixups, which may involve copying and reduce the benefits
of https://reviews.llvm.org/D145791.

Moving only Contents out-of-line caused a slight performance regression
(Alexis Engelke's 2024 prototype). By also moving Fragments out-of-line,
fragment destructors become trivial, resulting in
neglgible instructions:u increase for "stage2-O0-g" and [large max-rss decrease](https://llvm-compile-time-tracker.com/compare.php?from=84e82746c3ff63ec23a8b85e9efd4f7fccf92590&amp;to=555a28c0b2f8250a9cf86fd267a04b0460283e15&amp;stat=max-rss&amp;linkStats=on)
for the "stage1-ReleaseLTO-g (link only)" benchmark.
(
An older version using fewer inline functions: https://llvm-compile-time-tracker.com/compare.php?from=bb982e733cfcda7e4cfb0583544f68af65211ed1&amp;to=f12d55f97c47717d438951ecddecf8ebd28c296b&amp;linkStats=on
)

Now using plain SmallVector in MCSection for storage, with potential for
future allocator optimizations, such as allocating `Contents` as the
trailing object of MCDataFragment. (GNU Assembler uses gnulib's obstack
for fragment management.)

Co-authored-by: Alexis Engelke &lt;engelke@in.tum.de&gt;

Pull Request: https://github.com/llvm/llvm-project/pull/146307
</pre>
</div>
</content>
</entry>
<entry>
<title>MC: Merge MCFragment.h into MCSection.h</title>
<updated>2025-06-30T16:41:53+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-06-30T16:41:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=04395be630781451682060548ea8b94abec2947e'/>
<id>04395be630781451682060548ea8b94abec2947e</id>
<content type='text'>
... due to their close relationship. MCSection's inline functions (e.g.
iterator) access MCFragment, and we want MCFragment's inline functions
to access MCSection similarly (#146307).

Pull Request: https://github.com/llvm/llvm-project/pull/146315
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... due to their close relationship. MCSection's inline functions (e.g.
iterator) access MCFragment, and we want MCFragment's inline functions
to access MCSection similarly (#146307).

Pull Request: https://github.com/llvm/llvm-project/pull/146315
</pre>
</div>
</content>
</entry>
<entry>
<title>MachObjectWriter: Simplify Asm.getContext().reportError</title>
<updated>2025-05-25T20:06:14+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-05-25T20:06:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=843e362318e884991e517a54446b4faeacdad789'/>
<id>843e362318e884991e517a54446b4faeacdad789</id>
<content type='text'>
Similar to b65760bc7fcdee8179bf1e57fce3786737528dd8 for ELF.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similar to b65760bc7fcdee8179bf1e57fce3786737528dd8 for ELF.
</pre>
</div>
</content>
</entry>
<entry>
<title>MachObjectWriter: Remove the MCAssembler argument from getSymbolAddress</title>
<updated>2025-05-25T19:38:08+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-05-25T19:38:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1193f62f7c19e4e0cc36ee5006fa27ec108dc466'/>
<id>1193f62f7c19e4e0cc36ee5006fa27ec108dc466</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MCObjectWriter: Remove the MCAssembler argument from writeObject</title>
<updated>2025-05-24T19:55:52+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-05-24T19:55:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7ff0cf6138f30db4f361a20eda7d18692337d351'/>
<id>7ff0cf6138f30db4f361a20eda7d18692337d351</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MC: Simplify recordRelocation</title>
<updated>2025-05-24T16:54:03+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-05-24T16:54:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e373f7a45297ce7ff4e75d8ae45145f4f22ecc46'/>
<id>e373f7a45297ce7ff4e75d8ae45145f4f22ecc46</id>
<content type='text'>
* Remove the MCAssembler * argument. Change subclasses to use MCAssembler *MCObjectWriter::Asm.
* Remove pure specifier and add an empty implementation
* Change MCFragment * to MCFragment &amp;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Remove the MCAssembler * argument. Change subclasses to use MCAssembler *MCObjectWriter::Asm.
* Remove pure specifier and add an empty implementation
* Change MCFragment * to MCFragment &amp;
</pre>
</div>
</content>
</entry>
<entry>
<title>MCObjectwriter: Add getContext and simplify code</title>
<updated>2025-05-24T16:26:30+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-05-24T16:26:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2849b1282e76062f2237f37714ce770e8e60b9c1'/>
<id>2849b1282e76062f2237f37714ce770e8e60b9c1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MCObjectwriter: Add member variable MCAssembler * and simplify code</title>
<updated>2025-05-24T07:11:32+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-05-24T07:11:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a8433b88fa40242a87e837187a730502026a3bdb'/>
<id>a8433b88fa40242a87e837187a730502026a3bdb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MCFixup: Make FixupKindInfo smaller and change getFixupKindInfo to return value</title>
<updated>2025-04-19T03:55:43+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-04-19T03:55:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c239acb5b6b80ddb3c6407ffc9e051f636ae41c1'/>
<id>c239acb5b6b80ddb3c6407ffc9e051f636ae41c1</id>
<content type='text'>
We will increase the use of raw relocation types and eliminate fixup
kinds that correspond to relocation types. The getFixupKindInfo
functions will return an rvalue instead. Let's update the return type
from a const reference to a value type.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We will increase the use of raw relocation types and eliminate fixup
kinds that correspond to relocation types. The getFixupKindInfo
functions will return an rvalue instead. Let's update the return type
from a const reference to a value type.
</pre>
</div>
</content>
</entry>
</feed>
