| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each constant extender requires an extra instruction, which adds to the
code size and also reduces the number of available slots in an instruction
packet. In most cases, the value of a repeated constant extender could be
loaded into a register, and the instructions using the extender could be
replaced with their counterparts that use that register instead.
This patch adds a pass that tries to reduce the number of constant
extenders, including extenders which differ only in an immediate offset
known at compile time, e.g. @global and @global+12.
llvm-svn: 315735
|
|
|
|
|
|
|
|
| |
I'm about to commit a patch that makes them necessary for getPredCode() and
it would be strange for getPredCode() and getImmCode() to require different
usage.
llvm-svn: 315733
|
|
|
|
| |
llvm-svn: 315728
|
|
|
|
| |
llvm-svn: 315726
|
|
|
|
|
|
|
|
| |
This adds Intel's Knights Mill CPU to valid CPU names for the backend. For now its an alias of "knl", but ultimately we need to support AVX5124FMAPS and AVX5124VNNIW instruction sets for it.
Differential Revision: https://reviews.llvm.org/D38811
llvm-svn: 315722
|
|
|
|
|
|
|
|
|
|
|
| |
This patch moves some common utility functions out of IPSCCP and makes them
available globally. The functions determine if interprocedural data-flow
analyses can propagate information through function returns, arguments, and
global variables.
Differential Revision: https://reviews.llvm.org/D37638
llvm-svn: 315719
|
|
|
|
|
|
| |
instructions
llvm-svn: 315718
|
|
|
|
|
|
| |
X, C2 + C); NFC
llvm-svn: 315717
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch By: hctim
Reviewers: morehouse, bogner
Reviewed By: bogner
Subscribers: bogner, kcc, llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D38855
llvm-svn: 315716
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This version of tests should be working properly.
Reviewers: vsk
Reviewed By: vsk
Differential Revision: https://reviews.llvm.org/D38889
llvm-svn: 315714
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change uses the loop use list added in the previous change to remember the
loops that appear in the trip count expressions of other loops; and uses it in
forgetLoop. This lets us not scan every loop in the function on a forgetLoop
call.
With this change we no longer invalidate clear out backedge taken counts on
forgetValue. I think this is fine -- the contract is that SCEV users must call
forgetLoop(L) if their change to the IR could have changed the trip count of L;
solely calling forgetValue on a value feeding into the backedge condition of L
is not enough. Moreover, I don't think we can strengthen forgetValue to be
sufficient for invalidating trip counts without significantly re-architecting
SCEV. For instance, if we have the loop:
I = *Ptr;
E = I + 10;
do {
// ...
} while (++I != E);
then the backedge taken count of the loop is 9, and it has no reference to
either I or E, i.e. there is no way in SCEV today to re-discover the dependency
of the loop's trip count on E or I. So a SCEV client cannot change E to (say)
"I + 20", call forgetValue(E) and expect the loop's trip count to be updated.
Reviewers: atrick, sunfish, mkazantsev
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D38435
llvm-svn: 315713
|
|
|
|
| |
llvm-svn: 315711
|
|
|
|
| |
llvm-svn: 315710
|
|
|
|
| |
llvm-svn: 315709
|
|
|
|
| |
llvm-svn: 315706
|
|
|
|
| |
llvm-svn: 315703
|
|
|
|
|
|
|
| |
The backend should be prepared for this transform after:
https://reviews.llvm.org/rL311731
llvm-svn: 315701
|
|
|
|
| |
llvm-svn: 315700
|
|
|
|
| |
llvm-svn: 315698
|
|
|
|
|
|
|
|
|
|
|
|
| |
This refers to a temporary path that can be shared across all tests,
identified by a particular label. This can be used for things like
caches.
At the moment, the character set for the LABEL is limited to C
identifier characters, plus '-', '+', '=', and '.'. This is the same
set of characters currently allowed in REQUIRES clause identifiers.
llvm-svn: 315697
|
|
|
|
| |
llvm-svn: 315696
|
|
|
|
|
|
| |
This isn't a property we want inherited.
llvm-svn: 315695
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In RS4GC it is possible that a base pointer is contained in a vector that
has undergone a bitcast from one element-pointertype to another. We teach
RS4GC how to look through bitcasts of vector types when looking for a base
pointer.
Reviewers: anna
Reviewed By: anna
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D38849
llvm-svn: 315694
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: http://lab.llvm.org:8011/builders/clang-with-thin-lto-ubuntu/builds/5950/steps/test-stage1-compiler/logs/stdio
Reviewers: vsk, Dor1s
Reviewed By: Dor1s
Subscribers: mehdi_amini
Differential Revision: https://reviews.llvm.org/D38888
llvm-svn: 315693
|
|
|
|
|
|
| |
Patch by Sumanth Gundapaneni.
llvm-svn: 315692
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: https://reviews.llvm.org/D38884#896964
Reviewers: vsk, Dor1s
Reviewed By: Dor1s
Differential Revision: https://reviews.llvm.org/D38887
llvm-svn: 315691
|
|
|
|
| |
llvm-svn: 315690
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: https://reviews.llvm.org/rL315685#115380
Reviewers: vsk, Dor1s
Reviewed By: Dor1s
Differential Revision: https://reviews.llvm.org/D38884
llvm-svn: 315687
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: We seem to inconsistently create CMOV nodes some with a Glue result and some without. But I can't find any cases that use the Glue result. So I've tried to remove all the place that did this.
Reviewers: RKSimon, spatel, zvi
Reviewed By: RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D38664
llvm-svn: 315686
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Documentation says that user can specify sources for both "show" and
"report" commands. "Show" command respects specified sources, but "report" does
not. It is useful to have both "show" and "report" generated for specified
sources. Also added tests to for both commands with sources specified.
Reviewers: vsk, kcc
Reviewed By: vsk
Differential Revision: https://reviews.llvm.org/D38860
llvm-svn: 315685
|
|
|
|
|
|
|
|
|
|
| |
This patch adds timestamp verification for swiftmodule files. A new flag
is provided to allows us to disable this check in order to allow testing
of this feature.
Differential revision: https://reviews.llvm.org/D38686
llvm-svn: 315684
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch teaches SCEV to calculate the maxBECount when the end bound
of the loop can vary. Note that we cannot calculate the exactBECount.
This will only be done when both conditions are satisfied:
1. the loop termination condition is strictly LT.
2. the IV is proven to not overflow.
This provides more information to users of SCEV and can be used to
improve identification of finite loops.
Reviewers: sanjoy, mkazantsev, silviu.baranga, atrick
Reviewed by: mkazantsev
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D38825
llvm-svn: 315683
|
|
|
|
| |
llvm-svn: 315681
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
addressing mode"
Significantly reduces performancei (~30%) of gipfeli
(https://github.com/google/gipfeli)
I have not yet managed to reproduce this regression with the open-source
version of the benchmark on github, but will work with others to get a
reproducer to you later today.
llvm-svn: 315680
|
|
|
|
|
|
|
|
|
|
| |
Minor doc update that the FileCheck matcher supports POSIX ERE.
It also fixes a minor issue in the regexp describing a variable
name: underscores are allowed too.
Differential Revision: https://reviews.llvm.org/D38787
llvm-svn: 315679
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This patch fixes the crash from https://bugs.llvm.org/show_bug.cgi?id=34659 and https://bugs.llvm.org/show_bug.cgi?id=34833.
Reviewers: rnk, majnemer
Reviewed By: rnk, majnemer
Subscribers: majnemer, llvm-commits
Differential Revision: https://reviews.llvm.org/D38223
llvm-svn: 315677
|
|
|
|
|
|
|
|
| |
The original sentence didn't really make sense.
Patch by Vedant Kumar. Thanks!
llvm-svn: 315676
|
|
|
|
|
|
|
|
| |
Prefer vbroadcastsd/vpbroadcastq instead.
There's no advantage to using these instructions when they aren't masked. This enables some additional execution domain switching without needing to update the table.
llvm-svn: 315674
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Currently we do not correctly invalidate memoized results for add recurrences
that were created directly (i.e. they were not created from a `Value`). This
change fixes this by keeping loop use lists and using the loop use lists to
determine which SCEV expressions to invalidate.
Here are some statistics on the number of uses of in the use lists of all loops
on a clang bootstrap (config: release, no asserts):
Count: 731310
Min: 1
Mean: 8.555150
50th %time: 4
95th %tile: 25
99th %tile: 53
Max: 433
Reviewers: atrick, sunfish, mkazantsev
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D38434
llvm-svn: 315672
|
|
|
|
|
|
| |
Use less temporary APInts. Use bit counting more. Don't call getScalarSizeInBits so many places, just capture it once.
llvm-svn: 315671
|
|
|
|
| |
llvm-svn: 315670
|
|
|
|
| |
llvm-svn: 315651
|
|
|
|
| |
llvm-svn: 315649
|
|
|
|
|
|
|
|
| |
work properly for vector types.
I don't know if we ever hit this case or not. Turning it into an assert only fired on expanding some atomic operation in a SystemZ lit test.
llvm-svn: 315648
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: OSS-Fuzz doesn't support '=' in filenames.
Reviewers: bogner, kcc
Reviewed By: kcc
Subscribers: javed.absar, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D38866
llvm-svn: 315647
|
|
|
|
|
|
|
| |
I'd mixed up ENABLE_SHARED and BUILD_SHARED_LIBS before, so these
tests were being disabled in too many places.
llvm-svn: 315646
|
|
|
|
|
|
|
|
|
|
|
| |
Previous patch did not count on the llvm command line parser to restrict the
inputs, but it is safe to do so.
Fix forward for patch with details:
-- https://reviews.llvm.org/D38650 and
-- https://llvm.org/svn/llvm-project/llvm/trunk@315635 91177308-0d34-0410-b5e6-96231b3b80d8
llvm-svn: 315644
|
|
|
|
|
|
|
|
|
|
|
| |
Swift uses SMDiagnostic for diagnostic messages. For
https://github.com/apple/swift/pull/12294, we need remark support.
I picked the color that clang uses to display them.
Differential Revision: https://reviews.llvm.org/D38865
llvm-svn: 315642
|
|
|
|
|
|
| |
overloads of SimplifyDemandedBits. NFC
llvm-svn: 315641
|
|
|
|
|
|
| |
warnings; other minor fixes (NFC).
llvm-svn: 315640
|