| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This reverts commit r304310.
It caused build failures in polly and mingw
due to undefined reference to
llvm::RTLIB::getMEMCPY_ELEMENT_ATOMIC.
llvm-svn: 304315
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does an inline expansion of memcmp.
It changes the memcmp library call into an inline expansion when the size is
known at compile time and is under a target specified threshold.
This expansion is implemented in CodeGenPrepare and expands into straight line
code. The target specifies a maximum load size and the expansion works by using
this size to load the two sources, compare, and exit early if a difference is
found. It also has a special case when the memcmp result is used in a compare
to zero equality.
Differential Revision: https://reviews.llvm.org/D28637
llvm-svn: 304313
|
| |
|
|
| |
llvm-svn: 304312
|
| |
|
|
|
|
|
|
|
|
|
| |
- new waitcnt pass remains off by default; -enable-si-insert-waitcnts=1 to enable it
- fix handling of PERMUTE ops
- fix insertion of waitcnt instrs at function begin/end ( port of analogous code that was added to old waitcnt pass )
- add new test
Differential Revision: https://reviews.llvm.org/D33114
llvm-svn: 304311
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Expanding the loop idiom test for memcpy to also recognize unordered atomic memcpy.
The only difference for recognizing
an unordered atomic memcpy and instead of a normal memcpy is
that the loads and/or stores involved are unordered atomic operations.
Background: http://lists.llvm.org/pipermail/llvm-dev/2017-May/112779.html
Patch by Daniel Neilson!
Reviewers: reames, anna, skatkov
Reviewed By: reames
Subscribers: llvm-commits, mzolotukhin
Differential Revision: https://reviews.llvm.org/D33243
llvm-svn: 304310
|
| |
|
|
|
|
|
|
|
|
| |
See Bug 28601: https://bugs.llvm.org//show_bug.cgi?id=28601
Reviewers: artem.tamazov, vpykhtin
Differential Revision: https://reviews.llvm.org/D33542
llvm-svn: 304309
|
| |
|
|
|
|
| |
It improves performance on Cortex-A53.
llvm-svn: 304307
|
| |
|
|
|
|
| |
It improves performance on Cortex-A73.
llvm-svn: 304304
|
| |
|
|
|
|
|
|
| |
Patch by Nicholas Wilson!
Differential Revision: https://reviews.llvm.org/D33627
llvm-svn: 304300
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Correct references to alignment of store which may be deleted in a
previous iteration of merge. Instead use first store that would be
merged.
Corrects pr33172's use-after-poison caught by ASan.
Reviewers: spatel, hfinkel, RKSimon
Reviewed By: RKSimon
Subscribers: thegameg, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D33686
llvm-svn: 304299
|
| |
|
|
|
|
|
|
|
|
| |
There are some VectorShuffle Nodes in SDAG which can be selected to XXPERMDI
Instruction, this patch recognizes them and does the selection to improve
the PPC performance.
Differential Revision: https://reviews.llvm.org/D33404
llvm-svn: 304298
|
| |
|
|
| |
llvm-svn: 304291
|
| |
|
|
|
|
|
|
|
| |
This patch builds upon https://reviews.llvm.org/rL302810 to add
handling for the 64-bit SETEQ patterns.
Differential Revision: https://reviews.llvm.org/D33369
llvm-svn: 304286
|
| |
|
|
|
|
|
| |
When generating code for a shift loop, check the shift
amount against the literal value 0, not R0
llvm-svn: 304284
|
| |
|
|
|
|
| |
(https://github.com/avr-rust/rust/issues/50)
llvm-svn: 304283
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch builds upon https://reviews.llvm.org/rL302810 to add
handling for bitwise logical operations in general purpose registers.
The idea is to keep the values in GPRs as long as possible - only
extracting them to a condition register bit when no further operations
are to be done.
Differential Revision: https://reviews.llvm.org/D31851
llvm-svn: 304282
|
| |
|
|
|
|
| |
the const versions to avoid duplicate code. NFC
llvm-svn: 304281
|
| |
|
|
|
|
| |
reduce duplicate code.
llvm-svn: 304280
|
| |
|
|
|
|
|
|
|
| |
The code was a mess and disorganized due to the sheer amount
of it being in one file. So I'm splitting this into three files.
One for CodeView types, one for CodeView symbols, and one for
CodeView debug subsections. NFC.
llvm-svn: 304278
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Fixes: https://bugs.llvm.org/show_bug.cgi?id=33226
Reviewers: chandlerc, davide, majnemer, dblaikie
Reviewed By: chandlerc
Subscribers: EricWF, llvm-commits
Differential Revision: https://reviews.llvm.org/D33701
llvm-svn: 304277
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
The frame pointer (when used as frame pointer) is a reserved register.
We do not track liveness of reserved registers and hence do not need to
add them to the basic block livein lists.
llvm-svn: 304274
|
| |
|
|
| |
llvm-svn: 304273
|
| |
|
|
|
|
| |
generate a phi of ops, which we don't currently support.
llvm-svn: 304272
|
| |
|
|
| |
llvm-svn: 304271
|
| |
|
|
|
|
| |
already does them
llvm-svn: 304270
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This test assumes that llc can infer a default triple. I'm not sure why
exactly, but the Verify MachineInstrs bot requires tests to be explicit
about this dependency.
This commit follows the lead from r248452 and adds in 'REQUIRES:
default_triple' to omit-empty.ll.
Bot URL: http://lab.llvm.org:8080/green/job/Verify-Machineinstrs_AArch64/7500
llvm-svn: 304269
|
| |
|
|
| |
llvm-svn: 304268
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the equivalent of r304048 for ARM:
- Rewrite livein calculation to use the computeLiveIns() helper
function. This is slightly less efficient but easier to reason about
and doesn't unnecessarily add pristine and reserved registers[1]
- Zero the status register at the beginning of the loop to make sure it
has a defined value.
- Remove kill flags of values that need to stay alive throughout the loop.
[1] An upcoming commit of mine will tighten the MachineVerifier to catch
these.
llvm-svn: 304267
|
| |
|
|
| |
llvm-svn: 304266
|
| |
|
|
|
|
| |
warnings; other minor fixes (NFC).
llvm-svn: 304265
|
| |
|
|
| |
llvm-svn: 304264
|
| |
|
|
|
|
|
|
|
|
|
|
| |
CodeViewYAML.h attempts to hide the details of many of the
CodeView yaml structures and types, but at the same time it
exposes the mapping traits for them to external users of the
header.
This patch just hides these in the implementation files so that
the interface is kept as simple as possible.
llvm-svn: 304263
|
| |
|
|
| |
llvm-svn: 304262
|
| |
|
|
| |
llvm-svn: 304259
|
| |
|
|
| |
llvm-svn: 304257
|
| |
|
|
|
|
|
|
| |
This continues the effort to get the CodeView YAML parsing logic
into ObjectYAML. After this patch, the only missing piece will
be the CodeView debug symbol subsections.
llvm-svn: 304256
|
| |
|
|
| |
llvm-svn: 304255
|
| |
|
|
|
|
|
|
| |
This was introduced a long time ago in r86583 when regmask operands
didn't exist. Nowadays the behavior hurts more than it helps. This
removes it.
llvm-svn: 304254
|
| |
|
|
|
|
| |
which isn't support before c++11.
llvm-svn: 304252
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
AntiDepBreaker intends to add all live-outs, including the implicit
CSRs, in StartBlock. r299124 was done without understanding that
intention.
Now with the live-ins propagated correctly (D32464), we can revert this change.
Reviewers: MatzeB, qcolombet
Subscribers: nemanjai, llvm-commits
Differential Revision: https://reviews.llvm.org/D33697
llvm-svn: 304251
|
| |
|
|
|
|
| |
I think I hadn't git pulled recently enough to bring it in.
llvm-svn: 304250
|
| |
|
|
| |
llvm-svn: 304249
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the beginning of an effort to move the codeview yaml
reader / writer into ObjectYAML so that it can be shared.
Currently the only consumer / producer of CodeView YAML is
llvm-pdbdump, but CodeView can exist outside of PDB files, and
indeed is put into object files and passed to the linker to
produce PDB files. Furthermore, there are subtle differences
in the types of records that show up in object file CodeView
vs PDB file CodeView, but they are otherwise 99% the same.
By having this code in ObjectYAML, we can have llvm-pdbdump
reuse this code, while teaching obj2yaml and yaml2obj to use
this syntax for dealing with object files that can contain
CodeView.
This patch only adds support for CodeView type information
to ObjectYAML. Subsequent patches will add support for
CodeView symbol information.
llvm-svn: 304248
|
| |
|
|
|
|
|
|
|
|
|
| |
TargetPassConfig is not useful for targets that do not use the CodeGen
library, so we may just as well store a pointer to an
LLVMTargetMachine instead of just to a TargetMachine.
While at it, also change the constructor to take a reference instead of a
pointer as the TM must not be nullptr.
llvm-svn: 304247
|
| |
|
|
|
|
|
| |
We can infer this from the incoming MIR, so there's no reason to
represent it with a special flag.
llvm-svn: 304246
|
| |
|
|
|
|
|
|
| |
region.
Differential Revision: http://reviews.llvm.org/D33618
llvm-svn: 304245
|
| |
|
|
|
|
|
|
|
| |
There is no guarantee that the first use of a constant that is traversed
is actually the first in the related basic block. Thus, if we use that
as the insertion point we may end up with definitions that don't
dominate there use.
llvm-svn: 304244
|
| |
|
|
|
|
|
|
| |
This will fail if you configure with e.g. -Wno-unknown-warning-option.
Change it to check for 'warning:' just like we did for 'error:' in
r289484.
llvm-svn: 304239
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r303763 caused build failures in some out-of-tree tests due to an assertion in
TTI. The original patch updated cost estimates for induction variable update
instructions marked for scalarization. However, it didn't consider that the
incoming value of an induction variable phi node could be a cast instruction.
This caused queries for cast instruction costs with a mix of vector and scalar
types. This patch includes a fix for cast instructions and the test case from
PR33193.
The fix was suggested by Jonas Paulsson <paulsson@linux.vnet.ibm.com>.
Reference: https://bugs.llvm.org/show_bug.cgi?id=33193
Original Differential Revision: https://reviews.llvm.org/D33457
llvm-svn: 304235
|