<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/Transforms/MergeFunc, 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>2020-01-14T19:55:41+00:00</updated>
<entry>
<title>[NewPM] Port MergeFunctions pass</title>
<updated>2020-01-14T19:55:41+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2020-01-10T20:52:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=410331869defbde0f6e5b7b3f8ee30c10b7f6be3'/>
<id>urn:sha1:410331869defbde0f6e5b7b3f8ee30c10b7f6be3</id>
<content type='text'>
This ports the MergeFunctions pass to the NewPM. This was rather
straightforward, as no analyses are used.

Additionally MergeFunctions needs to be conditionally enabled in
the PassBuilder, but I left that part out of this patch.

Differential Revision: https://reviews.llvm.org/D72537
</content>
</entry>
<entry>
<title>[MergeFuncs] Remove incorrect attribute copying</title>
<updated>2019-12-11T19:09:54+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2019-12-08T11:13:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b361d3bbcd85647c9f6640a5f57932c43fdb7a1a'/>
<id>urn:sha1:b361d3bbcd85647c9f6640a5f57932c43fdb7a1a</id>
<content type='text'>
Fix for https://bugs.llvm.org/show_bug.cgi?id=44236. This code was
originally introduced in rG36512330041201e10f5429361bbd79b1afac1ea1.
However, the attribute copying was done in the wrong place (in general
call replacement, not thunk generation) and a proper fix was
implemented in D12581.

Previously this code was just unnecessary but harmless (because
FunctionComparator ensured that the attributes of the two functions
are exactly the same), but since byval was changed to accept a type
this copying is actively wrong and may result in malformed IR.

Differential Revision: https://reviews.llvm.org/D71173
</content>
</entry>
<entry>
<title>[IR] Redefine Freeze instruction</title>
<updated>2019-11-12T01:49:00+00:00</updated>
<author>
<name>aqjune</name>
<email>aqjune@gmail.com</email>
</author>
<published>2019-11-06T16:17:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=e87d71668e10f51abe4b2f1f3c44591aca783750'/>
<id>urn:sha1:e87d71668e10f51abe4b2f1f3c44591aca783750</id>
<content type='text'>
Summary:
This patch redefines freeze instruction from being UnaryOperator to a subclass of UnaryInstruction.

ConstantExpr freeze is removed, as discussed in the previous review.
FreezeOperator is not added because there's no ConstantExpr freeze.
`freeze i8* null` test is added to `test/Bindings/llvm-c/freeze.ll` as well, because the null pointer-related bug in `tools/llvm-c/echo.cpp` is now fixed.
InstVisitor has visitFreeze now because freeze is not unaryop anymore.

Reviewers: whitequark, deadalnix, craig.topper, jdoerfert, lebedev.ri

Reviewed By: craig.topper, lebedev.ri

Subscribers: regehr, nlopes, mehdi_amini, hiraditya, steven_wu, dexonsmith, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69932
</content>
</entry>
<entry>
<title>[IR] Add Freeze instruction</title>
<updated>2019-11-05T06:54:56+00:00</updated>
<author>
<name>aqjune</name>
<email>aqjune@gmail.com</email>
</author>
<published>2019-11-05T06:53:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=58acbce3def63a207b8f5a69318a99666a4aac53'/>
<id>urn:sha1:58acbce3def63a207b8f5a69318a99666a4aac53</id>
<content type='text'>
Summary:
- Define Instruction::Freeze, let it be UnaryOperator
- Add support for freeze to LLLexer/LLParser/BitcodeReader/BitcodeWriter
  The format is `%x = freeze &lt;ty&gt; %v`
- Add support for freeze instruction to llvm-c interface.
- Add m_Freeze in PatternMatch.
- Erase freeze when lowering IR to SelDag.

Reviewers: deadalnix, hfinkel, efriedma, lebedev.ri, nlopes, jdoerfert, regehr, filcab, delcypher, whitequark

Reviewed By: lebedev.ri, jdoerfert

Subscribers: jfb, kristof.beyls, hiraditya, lebedev.ri, steven_wu, dexonsmith, xbolva00, delcypher, spatel, regehr, trentxintong, vsk, filcab, nlopes, mehdi_amini, deadalnix, llvm-commits

Differential Revision: https://reviews.llvm.org/D29011
</content>
</entry>
<entry>
<title>IR: print value numbers for unnamed function arguments</title>
<updated>2019-08-03T14:28:34+00:00</updated>
<author>
<name>Tim Northover</name>
<email>tnorthover@apple.com</email>
</author>
<published>2019-08-03T14:28:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a009a60a917bc30940422bcef73f8270566d78db'/>
<id>urn:sha1:a009a60a917bc30940422bcef73f8270566d78db</id>
<content type='text'>
For consistency with normal instructions and clarity when reading IR,
it's best to print the %0, %1, ... names of function arguments in
definitions.

Also modifies the parser to accept IR in that form for obvious reasons.

llvm-svn: 367755
</content>
</entry>
<entry>
<title>IR: compare type attributes deeply when looking into functions.</title>
<updated>2019-06-27T11:44:45+00:00</updated>
<author>
<name>Tim Northover</name>
<email>tnorthover@apple.com</email>
</author>
<published>2019-06-27T11:44:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=22c96a966b111ed433ddab238e9f83109c0a824a'/>
<id>urn:sha1:22c96a966b111ed433ddab238e9f83109c0a824a</id>
<content type='text'>
FunctionComparator attempts to produce a stable comparison of two Function
instances by looking at all available properties. Since ByVal attributes now
contain a Type pointer, they are not trivially ordered and FunctionComparator
should use its own Type comparison logic to sort them.

llvm-svn: 364523
</content>
</entry>
<entry>
<title>Fix 2-field llvm.global_ctors `REQUIRES: asserts` tests after rL360742</title>
<updated>2019-05-15T03:08:21+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2019-05-15T03:08:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=5296e2809fddfdfdf8da864598966476d836fcf4'/>
<id>urn:sha1:5296e2809fddfdfdf8da864598966476d836fcf4</id>
<content type='text'>
llvm-svn: 360743
</content>
</entry>
<entry>
<title>[MergeFunc] removeUsers: call remove() only on direct users</title>
<updated>2019-04-19T07:57:51+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2019-04-19T07:57:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=884f557bb216030769d40c00f55977e262b761a4'/>
<id>urn:sha1:884f557bb216030769d40c00f55977e262b761a4</id>
<content type='text'>
removeUsers uses a work list to collect indirect users and call remove()
on those functions. However it has a bug (`if (!Visited.insert(UU).second)`).

Actually, we don't have to collect indirect users.
After the merge of F and G, G's callers will be considered (added to
Deferred). If G's callers can be merged, G's callers' callers will be
considered.

Update the test unnamed-addr-reprocessing.ll to make it clear we can
still merge indirect callers.

llvm-svn: 358741
</content>
</entry>
<entry>
<title>MergeFunc: preserve COMDAT information when creating a thunk</title>
<updated>2019-04-19T01:48:36+00:00</updated>
<author>
<name>Saleem Abdulrasool</name>
<email>compnerd@compnerd.org</email>
</author>
<published>2019-04-19T01:48:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b96d9b3419161694e91a106354253f8ab3525c87'/>
<id>urn:sha1:b96d9b3419161694e91a106354253f8ab3525c87</id>
<content type='text'>
We would previously drop the COMDAT on the thunk we generated when replacing a
function body with the forwarding thunk. This would result in a function that
may have been multiply emitted and multiply merged to be emitted with the same
name without the COMDAT. This is a hard error with PE/COFF where the COMDAT is
used for the deduplication of Value Witness functions for Swift.

llvm-svn: 358728
</content>
</entry>
<entry>
<title>Revert "Temporarily Revert "Add basic loop fusion pass.""</title>
<updated>2019-04-17T04:52:47+00:00</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2019-04-17T04:52:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cee313d288a4faf0355d76fb6e0e927e211d08a5'/>
<id>urn:sha1:cee313d288a4faf0355d76fb6e0e927e211d08a5</id>
<content type='text'>
The reversion apparently deleted the test/Transforms directory.

Will be re-reverting again.

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