| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 270110
|
| |
|
|
|
|
|
|
|
| |
Since the calls don't return, the instruction afterwards will never run,
and is just taking up unnecessary space in the binary.
Differential Revision: http://reviews.llvm.org/D20406
llvm-svn: 270109
|
| |
|
|
|
|
|
|
| |
A baby step toward translating DIType records to CodeView.
This does not (yet) combine the record length with the record data. I'm going back and forth trying to determine if that's a good idea.
llvm-svn: 270106
|
| |
|
|
|
|
|
| |
InterleavedAccessPass is an IR-level pass, so this change will enable testing
it with opt. This is part of D20250.
llvm-svn: 270101
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
getRegAsmName ends up making a copy of the register's name in order to
make a lower-case version of it. This is bad because
getRegForInlineAsmConstraint, it's sole caller, does a lowercase
comparison anyway.
This resulted in a significant regression in compile time for the Linux
kernel because getRegAsmName is called in a loop by
getRegForInlineAsmConstraint.
Instead, forgo the call to lower in getRegAsmName and have it return a
StringRef.
No functionality change is intended.
llvm-svn: 270099
|
| |
|
|
| |
llvm-svn: 270096
|
| |
|
|
|
|
| |
This avoids passing a TargetMachine in a few places.
llvm-svn: 270095
|
| |
|
|
| |
llvm-svn: 270093
|
| |
|
|
|
|
|
| |
Remove a comment about not supporting LRVH/STRVH from the README
LRVH/STRVH are being generated as of r269688
llvm-svn: 270092
|
| |
|
|
| |
llvm-svn: 270091
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20441
llvm-svn: 270088
|
| |
|
|
|
|
|
| |
Problem Was exposed by -Wstring-conversion
llvm-svn: 270087
|
| |
|
|
| |
llvm-svn: 270081
|
| |
|
|
| |
llvm-svn: 270080
|
| |
|
|
|
|
|
|
|
|
|
|
| |
antidependency breaker
Previously, specifying -post-RA-scheduler=true had the side effect of
disabling the antidependency breaker, yielding different behavior than
if the post-RA-scheduler was enabled via the scheduling model.
Differential Revision: http://reviews.llvm.org/D20186
llvm-svn: 270077
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It broke buildbot:
http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/4817/steps/ninja%20check%201/logs/stdio
Actually it is just because D20273 not yet commited, but these 2 were crossing with each other,
and I`ll better find the way to land them separatelly soon.
Initial commit message:
[llvm-mc] - Teach llvm-mc to generate compressed debug sections in zlib style.
Before this patch llvm-mc generated zlib-gnu styled sections.
That means no SHF_COMPRESSED flag was set, magic 'zlib' signature
was used in combination with full size field. Sections were renamed to "*.z*".
This patch reimplements the compression style to zlib one as zlib-gnu looks
to be depricated everywhere.
Differential revision: http://reviews.llvm.org/D20331
llvm-svn: 270075
|
| |
|
|
| |
llvm-svn: 270074
|
| |
|
|
|
|
|
|
|
| |
There are at least 2 places (DAGCombiner, X86ISelLowering) where this could be used instead
of ad-hoc and watered down code that is trying to match a power-of-2 pattern.
Differential Revision: http://reviews.llvm.org/D20439
llvm-svn: 270073
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the order in which we attempt to prove the independence of
strided accesses. We previously did this after we knew the dependence distance
was positive. With this change, we check for independence before handling the
negative distance case. The patch prevents LAA from reporting forward
dependences for independent strided accesses.
This change was requested in the review of D19984.
llvm-svn: 270072
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before this patch llvm-mc generated zlib-gnu styled sections.
That means no SHF_COMPRESSED flag was set, magic 'zlib' signature
was used in combination with full size field. Sections were renamed to "*.z*".
This patch reimplements the compression style to zlib one as zlib-gnu looks
to be depricated everywhere.
Differential revision: http://reviews.llvm.org/D20331
llvm-svn: 270070
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mask0Imm and ~Mask1Imm must be equivalent and one of the MaskImms is a shifted
mask (e.g., 0x000ffff0). Both 'and's must have a single use.
This changes code like:
and w8, w0, #0xffff000f
and w9, w1, #0x0000fff0
orr w0, w9, w8
into
lsr w8, w1, #4
bfi w0, w8, #4, #12
llvm-svn: 270063
|
| |
|
|
|
|
|
|
|
|
| |
- Renamed intrinsics.ll to intrinsics-coprocessor.ll
as all the tests were testing coprocessor instructions,
also made the test checks match the full instruction.
Differential Revision: http://reviews.llvm.org/D20393
llvm-svn: 270057
|
| |
|
|
| |
llvm-svn: 270056
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes for MUBUF_Atomic instructions to make operand list valid:
- For RTN insns, make a copy of $vdata_in operand as $vdata.
- Do not add operand for GLC, it is hardcoded and comes as a token.
Workaround to avoid adding multiple default optional operands.
Tests added.
Differential Revision: http://reviews.llvm.org/D20257
llvm-svn: 270049
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15526
llvm-svn: 270048
|
| |
|
|
| |
llvm-svn: 270046
|
| |
|
|
| |
llvm-svn: 270041
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
verifier.
Summary: Partially fixes PR27458
Reviewers: sdardis
Subscribers: dsanders, llvm-commits, sdardis
Differential Revision: http://reviews.llvm.org/D20330
llvm-svn: 270037
|
| |
|
|
|
|
|
|
|
|
| |
Enable "Remove Redundant LEAs" part of the LEA optimization pass for -O2.
This gives 6.4% performance improve on Broadwell on nnet benchmark from Coremark-pro.
There is no significant effect on other benchmarks (Geekbench, Spec2000, Spec2006).
Differential Revision: http://reviews.llvm.org/D19659
llvm-svn: 270036
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18352
llvm-svn: 270030
|
| |
|
|
|
|
| |
No changes to the isel table size so the separation wasn't buying us anything.
llvm-svn: 270026
|
| |
|
|
|
|
| |
implied.
llvm-svn: 270025
|
| |
|
|
| |
llvm-svn: 270023
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Transition InstrProf and Coverage over to the stricter Error/Expected
interface.
Changes since the initial commit:
- Fix error message printing in llvm-profdata.
- Check errors in loadTestingFormat() + annotateAllFunctions().
- Defer error handling in InstrProfIterator to InstrProfReader.
- Remove the base ProfError class to work around an MSVC ICE.
Differential Revision: http://reviews.llvm.org/D19901
llvm-svn: 270020
|
| |
|
|
|
|
|
| |
`ConstantRange::getEquivalentICmp` is more general, and better
factored.
llvm-svn: 270019
|
| |
|
|
|
|
|
| |
Currently only its unit test uses it, but this will be used in a later
change to simplify some logic in the GuardWidening pass.
llvm-svn: 270018
|
| |
|
|
| |
llvm-svn: 270017
|
| |
|
|
|
|
| |
classes.
llvm-svn: 270013
|
| |
|
|
|
|
| |
type constraints for vector and scalar.
llvm-svn: 270012
|
| |
|
|
| |
llvm-svn: 270011
|
| |
|
|
|
|
|
|
| |
warnings in examples; other minor fixes.
Differential revision: http://reviews.llvm.org/D20397
llvm-svn: 270008
|
| |
|
|
| |
llvm-svn: 270007
|
| |
|
|
| |
llvm-svn: 270003
|
| |
|
|
| |
llvm-svn: 270002
|
| |
|
|
|
|
| |
This refactoring is to reduce code duplication between the 32-bit and 64-bit code paths. This refactoring will also make the special casing for other data after load commands cleaner.
llvm-svn: 270001
|
| |
|
|
|
|
|
| |
If the load has a pointer type, we don't want to change
its type.
llvm-svn: 270000
|
| |
|
|
|
|
|
| |
PredicatePassProbability is a better name for what LikelyBranchWeight
was trying to express.
llvm-svn: 269999
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Implement guard widening in LLVM. Description from GuardWidening.cpp:
The semantics of the `@llvm.experimental.guard` intrinsic lets LLVM
transform it so that it fails more often that it did before the
transform. This optimization is called "widening" and can be used hoist
and common runtime checks in situations like these:
```
%cmp0 = 7 u< Length
call @llvm.experimental.guard(i1 %cmp0) [ "deopt"(...) ]
call @unknown_side_effects()
%cmp1 = 9 u< Length
call @llvm.experimental.guard(i1 %cmp1) [ "deopt"(...) ]
...
```
to
```
%cmp0 = 9 u< Length
call @llvm.experimental.guard(i1 %cmp0) [ "deopt"(...) ]
call @unknown_side_effects()
...
```
If `%cmp0` is false, `@llvm.experimental.guard` will "deoptimize" back
to a generic implementation of the same function, which will have the
correct semantics from that point onward. It is always _legal_ to
deoptimize (so replacing `%cmp0` with false is "correct"), though it may
not always be profitable to do so.
NB! This pass is a work in progress. It hasn't been tuned to be
"production ready" yet. It is known to have quadriatic running time and
will not scale to large numbers of guards
Reviewers: reames, atrick, bogner, apilipenko, nlewycky
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D20143
llvm-svn: 269997
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
when simplifying CFG.
Summary: Set default branch weight to 1:1 if one of the branch has profile missing when simplifying CFG.
Reviewers: spatel, davidxl
Subscribers: danielcdh, llvm-commits
Differential Revision: http://reviews.llvm.org/D20307
llvm-svn: 269995
|
| |
|
|
|
|
|
|
| |
skipFunction() is called twice.
Differential Revision: http://reviews.llvm.org/D20377
llvm-svn: 269994
|