| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
At present the only shuffle with a variable mask we recognise is PSHUFB, which influences if its worth the cost of mask creation/loading of a combined target shuffle with a variable mask. This change sets up the infrastructure to support other shuffles in the future but has no effect yet.
llvm-svn: 275059
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Preserve assembly comments from input in output assembly and flags to
toggle property. This is on by default for inline assembly and off in
llvm-mc.
Parsed comments are emitted immediately before an EOL which generally
places them on the expected line.
Reviewers: rtrieu, dwmw2, rnk, majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20020
llvm-svn: 275058
|
| |
|
|
|
|
|
|
|
|
| |
Fixes issue mentioned at:
https://github.com/RadeonOpenCompute/LLVM-AMDGPU-Assembler-Extra/issues/13.
Lit tests added.
Differential Revision: http://reviews.llvm.org/D22133
llvm-svn: 275054
|
| |
|
|
|
|
|
|
| |
SWC2 instructions and add CodeGen support
Differential Revision: http://reviews.llvm.org/D18824
llvm-svn: 275050
|
| |
|
|
|
|
|
|
| |
DAG lowering was missing for the scalar FMINC, FMAXC nodes.
The nodes are generated only in the "unsafe-fp-math" mode.
Added tests.
llvm-svn: 275048
|
| |
|
|
|
|
| |
survive long enough to allow the matching.
llvm-svn: 275046
|
| |
|
|
|
|
| |
vectors.
llvm-svn: 275045
|
| |
|
|
|
|
|
|
| |
marked for CanFoldAsLoad.
I don't really know how to test this.
llvm-svn: 275044
|
| |
|
|
|
|
| |
Reverting r275027 and r275033. These seem to cause miscompiles on the AArch64 buildbot.
llvm-svn: 275042
|
| |
|
|
|
|
|
|
|
| |
For functions which are known to return a specific argument, pointer-comparison
folding can look through the function calls as part of its analysis.
Differential Revision: http://reviews.llvm.org/D9387
llvm-svn: 275039
|
| |
|
|
|
|
|
|
|
| |
For functions which are known to return their argument,
isDereferenceableAndAlignedPointer can examine the argument value.
Differential Revision: http://reviews.llvm.org/D9384
llvm-svn: 275038
|
| |
|
|
|
|
|
|
|
| |
When building SCEVs, if a function is known to return its argument, then we can
build the SCEV using the corresponding argument value.
Differential Revision: http://reviews.llvm.org/D9381
llvm-svn: 275037
|
| |
|
|
|
|
|
|
|
| |
If a function is known to return one of its arguments, we can use that in order
to compute known bits of the return value.
Differential Revision: http://reviews.llvm.org/D9397
llvm-svn: 275036
|
| |
|
|
|
|
|
|
|
|
|
| |
Motivated by the work on the llvm.noalias intrinsic, teach BasicAA to look
through returned-argument functions when answering queries. This is essential
so that we don't loose all other AA information when supplementing with
llvm.noalias.
Differential Revision: http://reviews.llvm.org/D9383
llvm-svn: 275035
|
| |
|
|
|
|
|
| |
Suggested post-commit by David Majnemer on IRC (following-up on a pre-commit
review comment).
llvm-svn: 275033
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to make the optimizer smarter about using the 'returned' argument
attribute (generally, but motivated by my llvm.noalias intrinsic work), add a
utility function to Call/InvokeInst, and CallSite, to make it easy to get the
returned call argument (when one exists).
P.S. There is already an unfortunate amount of code duplication between
CallInst and InvokeInst, and this adds to it. We should probably clean that up
separately.
Differential Revision: http://reviews.llvm.org/D22204
llvm-svn: 275031
|
| |
|
|
|
|
| |
Calls to matchVectorShuffleAsInsertPS only need to ensure the inputs are 128-bit vectors. Only lowerVectorShuffleAsInsertPS needs to ensure that they are v4f32.
llvm-svn: 275028
|
| |
|
|
|
|
|
|
|
|
| |
A function can have one argument with the 'returned' attribute, indicating that
the associated argument is always the return value of the function. Add
FuncAttrs inference logic.
Differential Revision: http://reviews.llvm.org/D22202
llvm-svn: 275027
|
| |
|
|
| |
llvm-svn: 275025
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21622
llvm-svn: 275024
|
| |
|
|
| |
llvm-svn: 275022
|
| |
|
|
| |
llvm-svn: 275021
|
| |
|
|
| |
llvm-svn: 275017
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds a new SystemZ-specific intrinsic, llvm.s390.tdc.f(32|64|128),
which maps straight to the test data class instructions. A new IR pass
is added to recognize instructions that can be converted to TDC and
perform the necessary replacements.
Differential Revision: http://reviews.llvm.org/D21949
llvm-svn: 275016
|
| |
|
|
| |
llvm-svn: 275015
|
| |
|
|
| |
llvm-svn: 275014
|
| |
|
|
| |
llvm-svn: 275011
|
| |
|
|
|
|
|
|
| |
Some abstractions in LLVM "know" that they are reading in-bounds,
FixedStreamArray, and provide a simple result. This breaks down if the
stream map is bogus.
llvm-svn: 275010
|
| |
|
|
|
|
|
| |
PDBFile::getBlockData didn't really return any indication that it
failed. It merely returned an empty buffer.
llvm-svn: 275009
|
| |
|
|
|
|
|
|
|
|
| |
In the solver, isUndefined() does really mean "we don't know the
value yet" rather than "this is an UndefinedValue". Discussed with
Eli Friedman.
Differential Revision: http://reviews.llvm.org/D22192
llvm-svn: 275004
|
| |
|
|
| |
llvm-svn: 275000
|
| |
|
|
|
|
|
|
|
| |
This code was already commented out and it made some weird assumptions,
e.g. using isUndefined() as "this value is UndefValue" instead of
"we haven't computed this value is yet". Thanks to Eli Friedman for
pointing out where I was wrong (and where this code was wrong).
llvm-svn: 274995
|
| |
|
|
| |
llvm-svn: 274990
|
| |
|
|
| |
llvm-svn: 274988
|
| |
|
|
|
|
|
| |
There exists no relocation which can describe the address of a
dllimported variable: do not try to describe their location.
llvm-svn: 274986
|
| |
|
|
|
|
|
|
|
| |
ConstantInt::getSExtValue may fail on >64-bit integers. Add checks to call
getSExtValue only on narrow integers.
As a minor aside, simplify slsr-gep.ll to remove unnecessary load instructions.
llvm-svn: 274982
|
| |
|
|
| |
llvm-svn: 274981
|
| |
|
|
|
|
| |
predicate operand to ShiftRR
llvm-svn: 274980
|
| |
|
|
| |
llvm-svn: 274979
|
| |
|
|
| |
llvm-svn: 274978
|
| |
|
|
|
|
| |
No functionality change intended.
llvm-svn: 274973
|
| |
|
|
| |
llvm-svn: 274970
|
| |
|
|
|
|
| |
Also fix test not actually using function labels.
llvm-svn: 274969
|
| |
|
|
| |
llvm-svn: 274966
|
| |
|
|
|
|
|
| |
Chandler pointed out in his review but I forgot to remove before
committing, my bad.
llvm-svn: 274963
|
| |
|
|
| |
llvm-svn: 274962
|
| |
|
|
|
|
|
| |
`const` was dropped by r274958, and the lack of `const` makes GCC6
(correctly) complain.
llvm-svn: 274961
|
| |
|
|
| |
llvm-svn: 274960
|
| |
|
|
|
|
|
|
|
| |
While here move simplifyLoop() function to the new header, as
suggested by Chandler in the review.
Differential Revision: http://reviews.llvm.org/D21404
llvm-svn: 274959
|
| |
|
|
|
|
|
|
| |
Patch by Jia Chen.
Differential Revision: http://reviews.llvm.org/D22022
llvm-svn: 274958
|