<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/Analysis/CFLAliasAnalysis, 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-06-06T19:21:23+00:00</updated>
<entry>
<title>[CFLGraph] Add support for unary fneg instruction.</title>
<updated>2019-06-06T19:21:23+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@intel.com</email>
</author>
<published>2019-06-06T19:21:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ca541b20d0c885793c06bddf7966f3e93c03e32f'/>
<id>urn:sha1:ca541b20d0c885793c06bddf7966f3e93c03e32f</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D62791

llvm-svn: 362737
</content>
</entry>
<entry>
<title>Revert r332657: "[AA] cfl-anders-aa with field sensitivity"</title>
<updated>2018-05-17T21:56:39+00:00</updated>
<author>
<name>George Burgess IV</name>
<email>george.burgess.iv@gmail.com</email>
</author>
<published>2018-05-17T21:56:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=c6526176cf7c3678f9d7c96338f63365c4d5f8ab'/>
<id>urn:sha1:c6526176cf7c3678f9d7c96338f63365c4d5f8ab</id>
<content type='text'>
I don't believe the person who LGTMed this review has appropriate
context on this code. I apologize if I'm wrong.

llvm-svn: 332674
</content>
</entry>
<entry>
<title>[AA] cfl-anders-aa with field sensitivity</title>
<updated>2018-05-17T20:23:33+00:00</updated>
<author>
<name>David Bolvansky</name>
<email>david.bolvansky@gmail.com</email>
</author>
<published>2018-05-17T20:23:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b1c59e3f30bf75255d8a1de14082a9e9fe806167'/>
<id>urn:sha1:b1c59e3f30bf75255d8a1de14082a9e9fe806167</id>
<content type='text'>
Summary:
There was some unfinished work started for offset tracking in CFLGraph by the author of implementation of Andersen algorithm. This work was completed and support for field sensitivity was added to the core of Andersen algorithm.

The performance results seem promising.

SPEC2006 int_base score was increased by 1.1 % (I  compared clang 6.0 with clang 6.0 with this patch). The avergae compile time was increased by +- 1 % according my measures with small and medium C/C++ projects (I did not tested it on the large projects with milions of lines of code)

Reviewers: chandlerc, george.burgess.iv, rja

Reviewed By: rja

Subscribers: rja, llvm-commits

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

llvm-svn: 332657
</content>
</entry>
<entry>
<title>Add regression test for r331976</title>
<updated>2018-05-10T18:37:54+00:00</updated>
<author>
<name>George Burgess IV</name>
<email>george.burgess.iv@gmail.com</email>
</author>
<published>2018-05-10T18:37:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=175400a801340a75c8fcd5c30924540ae84ad90f'/>
<id>urn:sha1:175400a801340a75c8fcd5c30924540ae84ad90f</id>
<content type='text'>
In general, it's difficult to poke the ConstantExpr code in CFLAA, since
LLVM is so great at eagerly reducing ConstantExprs. :)

Sadly, this only shows a functional difference from before the patch
because CFLAA has some special logic around taking loads of non-pointers
into account. Namely, with the broken select behavior, CFLAA will
completely fail to take note of @g3. Since CFLAA doesn't have any record
about @g3 when we do an alias query for @g3 and %a, it conservatively
answers MayAlias. When we properly take @g3 into account with the new
select logic, we get NoAlias for this query.

I suspect that the aforementioned "special logic" isn't completely
correct, but this test-case should prevent future wonky aliasing results
from appearing for these flavors of ConstantExprs, so I think it's still
worth having.

llvm-svn: 332017
</content>
</entry>
<entry>
<title>[CFLAA] Add missing break; note things are broken.</title>
<updated>2017-05-31T02:35:26+00:00</updated>
<author>
<name>George Burgess IV</name>
<email>george.burgess.iv@gmail.com</email>
</author>
<published>2017-05-31T02:35:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0a7b9890363e7870cfcc938f8e2117d2a938bfe1'/>
<id>urn:sha1:0a7b9890363e7870cfcc938f8e2117d2a938bfe1</id>
<content type='text'>
Thanks to Galina Kistanova for finding the missing break!

When trying to make a test for this, I realized our logic for handling
extractvalue/insertvalue/... is somewhat broken. This makes constructing
a test-case for this missing break nontrivial.

llvm-svn: 304275
</content>
</entry>
<entry>
<title>[Verifier] Add verification for TBAA metadata</title>
<updated>2016-12-11T20:07:15+00:00</updated>
<author>
<name>Sanjoy Das</name>
<email>sanjoy@playingwithpointers.com</email>
</author>
<published>2016-12-11T20:07:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=3336f681e3f548e082d363b848edaeb3e0fcb644'/>
<id>urn:sha1:3336f681e3f548e082d363b848edaeb3e0fcb644</id>
<content type='text'>
Summary:
This change adds some verification in the IR verifier around struct path
TBAA metadata.

Other than some basic sanity checks (e.g. we get constant integers where
we expect constant integers), this checks:

 - That by the time an struct access tuple `(base-type, offset)` is
   "reduced" to a scalar base type, the offset is `0`.  For instance, in
   C++ you can't start from, say `("struct-a", 16)`, and end up with
   `("int", 4)` -- by the time the base type is `"int"`, the offset
   better be zero.  In particular, a variant of this invariant is needed
   for `llvm::getMostGenericTBAA` to be correct.

 - That there are no cycles in a struct path.

 - That struct type nodes have their offsets listed in an ascending
   order.

 - That when generating the struct access path, you eventually reach the
   access type listed in the tbaa tag node.

Reviewers: dexonsmith, chandlerc, reames, mehdi_amini, manmanren

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 289402
</content>
</entry>
<entry>
<title>[CFLAA] Remove modref queries from CFLAA.</title>
<updated>2016-08-01T18:47:28+00:00</updated>
<author>
<name>George Burgess IV</name>
<email>george.burgess.iv@gmail.com</email>
</author>
<published>2016-08-01T18:47:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=5f0e76dca64c24ac9b97536d75b8438b86a7b8db'/>
<id>urn:sha1:5f0e76dca64c24ac9b97536d75b8438b86a7b8db</id>
<content type='text'>
As it turns out, modref queries are broken with CFLAA. Specifically,
the data source we were using for determining modref behaviors
explicitly ignores operations on non-pointer values. So, it wouldn't
note e.g. storing an i32 to an i32* (or loading an i64 from an i64*).
It also ignores external function calls, rather than acting
conservatively for them.

(N.B. These operations, where necessary, *are* tracked by CFLAA; we just
use a different mechanism to do so. Said mechanism is relatively
imprecise, so it's unlikely that we can provide reasonably good modref
answers with it as implemented.)

Patch by Jia Chen.

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

llvm-svn: 277366
</content>
</entry>
<entry>
<title>[CFLAA] Add getModRefBehavior to CFLAnders.</title>
<updated>2016-07-27T23:07:07+00:00</updated>
<author>
<name>George Burgess IV</name>
<email>george.burgess.iv@gmail.com</email>
</author>
<published>2016-07-27T23:07:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=dbd35c44d4fe5e4f092ecdd2d2ca1c2205f7d2c1'/>
<id>urn:sha1:dbd35c44d4fe5e4f092ecdd2d2ca1c2205f7d2c1</id>
<content type='text'>
This patch lets CFLAnders respond to mod-ref queries. It also includes
a small bugfix to CFLSteens.

Patch by Jia Chen.

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

llvm-svn: 276939
</content>
</entry>
<entry>
<title>[CFLAA] Make a test tell the truth. NFC.</title>
<updated>2016-07-19T20:56:41+00:00</updated>
<author>
<name>George Burgess IV</name>
<email>george.burgess.iv@gmail.com</email>
</author>
<published>2016-07-19T20:56:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=8b85321bae0303c456e256cbb910ebe753398e60'/>
<id>urn:sha1:8b85321bae0303c456e256cbb910ebe753398e60</id>
<content type='text'>
Dishonesty noted by Jia Chen.

llvm-svn: 276028
</content>
</entry>
<entry>
<title>[CFLAA] Add some interproc. analysis to CFLAnders.</title>
<updated>2016-07-19T20:47:15+00:00</updated>
<author>
<name>George Burgess IV</name>
<email>george.burgess.iv@gmail.com</email>
</author>
<published>2016-07-19T20:47:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=3b059841ff4b9660b0f1696d1aaf8f194fc42275'/>
<id>urn:sha1:3b059841ff4b9660b0f1696d1aaf8f194fc42275</id>
<content type='text'>
This patch adds function summary support to CFLAnders. It also comes
with a lot of tests! Woohoo!

Patch by Jia Chen.

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

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