<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/Transforms/TailCallElim, 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>[TailCallElim] Enable marking of calls with byval as tails</title>
<updated>2018-10-08T18:03:40+00:00</updated>
<author>
<name>Robert Lougher</name>
<email>rob.lougher@gmail.com</email>
</author>
<published>2018-10-08T18:03:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0c93ea2634219eb01fb8f9d2b32e6a64c7aa058c'/>
<id>urn:sha1:0c93ea2634219eb01fb8f9d2b32e6a64c7aa058c</id>
<content type='text'>
In r339636 the alias analysis rules were changed with regards to tail calls
and byval arguments. Previously, tail calls were assumed not to alias
allocas from the current frame. This has been updated, to not assume this
for arguments with the byval attribute.

This patch aligns TailCallElim with the new rule. Tail marking can now be
more aggressive and mark more calls as tails, e.g.:

define void @test() {
  %f = alloca %struct.foo
  call void @bar(%struct.foo* byval %f)
  ret void
}

define void @test2(%struct.foo* byval %f) {
  call void @bar(%struct.foo* byval %f)
  ret void
}

define void @test3(%struct.foo* byval %f) {
  %agg.tmp = alloca %struct.foo
  %0 = bitcast %struct.foo* %agg.tmp to i8*
  %1 = bitcast %struct.foo* %f to i8*
  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* %1, i64 40, i1 false)
  call void @bar(%struct.foo* byval %agg.tmp)
  ret void
}

The problematic case where a byval parameter is captured by a call is still
handled correctly, and will not be marked as a tail (see PR7272).

llvm-svn: 343986
</content>
</entry>
<entry>
<title>[TailCallElim] Preserve DT and PDT</title>
<updated>2018-08-04T08:13:47+00:00</updated>
<author>
<name>Chijun Sima</name>
<email>simachijun@gmail.com</email>
</author>
<published>2018-08-04T08:13:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=8b5de48d62872ce16848fd9f207faf904b8d1c0e'/>
<id>urn:sha1:8b5de48d62872ce16848fd9f207faf904b8d1c0e</id>
<content type='text'>
Summary:
Previously, in the NewPM pipeline, TailCallElim recalculates the DomTree when it modifies any instruction in the Function.
For example,
```
CallInst *CI = dyn_cast&lt;CallInst&gt;(&amp;I);
...
CI-&gt;setTailCall();
Modified = true;
...
if (!Modified || ...)
  return PreservedAnalyses::all();
```
After applying this patch, the DomTree only recalculates if needed (plus an extra insertEdge() + an extra deleteEdge() call).

When optimizing SQLite with `-passes="default&lt;O3&gt;"` pipeline of the newPM, the number of DomTree recalculation decreases by 6.2%, the number of nodes visited by DFS decreases by 2.9%. The time used by DomTree will decrease approximately 1%~2.5% after applying the patch.
 
Statistics:
```
Before the patch:
 23010 dom-tree-stats               - Number of DomTree recalculations
489264 dom-tree-stats               - Number of nodes visited by DFS -- DomTree
After the patch:
 21581 dom-tree-stats               - Number of DomTree recalculations
475088 dom-tree-stats               - Number of nodes visited by DFS -- DomTree
```

Reviewers: kuhar, dmgreen, brzycki, grosser, davide

Reviewed By: kuhar, brzycki

Subscribers: llvm-commits

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

llvm-svn: 338954
</content>
</entry>
<entry>
<title>[TRE][DebugInfo] Preserve Debug Location in new branch instruction</title>
<updated>2018-08-03T20:27:13+00:00</updated>
<author>
<name>Anastasis Grammenos</name>
<email>anastasis.gramm2@gmail.com</email>
</author>
<published>2018-08-03T20:27:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4dfe279e00d56f23c37a526b3abe0a7c89269fa7'/>
<id>urn:sha1:4dfe279e00d56f23c37a526b3abe0a7c89269fa7</id>
<content type='text'>
There are two branch instructions created
so the new test covers them both.

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

llvm-svn: 338917
</content>
</entry>
<entry>
<title>[DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label.</title>
<updated>2018-05-09T02:40:45+00:00</updated>
<author>
<name>Shiva Chen</name>
<email>shiva0217@gmail.com</email>
</author>
<published>2018-05-09T02:40:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2c864551df3945f50e1780b2f2c880ec358ae715'/>
<id>urn:sha1:2c864551df3945f50e1780b2f2c880ec358ae715</id>
<content type='text'>
In order to set breakpoints on labels and list source code around
labels, we need collect debug information for labels, i.e., label
name, the function label belong, line number in the file, and the
address label located. In order to keep these information in LLVM
IR and to allow backend to generate debug information correctly.
We create a new kind of metadata for labels, DILabel. The format
of DILabel is

!DILabel(scope: !1, name: "foo", file: !2, line: 3)

We hope to keep debug information as much as possible even the
code is optimized. So, we create a new kind of intrinsic for label
metadata to avoid the metadata is eliminated with basic block.
The intrinsic will keep existing if we keep it from optimized out.
The format of the intrinsic is

llvm.dbg.label(metadata !1)

It has only one argument, that is the DILabel metadata. The
intrinsic will follow the label immediately. Backend could get the
label metadata through the intrinsic's parameter.

We also create DIBuilder API for labels to be used by Frontend.
Frontend could use createLabel() to allocate DILabel objects, and use
insertLabel() to insert llvm.dbg.label intrinsic in LLVM IR.

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

Patch by Hsiangkai Wang.

llvm-svn: 331841
</content>
</entry>
<entry>
<title>Remove this test</title>
<updated>2017-11-28T22:39:38+00:00</updated>
<author>
<name>Adam Nemet</name>
<email>anemet@apple.com</email>
</author>
<published>2017-11-28T22:39:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=80fb55625bf7271d754cb40002304a685bcefe3c'/>
<id>urn:sha1:80fb55625bf7271d754cb40002304a685bcefe3c</id>
<content type='text'>
After r319235, we no longer generate this remark.

llvm-svn: 319242
</content>
</entry>
<entry>
<title>Demote this opt remark to DEBUG.</title>
<updated>2017-11-28T22:11:00+00:00</updated>
<author>
<name>Adam Nemet</name>
<email>anemet@apple.com</email>
</author>
<published>2017-11-28T22:11:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2e922890145333434ed246f9a7bd8285c20e9bea'/>
<id>urn:sha1:2e922890145333434ed246f9a7bd8285c20e9bea</id>
<content type='text'>
From a random opt-stat output:

Top 10 remarks:
  tailcallelim/tailcall          53%
  inline/AlwaysInline            13%
  gvn/LoadClobbered              13%
  inline/Inlined                  8%
  inline/TooCostly                2%
  inline/NoDefinition             2%
  licm/LoadWithLoopInvariantAddressInvalidated  2%
  licm/Hoisted                    1%
  asm-printer/InstructionCount    1%
  prologepilog/StackSize          1%

llvm-svn: 319235
</content>
</entry>
<entry>
<title>[TRE] Add another test for OptRemark.</title>
<updated>2017-07-19T21:39:51+00:00</updated>
<author>
<name>Davide Italiano</name>
<email>davide@freebsd.org</email>
</author>
<published>2017-07-19T21:39:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=1985e9b7e1f430da20efa7d8f48ac0ad6583322b'/>
<id>urn:sha1:1985e9b7e1f430da20efa7d8f48ac0ad6583322b</id>
<content type='text'>
This shows we emit a remark for tail recursion -&gt; loop.

llvm-svn: 308525
</content>
</entry>
<entry>
<title>[TRE] Move to the new OptRemark API.</title>
<updated>2017-07-19T21:13:22+00:00</updated>
<author>
<name>Davide Italiano</name>
<email>davide@freebsd.org</email>
</author>
<published>2017-07-19T21:13:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4b8c8eae32d51c1417bc3cfec130284ee3d3c895'/>
<id>urn:sha1:4b8c8eae32d51c1417bc3cfec130284ee3d3c895</id>
<content type='text'>
Fixes PR33788.

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

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