#
286d5897 |
| 11-Oct-2017 |
Eugene Zelenko <eugene.zelenko@gmail.com> |
[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
llvm-svn: 315516
|
Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2 |
|
#
9cd976d0 |
| 10-Aug-2017 |
Craig Topper <craig.topper@intel.com> |
[DebugCounter] Move the semicolon out of the DEBUG_COUNTER macro and require it to be placed at the end of each use.
This make it consistent with STATISTIC which it will often appears near.
While t
[DebugCounter] Move the semicolon out of the DEBUG_COUNTER macro and require it to be placed at the end of each use.
This make it consistent with STATISTIC which it will often appears near.
While there move one DEBUG_COUNTER instance out of an anonymous namespace. It's already declaring a static variable so the namespace is unnecessary.
llvm-svn: 310637
show more ...
|
Revision tags: llvmorg-5.0.0-rc1 |
|
#
02008c30 |
| 29-Jun-2017 |
Xin Tong <trent.xin.tong@gmail.com> |
Remove useless header. NFC
llvm-svn: 306712
|
#
b7df17ec |
| 29-Jun-2017 |
Daniel Berlin <dberlin@dberlin.org> |
PredicateInfo: Use OrderedInstructions instead of our homemade version.
llvm-svn: 306703
|
#
6d2db9ed |
| 14-Jun-2017 |
Daniel Berlin <dberlin@dberlin.org> |
PredicateInfo: Don't insert conditional info when a conditional branch jumps to the same target regardless of condition
llvm-svn: 305416
|
Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3 |
|
#
33a1b736 |
| 01-Jun-2017 |
Mandeep Singh Grang <mgrang@codeaurora.org> |
[PredicateInfo] Fix non-determinism in codegen uncovered by reverse iterating SmallPtrSet
Summary: Sort OpsToRename before iterating to make iteration order deterministic.
Thanks to Daniel Berlin f
[PredicateInfo] Fix non-determinism in codegen uncovered by reverse iterating SmallPtrSet
Summary: Sort OpsToRename before iterating to make iteration order deterministic.
Thanks to Daniel Berlin for the sorting logic.
Reviewers: dberlin, RKSimon, efriedma, davide
Reviewed By: dberlin, davide
Subscribers: sanjoy, davide, llvm-commits
Differential Revision: https://reviews.llvm.org/D33265
llvm-svn: 304447
show more ...
|
Revision tags: llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1 |
|
#
06faa9bf |
| 11-Apr-2017 |
Sylvestre Ledru <sylvestre@debian.org> |
Simplify the code and remove dead code
Summary: Fix coverity cid 1374240
Reviewers: dberlin
Reviewed By: dberlin
Differential Revision: https://reviews.llvm.org/D31928
llvm-svn: 299924
|
Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3 |
|
#
fccbda96 |
| 22-Feb-2017 |
Daniel Berlin <dberlin@dberlin.org> |
PredicateInfo: Support switch statements
Summary: Depends on D29606 and D29682
Makes us pass GVN's edge.ll (we also will pass a few other testcases they just need cleaning up).
Thoughts on the Pre
PredicateInfo: Support switch statements
Summary: Depends on D29606 and D29682
Makes us pass GVN's edge.ll (we also will pass a few other testcases they just need cleaning up).
Thoughts on the Predicate* hiearchy of classes especially welcome :) (it's not clear to me how best to organize it, and currently, the getBlock* seems ... uglier than maybe wasting a field somewhere or something).
Reviewers: davide
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D29747
llvm-svn: 295889
show more ...
|
#
57981809 |
| 19-Feb-2017 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Removed extra ';'
llvm-svn: 295603
|
#
a4b5c01d |
| 19-Feb-2017 |
Daniel Berlin <dberlin@dberlin.org> |
Add a DebugCounter for PredicateInfo renaming, and an associated test
llvm-svn: 295594
|
#
dba90119 |
| 19-Feb-2017 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Fix unused variable warning when assertions are disabled.
llvm-svn: 295587
|
#
588e0be3 |
| 18-Feb-2017 |
Daniel Berlin <dberlin@dberlin.org> |
PredicateInfo: Clean up predicate info a little, using insertion helpers, and fixing support for the renaming the comparison.
llvm-svn: 295581
|
#
dbe8264c |
| 12-Feb-2017 |
Daniel Berlin <dberlin@dberlin.org> |
PredicateInfo: Handle critical edges
Summary: This adds support for placing predicateinfo such that it affects critical edges.
This fixes the issues mentioned by Nuno on the mailing list.
Depends
PredicateInfo: Handle critical edges
Summary: This adds support for placing predicateinfo such that it affects critical edges.
This fixes the issues mentioned by Nuno on the mailing list.
Depends on D29519
Reviewers: davide, nlopes
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D29606
llvm-svn: 294921
show more ...
|
Revision tags: llvmorg-4.0.0-rc2 |
|
#
c763fd1a |
| 07-Feb-2017 |
Daniel Berlin <dberlin@dberlin.org> |
PredicateInfo: Some compilers are unhappy with naming Use *'s Use. Change the name.
llvm-svn: 294364
|
#
439042b7 |
| 07-Feb-2017 |
Daniel Berlin <dberlin@dberlin.org> |
Add PredicateInfo utility and printing pass
Summary: This patch adds a utility to build extended SSA (see "ABCD: eliminating array bounds checks on demand"), and an intrinsic to support it. This is
Add PredicateInfo utility and printing pass
Summary: This patch adds a utility to build extended SSA (see "ABCD: eliminating array bounds checks on demand"), and an intrinsic to support it. This is then used to get functionality equivalent to propagateEquality in GVN, in NewGVN (without having to replace instructions as we go). It would work similarly in SCCP or other passes. This has been talked about a few times, so i built a real implementation and tried to productionize it.
Copies are inserted for operands used in assumes and conditional branches that are based on comparisons (see below for more)
Every use affected by the predicate is renamed to the appropriate intrinsic result.
E.g. %cmp = icmp eq i32 %x, 50 br i1 %cmp, label %true, label %false true: ret i32 %x false: ret i32 1
will become
%cmp = icmp eq i32, %x, 50 br i1 %cmp, label %true, label %false true: ; Has predicate info ; branch predicate info { TrueEdge: 1 Comparison: %cmp = icmp eq i32 %x, 50 } %x.0 = call @llvm.ssa_copy.i32(i32 %x) ret i32 %x.0 false: ret i23 1
(you can use -print-predicateinfo to get an annotated-with-predicateinfo dump)
This enables us to easily determine what operations are affected by a given predicate, and how operations affected by a chain of predicates.
Reviewers: davide, sanjoy
Subscribers: mgorny, llvm-commits, Prazek
Differential Revision: https://reviews.llvm.org/D29519
Update for review comments
Fix a bug Nuno noticed where we are giving information about and/or on edges where the info is not useful and easy to use wrong
Update for review comments
llvm-svn: 294351
show more ...
|