| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 99831
|
|
|
|
|
|
|
| |
Most of these were unused, some of them were wrong and unused (isS16Constant<short>,
isS10Constant<short>).
llvm-svn: 99827
|
|
|
|
|
|
|
|
| |
"the bigstack patch for SPU, with testcase. It is essentially the patch committed as 97091, and reverted as 97099, but with the following additions:
-in vararg handling, registers are marked to be live, to not confuse the register scavenger
-function prologue and epilogue are not emitted, if the stack size is 16. 16 means it is empty - there is only the register scavenger emergency spill slot, which is not used as there is no stack."
llvm-svn: 99819
|
|
|
|
| |
llvm-svn: 99818
|
|
|
|
|
|
|
|
| |
AsmPrinter.cpp.
This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions.
llvm-svn: 99816
|
|
|
|
| |
llvm-svn: 99815
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These instructions use byte index in a control vector (M:Vm) to lookup byte
values in a table and generate a new vector (D:Vd). The table is specified via
a list of vectors, which can be:
{Dn}
{Dn D<n+1>}
{Dn D<n+1> D<n+2>}
{Dn D<n+1> D<n+2> D<n+3>}
llvm-svn: 99789
|
|
|
|
| |
llvm-svn: 99778
|
|
|
|
| |
llvm-svn: 99774
|
|
|
|
| |
llvm-svn: 99772
|
|
|
|
| |
llvm-svn: 99770
|
|
|
|
|
|
|
|
|
| |
Otherwise, e.g. in the invocation like clang -DFOO=\"bar\" FOO macro
got the bar value, not "bar".
Patch by Alexander Esilevich!
llvm-svn: 99763
|
|
|
|
| |
llvm-svn: 99760
|
|
|
|
|
|
|
|
|
|
| |
and those derived from them. These are obnoxious because
they were written as: PatLeaf<(bitconvert). Not having an
argument was foiling adding better type checking for operand
count matching up with what was required (in this case,
bitconvert always requires an operand!)
llvm-svn: 99759
|
|
|
|
|
|
| |
matchable: it seems like it would always constant fold.
llvm-svn: 99758
|
|
|
|
|
|
|
| |
this also depends on the new "bitconvert dropping" behavior just
added to tblgen.
llvm-svn: 99757
|
|
|
|
| |
llvm-svn: 99755
|
|
|
|
|
|
|
|
|
| |
input to be v8i8 or v16i8, which buildvectors get canonicalized to.
This allows the patterns that were previously using a bare 'vnot' to
match, before they couldn't.
llvm-svn: 99754
|
|
|
|
|
|
|
| |
patterns that would never match because of bitcast, and eliminating use
of vnot_conv.
llvm-svn: 99753
|
|
|
|
| |
llvm-svn: 99750
|
|
|
|
|
|
| |
*input* of other type, which is the VT.
llvm-svn: 99749
|
|
|
|
| |
llvm-svn: 99748
|
|
|
|
| |
llvm-svn: 99743
|
|
|
|
| |
llvm-svn: 99742
|
|
|
|
|
|
| |
are cleaned up, we can remove an old fixme.
llvm-svn: 99741
|
|
|
|
|
|
|
| |
1, 1 cases which are by-far the most frequent. This shrinks the X86
isel table from 77014 -> 74657 bytes.
llvm-svn: 99740
|
|
|
|
|
|
|
| |
can cause a crash on crazy situations in msp430 when morph-node-to
is disabled.
llvm-svn: 99739
|
|
|
|
|
|
| |
their flags correctly.
llvm-svn: 99738
|
|
|
|
| |
llvm-svn: 99737
|
|
|
|
|
|
| |
nodes all have an EFLAGS result when made by isel lowering.
llvm-svn: 99736
|
|
|
|
|
|
| |
list multiple times when MorphNodeTo can't be applied.
llvm-svn: 99735
|
|
|
|
|
|
|
|
| |
Type::destroy(), so it got skipped for FunctionTypes, StructTypes, and
UnionTypes. This fixes the resulting leaks in test/Feature/opaquetypes.ll and
test/Integer/opaquetypes_bt.ll.
llvm-svn: 99732
|
|
|
|
|
|
| |
scope due to obviously false predicate.
llvm-svn: 99723
|
|
|
|
|
|
|
| |
pointer. There was also a SmallPtrSet whose settiness wasn't being used, so I
changed it to a SmallVector.
llvm-svn: 99713
|
|
|
|
| |
llvm-svn: 99711
|
|
|
|
|
|
| |
MemoizedResultChart.
llvm-svn: 99710
|
|
|
|
|
|
| |
freeing that memory when the GV is destroyed.
llvm-svn: 99706
|
|
|
|
| |
llvm-svn: 99705
|
|
|
|
| |
llvm-svn: 99704
|
|
|
|
| |
llvm-svn: 99700
|
|
|
|
|
|
|
| |
of the previous load - it's usually important. For example, we don't want
to blindly turn an unaligned load into an aligned one.
llvm-svn: 99699
|
|
|
|
| |
llvm-svn: 99697
|
|
|
|
| |
llvm-svn: 99695
|
|
|
|
|
|
| |
converted, then use the initializer, since using the name itself won't work.
llvm-svn: 99692
|
|
|
|
|
|
|
|
|
|
|
|
| |
it as the format for the appropriate N3V*SL*<> classes. These instructions
require special handling of the M:Vm field which encodes the restricted Dm and
the lane index within Dm.
Examples are A8.6.325 VMLA, VMLAL, VMLS, VMLSL (by scalar):
vmlal.s32 q3, d2, d10[0]
llvm-svn: 99690
|
|
|
|
| |
llvm-svn: 99686
|
|
|
|
|
|
|
| |
through to the generic version. The generic functions use STR/LDR, but T2
needs the t2STR/t2LDR instead so we get the addressing mode correct.
llvm-svn: 99678
|
|
|
|
|
|
| |
Kees van Reeuwijk for PR6704
llvm-svn: 99677
|
|
|
|
|
|
|
| |
to now take a format argument. N3VDInt<> and N3VQInt<> are modified to take a
format argument as well.
llvm-svn: 99676
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'invoke' instruction. You will get a situation like this:
bb:
%ehptr = eh.exception()
%sel = eh.selector(%ehptr, @per, 0);
...
bb2:
invoke _Unwind_Resume_or_Rethrow(%ehptr) %normal unwind to %lpad
lpad:
...
The unwinder will see the %sel call as a clean-up and, if it doesn't have a
catch further up the call stack, it will skip running it. But there *is* another
catch up the stack -- the catch for the %lpad. However, we can't see that. This
is fixed in code-gen, where we detect this situation, and convert the "clean-up"
selector call into a "catch-all" selector call. This gives us the correct
semantics.
llvm-svn: 99671
|