<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/tools/gold/Inputs/comdat.ll, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2015-08-28T20:33:56+00:00</updated>
<entry>
<title>Split the gold tests into X86 and PowerPC directories.</title>
<updated>2015-08-28T20:33:56+00:00</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2015-08-28T20:33:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cad82ccbb24e62a1da004f32f7fc5315b4019428'/>
<id>urn:sha1:cad82ccbb24e62a1da004f32f7fc5315b4019428</id>
<content type='text'>
Patch by Than McIntosh!

llvm-svn: 246328
</content>
</entry>
<entry>
<title>Handle a symbol being undefined.</title>
<updated>2015-01-14T13:53:50+00:00</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2015-01-14T13:53:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=5ca7fa15fd6546ef8001d7d0e854b041344fb8d2'/>
<id>urn:sha1:5ca7fa15fd6546ef8001d7d0e854b041344fb8d2</id>
<content type='text'>
This can happen if:
* It is present in a comdat in one file.
* It is not present in the comdat of the file that is kept.
* Is is not used.

This should fix the LTO boostrap.

Thanks to Takumi NAKAMURA for setting up the bot!

llvm-svn: 225983
</content>
</entry>
<entry>
<title>Change the .ll syntax for comdats and add a syntactic sugar.</title>
<updated>2015-01-06T22:55:16+00:00</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2015-01-06T22:55:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=83a362cde8dda902ae516dbb1a721735a338abbb'/>
<id>urn:sha1:83a362cde8dda902ae516dbb1a721735a338abbb</id>
<content type='text'>
In order to make comdats always explicit in the IR, we decided to make
the syntax a bit more compact for the case of a GlobalObject in a
comdat with the same name.

Just dropping the $name causes problems for

@foo = globabl i32 0, comdat
$bar = comdat ...

and

declare void @foo() comdat
$bar = comdat ...

So the syntax is changed to

@g1 = globabl i32 0, comdat($c1)
@g2 = globabl i32 0, comdat

and

declare void @foo() comdat($c1)
declare void @foo() comdat

llvm-svn: 225302
</content>
</entry>
<entry>
<title>gold plugin: create internal replacement with original linkage first.</title>
<updated>2014-10-07T03:19:55+00:00</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2014-10-07T03:19:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cb69583c507ca6f41072f5f52177bb3b6ad359cf'/>
<id>urn:sha1:cb69583c507ca6f41072f5f52177bb3b6ad359cf</id>
<content type='text'>
The call to copyAttributesFrom will copy the visibility, which might assert
if it were to produce something invalid like "internal hidden". We avoid it
by first creating the replacement with the original linkage and then setting
it to internal affter the call to copyAttributesFrom.

llvm-svn: 219184
</content>
</entry>
<entry>
<title>gold plugin: Remap function arguments when creating a replacement function.</title>
<updated>2014-10-07T00:47:38+00:00</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2014-10-07T00:47:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=93aec71ba980a001a27895e710e595611bcb9dcc'/>
<id>urn:sha1:93aec71ba980a001a27895e710e595611bcb9dcc</id>
<content type='text'>
When creating an internal function replacement for use in an alias we were
not remapping the argument uses in the instructions to point to the new
arguments.

llvm-svn: 219177
</content>
</entry>
<entry>
<title>Add support for comdats to the gold plugin.</title>
<updated>2014-08-22T23:26:10+00:00</updated>
<author>
<name>Rafael Espindola</name>
<email>rafael.espindola@gmail.com</email>
</author>
<published>2014-08-22T23:26:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f7ecb1157226f078264ced1d6d9b2fe5802c8486'/>
<id>urn:sha1:f7ecb1157226f078264ced1d6d9b2fe5802c8486</id>
<content type='text'>
There are two parts to this. First, the plugin needs to tell gold the comdat by
setting comdat_key.

What gets things a bit more complicated is that gold only seems
symbols. In particular, if A is an alias to B, it only sees the symbols
A and B. It can then ask us to keep symbol A but drop symbol B. What
we have to do instead is to create an internal version of B and make A
an alias to that.

At some point some of this logic should be moved to lib/Linker so that
we don't map a Constant to an internal version just to have lib/Linker
map that again to the destination module.

The reason for implementing this in tools/gold for now is simplicity.
With it in place it should be possible to update clang to use comdats
for constructors and destructors on ELF without breaking the LTO
bootstrap. Once that is done I intend to come back and improve the
interface lib/Linker exposes.

llvm-svn: 216302
</content>
</entry>
</feed>
