<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/Transforms/PruneEH, 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>2019-04-17T04:52:47+00:00</updated>
<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>
<entry>
<title>Temporarily Revert "Add basic loop fusion pass."</title>
<updated>2019-04-17T02:12:23+00:00</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2019-04-17T02:12:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a86343512845c9c1fdbac865fea88aa5fce7142a'/>
<id>urn:sha1:a86343512845c9c1fdbac865fea88aa5fce7142a</id>
<content type='text'>
As it's causing some bot failures (and per request from kbarton).

This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.

llvm-svn: 358546
</content>
</entry>
<entry>
<title>[PruneEH] Don't split musttail call from ret</title>
<updated>2019-04-02T15:47:11+00:00</updated>
<author>
<name>Joseph Tremoulet</name>
<email>jotrem@microsoft.com</email>
</author>
<published>2019-04-02T15:47:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b69afa8e9ba51c2e136a9abc3222b8ec40cd128a'/>
<id>urn:sha1:b69afa8e9ba51c2e136a9abc3222b8ec40cd128a</id>
<content type='text'>
Summary:
When inserting an `unreachable` after a noreturn call, we must ensure
that it's not a musttail call to avoid breaking the IR invariants for
musttail calls.

Reviewers: fedor.sergeev, majnemer

Reviewed By: majnemer

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60079

llvm-svn: 357483
</content>
</entry>
<entry>
<title>[Transforms] Preserve metadata when converting invoke to call.</title>
<updated>2018-12-14T18:15:11+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2018-12-14T18:15:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=5948b7f30fc4ac9c2ddc142ffb4341bd9eb2289b'/>
<id>urn:sha1:5948b7f30fc4ac9c2ddc142ffb4341bd9eb2289b</id>
<content type='text'>
The `changeToCall` function did not preserve the invoke's metadata.
Currently, there is probably no metadata that depends on being applied
on a CallInst or InvokeInst. Therefore we can replace the instruction's
metadata.

This fixes http://llvm.org/PR39994

Suggested-by: Moritz Kreutzer &lt;moritz.kreutzer@siemens.com&gt;

Differential Revision: https://reviews.llvm.org/D55666

llvm-svn: 349170
</content>
</entry>
<entry>
<title>[PM][FunctionAttrs] add NoUnwind attribute inference to PostOrderFunctionAttrs pass</title>
<updated>2018-03-23T21:46:16+00:00</updated>
<author>
<name>Fedor Sergeev</name>
<email>fedor.sergeev@azul.com</email>
</author>
<published>2018-03-23T21:46:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6660fd0f959e2e07db47729fb6112b7a823a67c2'/>
<id>urn:sha1:6660fd0f959e2e07db47729fb6112b7a823a67c2</id>
<content type='text'>
Summary:
This was motivated by absence of PrunEH functionality in new PM.
It was decided that a proper way to do PruneEH is to add NoUnwind inference
into PostOrderFunctionAttrs and then perform normal SimplifyCFG on top.

This change generalizes attribute handling implemented for (a removal of)
Convergent attribute, by introducing a generic builder-like class
   AttributeInferer

It registers all the attribute inference requests, storing per-attribute
predicates into a vector, and then goes through an SCC Node, scanning all
the instructions for not breaking attribute assumptions.

The main idea is that as soon all the instructions from all the functions
of SCC Node conform to attribute assumptions then we are free to infer
the attribute as set for all the functions of SCC Node.

It handles two distinct cases of attributes:
   - those that might break due to derefinement of the function code

     for these attributes we are allowed to apply inference only if all the
     functions are "exact definitions". Example - NoUnwind.

   - those that do not care about derefinement

     for these attributes we are allowed to apply inference as soon as we see
     any function definition. Example - removal of Convergent attribute.

Also in this commit:
* Converted all the FunctionAttrs tests to use FileCheck and added new-PM
  invocations to them

* FunctionAttrs/convergent.ll test demonstrates a difference in behavior between
   new and old PM implementations. Marked with FIXME.

* PruneEH tests were converted to new-PM as well, using function-attrs+simplify-cfg
  combo as intended

* some of "other" tests were updated since function-attrs now infers 'nounwind'
  even for old PM pipeline

* -disable-nounwind-inference hidden option added as a possible workaround for a supposedly
  rare case when nounwind being inferred by default presents a problem

Reviewers: chandlerc, jlebar

Reviewed By: jlebar

Subscribers: eraman, llvm-commits

Differential Revision: https://reviews.llvm.org/D44415

llvm-svn: 328377
</content>
</entry>
<entry>
<title>[PruneEH] Be correct in the face IPO</title>
<updated>2016-10-03T19:35:30+00:00</updated>
<author>
<name>Sanjoy Das</name>
<email>sanjoy@playingwithpointers.com</email>
</author>
<published>2016-10-03T19:35:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0359a193a74d410e4664344cd1ab480568bc321c'/>
<id>urn:sha1:0359a193a74d410e4664344cd1ab480568bc321c</id>
<content type='text'>
This fixes one spot I had missed in r265762.  Credit goes to Philip
Reames for spotting this one!

llvm-svn: 283137
</content>
</entry>
<entry>
<title>[PruneEH] Don't try to insert a terminator after another terminator</title>
<updated>2016-01-23T06:00:44+00:00</updated>
<author>
<name>David Majnemer</name>
<email>david.majnemer@gmail.com</email>
</author>
<published>2016-01-23T06:00:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6e51070dda9b9f12a867ad899f56aa375c223f11'/>
<id>urn:sha1:6e51070dda9b9f12a867ad899f56aa375c223f11</id>
<content type='text'>
LLVM's BasicBlock has a single terminator, it is not valid to have two.

llvm-svn: 258616
</content>
</entry>
<entry>
<title>[PruneEH] FuncletPads must not have undef operands</title>
<updated>2016-01-23T05:41:29+00:00</updated>
<author>
<name>David Majnemer</name>
<email>david.majnemer@gmail.com</email>
</author>
<published>2016-01-23T05:41:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4bf0b6b4838617764436aa5825776c9c457a2c98'/>
<id>urn:sha1:4bf0b6b4838617764436aa5825776c9c457a2c98</id>
<content type='text'>
Instead of RAUW with undef, replace the first non-token instruction with
unreachable.

This fixes PR26263.

llvm-svn: 258611
</content>
</entry>
<entry>
<title>[OperandBundles] Have PruneEH work correct with operand bundles.</title>
<updated>2015-12-08T23:16:52+00:00</updated>
<author>
<name>Sanjoy Das</name>
<email>sanjoy@playingwithpointers.com</email>
</author>
<published>2015-12-08T23:16:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=48945cdc159e47349b28157375960a11809c117d'/>
<id>urn:sha1:48945cdc159e47349b28157375960a11809c117d</id>
<content type='text'>
For an invoke with operand bundles, the [op_begin(), op_end()-3] range
can contain things other than invoke arguments.  This change teaches
PruneEH to use arg_begin() and arg_end() explicitly.

llvm-svn: 255073
</content>
</entry>
<entry>
<title>[PruneEH] A naked, noinline function can return via InlineAsm</title>
<updated>2015-06-27T07:52:53+00:00</updated>
<author>
<name>David Majnemer</name>
<email>david.majnemer@gmail.com</email>
</author>
<published>2015-06-27T07:52:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=5185c3c271418eeac9ce8588210c9e103cdd08d4'/>
<id>urn:sha1:5185c3c271418eeac9ce8588210c9e103cdd08d4</id>
<content type='text'>
The PruneEH pass tries to annotate functions as 'noreturn' if it doesn't
see a ReturnInst.  However, a naked function containing inline assembly
can contain control flow leaving the function.

This fixes PR23971.

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