| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
I think this converts all the simple cases that really just care about
the generated code being position independent or not. The remaining
uses are a bit more complicated and are checking things like "is this
a library or executable" or "can this symbol be preempted".
llvm-svn: 274055
|
| |
|
|
| |
llvm-svn: 274039
|
| |
|
|
| |
llvm-svn: 274036
|
| |
|
|
| |
llvm-svn: 274034
|
| |
|
|
| |
llvm-svn: 274033
|
| |
|
|
|
|
|
|
|
|
|
| |
The original implementation attempted to zero registers using
XOR %foo, %foo. This is problematic because it constitutes a
read-modify-write of a register which might not be defined.
Instead, use MOV32r0 to avoid these problems; expandPostRAPseudo does
the right thing here.
llvm-svn: 274024
|
| |
|
|
|
|
|
|
| |
It already has access to it.
While at it, rename it to isGVIndirectSymbol.
llvm-svn: 274023
|
| |
|
|
| |
llvm-svn: 274022
|
| |
|
|
| |
llvm-svn: 274021
|
| |
|
|
| |
llvm-svn: 274020
|
| |
|
|
|
|
|
|
| |
This fixes PR27102.
Differential Revision: http://reviews.llvm.org/D18541
llvm-svn: 274017
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
AVX1 can only broadcast vectors as floats/doubles, so for 256-bit vectors we insert bitcasts if we are shuffling v8i32/v4i64 types. Unfortunately the presence of these bitcasts prevents the current broadcast lowering code from peeking through cases where we have concatenated / extracted vectors to create the 256-bit vectors.
This patch allows us to peek through bitcasts as long as the number of elements doesn't change (i.e. element bitwidth is the same) so the broadcast index is not affected.
Note this bitcast peek is different from the stage later on which doesn't care about the type and is just trying to find a load node.
As we're being more aggressive with bitcasts, we also need to ensure that the broadcast type is correctly bitcasted
Differential Revision: http://reviews.llvm.org/D21660
llvm-svn: 274013
|
| |
|
|
| |
llvm-svn: 274009
|
| |
|
|
| |
llvm-svn: 274005
|
| |
|
|
|
|
|
|
|
|
|
|
| |
(V)PSHUFD/VPERMILPD/VPERMILPS immediate permutes
This patch allows target shuffles to be combined to single input immediate permute instructions - (V)PSHUFD/VPERMILPD/VPERMILPS - allowing more general pattern matching than what we current do and improves the likelihood of memory folding compared to existing patterns which tend to reuse the input in multiple arguments.
Further permute instructions (V)PSHUFLW/(V)PSHUFHW/(V)PERMQ/(V)PERMPD may be added in the future but its proven tricky to create tests cases for them so far. (V)PSHUFLW/(V)PSHUFHW is already handled quite well in combineTargetShuffle so it may be that removing some of that code may allow us to perform more of the combining in one place without duplication.
Differential Revision: http://reviews.llvm.org/D21148
llvm-svn: 273999
|
| |
|
|
|
|
| |
Bonus changes, * placement in X86ISelLowering and 'exerce' -> 'exercise' in test.
llvm-svn: 273984
|
| |
|
|
|
|
|
| |
This was producing acceses to registers beyond the super
register's limits, resulting in verifier failures.
llvm-svn: 273977
|
| |
|
|
| |
llvm-svn: 273975
|
| |
|
|
| |
llvm-svn: 273964
|
| |
|
|
|
|
| |
Thanks to Benjamin Kramer for noticing.
llvm-svn: 273959
|
| |
|
|
|
|
| |
Should fix the shared library build.
llvm-svn: 273958
|
| |
|
|
|
|
| |
This change reverts a "false" test that was placed to avoid regressions while the atomics pass was completed for the Sparc back-ends.
llvm-svn: 273949
|
| |
|
|
|
|
| |
Not sure this actually changes anything
llvm-svn: 273947
|
| |
|
|
| |
llvm-svn: 273945
|
| |
|
|
|
|
| |
In all its uses it was equivalent to IsNotPIC.
llvm-svn: 273943
|
| |
|
|
| |
llvm-svn: 273940
|
| |
|
|
| |
llvm-svn: 273937
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: jingyue, jlebar
Subscribers: jholewinski
Differential Revision: http://reviews.llvm.org/D21756
llvm-svn: 273922
|
| |
|
|
|
|
| |
Fixes a fixme about handling other visibilities.
llvm-svn: 273921
|
| |
|
|
|
|
| |
Also fix pointlessly adding exec to liveins.
llvm-svn: 273916
|
| |
|
|
| |
llvm-svn: 273907
|
| |
|
|
| |
llvm-svn: 273903
|
| |
|
|
| |
llvm-svn: 273900
|
| |
|
|
|
|
|
|
| |
Fixed a bug in EmitTest() function in combining shl + icmp.
https://llvm.org/bugs/show_bug.cgi?id=28119
llvm-svn: 273899
|
| |
|
|
| |
llvm-svn: 273896
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Created a pattern to match 64-bit mode (and (xor x, -1), y)
to a shorter sequence of instructions.
Before the change, the canonical form is translated to:
xihf %r3, 4294967295
xilf %r3, 4294967295
ngr %r2, %r3
After the change, the canonical form is translated to:
ngr %r3, %r2
xgr %r2, %r3
Reviewers: zhanjunl, uweigand
Subscribers: llvm-commits
Author: assem
Committing on behalf of Assem.
Differential Revision: http://reviews.llvm.org/D21693
llvm-svn: 273887
|
| |
|
|
| |
llvm-svn: 273885
|
| |
|
|
|
|
|
|
| |
Reviewers: vkalintiris, dsanders
Differential Review: http://reviews.llvm.org/D21679
llvm-svn: 273883
|
| |
|
|
| |
llvm-svn: 273879
|
| |
|
|
| |
llvm-svn: 273878
|
| |
|
|
|
|
| |
Use it in ppc too.
llvm-svn: 273877
|
| |
|
|
|
|
| |
Differential Review: http://reviews.llvm.org/rL273108
llvm-svn: 273876
|
| |
|
|
| |
llvm-svn: 273875
|
| |
|
|
|
|
|
|
| |
Same as r273556, but with C++11 member initializers.
Change suggested by Matthias Braun (see http://reviews.llvm.org/D21432).
llvm-svn: 273873
|
| |
|
|
| |
llvm-svn: 273872
|
| |
|
|
|
|
| |
It now takes a IsPIC flag instead of computing and returning it.
llvm-svn: 273871
|
| |
|
|
| |
llvm-svn: 273870
|
| |
|
|
| |
llvm-svn: 273868
|
| |
|
|
| |
llvm-svn: 273860
|
| |
|
|
| |
llvm-svn: 273859
|