<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Linker/LinkModules.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>[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)</title>
<updated>2024-06-28T06:36:49+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-06-28T06:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9df71d7673b5c98e1032d01be83724a45b42fafc'/>
<id>9df71d7673b5c98e1032d01be83724a45b42fafc</id>
<content type='text'>
Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, replacing the
current `getParent()-&gt;getDataLayout()` pattern.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, replacing the
current `getParent()-&gt;getDataLayout()` pattern.</pre>
</div>
</content>
</entry>
<entry>
<title>[Linker] Do not keep a private member of a non-prevailing comdat group (#69143)</title>
<updated>2023-10-28T18:04:24+00:00</updated>
<author>
<name>Igor Kudrin</name>
<email>ikudrin@accesssoftek.com</email>
</author>
<published>2023-10-28T18:04:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b1554fe080e8b074a30f2a4cb88666bdb7b1ce9e'/>
<id>b1554fe080e8b074a30f2a4cb88666bdb7b1ce9e</id>
<content type='text'>
`IRMover` links in referenced private global values unconditionally, see
`IRLinker::shouldLink()`. If they are part of a non-prevailing comdat,
this leads to duplication of the values. Full and Thin LTO avoid
duplication by changing the linkage of members of non-prevailing comdat
groups to `available_externally`, which was implemented in
https://reviews.llvm.org/D34803 and https://reviews.llvm.org/D135427.
This patch does the same for `Linker`, but limits the effect only to
private members without aliases to minimize interference.

Motivation example:
```
&gt; cat foo.h
inline int foo(int a) { return a + 1; }
&gt; cat bar.cpp
#include "foo.h"
int bar(int a) { return foo(a + 1); }
&gt; cat main.cpp
#include "foo.h"
int bar(int a);
int main(int argc, const char* argv[]) { return bar(argc) + foo(argc); }
&gt; clang++ -c -flto -fprofile-instr-generate main.cpp -o main.o
&gt; clang++ -c -flto -fprofile-instr-generate bar.cpp -o bar.o
&gt; clang++ -fuse-ld=lld -fprofile-instr-generate main.o bar.o -o test1
&gt; ./test1
&gt; llvm-profdata merge --text default.profraw -o -
_Z3fooi
# Counter Values:
2
&gt; llvm-link main.o bar.o -o combined.o
&gt; clang++ -fuse-ld=lld -fprofile-instr-generate combined.o -o test2
&gt; ./test2
&gt; llvm-profdata merge --text default.profraw -o -
_Z3fooi
# Counter Values:
4
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`IRMover` links in referenced private global values unconditionally, see
`IRLinker::shouldLink()`. If they are part of a non-prevailing comdat,
this leads to duplication of the values. Full and Thin LTO avoid
duplication by changing the linkage of members of non-prevailing comdat
groups to `available_externally`, which was implemented in
https://reviews.llvm.org/D34803 and https://reviews.llvm.org/D135427.
This patch does the same for `Linker`, but limits the effect only to
private members without aliases to minimize interference.

Motivation example:
```
&gt; cat foo.h
inline int foo(int a) { return a + 1; }
&gt; cat bar.cpp
#include "foo.h"
int bar(int a) { return foo(a + 1); }
&gt; cat main.cpp
#include "foo.h"
int bar(int a);
int main(int argc, const char* argv[]) { return bar(argc) + foo(argc); }
&gt; clang++ -c -flto -fprofile-instr-generate main.cpp -o main.o
&gt; clang++ -c -flto -fprofile-instr-generate bar.cpp -o bar.o
&gt; clang++ -fuse-ld=lld -fprofile-instr-generate main.o bar.o -o test1
&gt; ./test1
&gt; llvm-profdata merge --text default.profraw -o -
_Z3fooi
# Counter Values:
2
&gt; llvm-link main.o bar.o -o combined.o
&gt; clang++ -fuse-ld=lld -fprofile-instr-generate combined.o -o test2
&gt; ./test2
&gt; llvm-profdata merge --text default.profraw -o -
_Z3fooi
# Counter Values:
4
```</pre>
</div>
</content>
</entry>
<entry>
<title>[rereland][Alignment][NFC] Remove access to deprecated GlobalObject::getAlignment from llvm</title>
<updated>2022-12-13T12:23:30+00:00</updated>
<author>
<name>Guillaume Chatelet</name>
<email>gchatelet@google.com</email>
</author>
<published>2022-12-13T10:31:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=43024b4ce47c7e4685a81b1f3fca2421be809579'/>
<id>43024b4ce47c7e4685a81b1f3fca2421be809579</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D139836
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D139836
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[reland][Alignment][NFC] Remove access to deprecated GlobalObject::getAlignment from llvm"</title>
<updated>2022-12-12T21:18:15+00:00</updated>
<author>
<name>Guillaume Chatelet</name>
<email>gchatelet@google.com</email>
</author>
<published>2022-12-12T21:18:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6fe6d8d329fceedf70e942eb445673f93210b203'/>
<id>6fe6d8d329fceedf70e942eb445673f93210b203</id>
<content type='text'>
This reverts commit 3bbfaee23d41c099547c652f87b252ab6e1f6c46.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 3bbfaee23d41c099547c652f87b252ab6e1f6c46.
</pre>
</div>
</content>
</entry>
<entry>
<title>[reland][Alignment][NFC] Remove access to deprecated GlobalObject::getAlignment from llvm</title>
<updated>2022-12-12T16:38:18+00:00</updated>
<author>
<name>Guillaume Chatelet</name>
<email>gchatelet@google.com</email>
</author>
<published>2022-12-12T16:37:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3bbfaee23d41c099547c652f87b252ab6e1f6c46'/>
<id>3bbfaee23d41c099547c652f87b252ab6e1f6c46</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D139836
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D139836
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert D139836 "[Alignment][NFC] Remove deprecated GlobalObject::getAlignment"</title>
<updated>2022-12-12T15:05:16+00:00</updated>
<author>
<name>Guillaume Chatelet</name>
<email>gchatelet@google.com</email>
</author>
<published>2022-12-12T15:04:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7e10a6a606b5fea990dd523eefb6fde9107e9f44'/>
<id>7e10a6a606b5fea990dd523eefb6fde9107e9f44</id>
<content type='text'>
This breaks lldb.

This reverts commit f3f15ca27fbb433ad5a65b1a1e0a071d2e9af505.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This breaks lldb.

This reverts commit f3f15ca27fbb433ad5a65b1a1e0a071d2e9af505.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Alignment][NFC] Remove deprecated GlobalObject::getAlignment</title>
<updated>2022-12-12T14:50:39+00:00</updated>
<author>
<name>Guillaume Chatelet</name>
<email>gchatelet@google.com</email>
</author>
<published>2022-12-12T13:06:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f3f15ca27fbb433ad5a65b1a1e0a071d2e9af505'/>
<id>f3f15ca27fbb433ad5a65b1a1e0a071d2e9af505</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D139836
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D139836
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup includes: Linker</title>
<updated>2022-03-22T08:51:21+00:00</updated>
<author>
<name>serge-sans-paille</name>
<email>sguelton@redhat.com</email>
</author>
<published>2022-03-21T20:52:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8b295d1ca2cc4809c91a59184215f6d6075d7fb8'/>
<id>8b295d1ca2cc4809c91a59184215f6d6075d7fb8</id>
<content type='text'>
Preprocessor output diff: -7300 lines
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D122182
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Preprocessor output diff: -7300 lines
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D122182
</pre>
</div>
</content>
</entry>
<entry>
<title>[IRLinker] make IRLinker::AddLazyFor optional (llvm::unique_function). NFC</title>
<updated>2022-03-14T21:37:34+00:00</updated>
<author>
<name>Nick Desaulniers</name>
<email>ndesaulniers@google.com</email>
</author>
<published>2022-03-14T21:08:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=236695e70c41e3d649b2b8a4a72f58e4218f0aa9'/>
<id>236695e70c41e3d649b2b8a4a72f58e4218f0aa9</id>
<content type='text'>
2 of the 3 callsite of IRMover::move() pass empty lambda functions. Just
make this parameter llvm::unique_function.

Came about via discussion in D120781. Probably worth making this change
regardless of the resolution of D120781.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D121630
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
2 of the 3 callsite of IRMover::move() pass empty lambda functions. Just
make this parameter llvm::unique_function.

Came about via discussion in D120781. Probably worth making this change
regardless of the resolution of D120781.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D121630
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Use make_early_inc_range (NFC)</title>
<updated>2021-11-06T02:39:07+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2021-11-06T02:39:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=87e53a0ad8557162bc074e982df914beb9afa84d'/>
<id>87e53a0ad8557162bc074e982df914beb9afa84d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
