| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses
llvm-svn: 144100
|
| |
|
|
|
|
| |
no pattern.
llvm-svn: 142130
|
| |
|
|
|
|
| |
v2i64; CellSPU/shift_ops.ll fails when promoting elements.
llvm-svn: 142081
|
| |
|
|
| |
llvm-svn: 141075
|
| |
|
|
|
| |
Test: CellSPU/v2i32.ll when running with -promote-elements
llvm-svn: 141074
|
| |
|
|
|
|
|
|
|
|
|
|
| |
with a vector condition); such selects become VSELECT codegen nodes.
This patch also removes VSETCC codegen nodes, unifying them with SETCC
nodes (codegen was actually often using SETCC for vector SETCC already).
This ensures that various DAG combiner optimizations kick in for vector
comparisons. Passes dragonegg bootstrap with no testsuite regressions
(nightly testsuite as well as "make check-all"). Patch mostly by
Nadav Rotem.
llvm-svn: 139159
|
| |
|
|
|
|
| |
when building with assertions disabled.
llvm-svn: 137460
|
| |
|
|
| |
llvm-svn: 136283
|
| |
|
|
| |
llvm-svn: 135375
|
| |
|
|
|
|
| |
registeration and creation code into XXXMCDesc libraries.
llvm-svn: 135184
|
| |
|
|
|
|
| |
is to use this for architectures that have a native FMA instruction.
llvm-svn: 134742
|
| |
|
|
|
|
|
|
| |
No functional change.
Part of PR6965
llvm-svn: 132763
|
| |
|
|
|
|
| |
Part of rdar://9119939
llvm-svn: 132510
|
| |
|
|
|
|
| |
verifier failures in the CodeGen/CellSPU tests.
llvm-svn: 131631
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 131012
|
| |
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
| |
|
|
|
|
| |
the type of the LHS.
llvm-svn: 126518
|
| |
|
|
|
|
|
|
|
|
|
| |
LiveIns."
In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body.
This requires some coordination with debugger to get this working.
- The debugger needs to be aware of prolog_end attribute attached with line table entries.
- The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+)
llvm-svn: 126155
|
| |
|
|
| |
llvm-svn: 124611
|
| |
|
|
| |
llvm-svn: 123912
|
| |
|
|
| |
llvm-svn: 123707
|
| |
|
|
| |
llvm-svn: 123620
|
| |
|
|
|
|
| |
and fixes here and there.
llvm-svn: 123170
|
| |
|
|
|
|
|
| |
something that just glues two nodes together, even if it is
sometimes used for flags.
llvm-svn: 122310
|
| |
|
|
| |
llvm-svn: 120092
|
| |
|
|
|
|
| |
shifts.
llvm-svn: 120022
|
| |
|
|
| |
llvm-svn: 119990
|
| |
|
|
|
|
|
| |
In the attached testcase, the element was
never extracted (missing rotate).
llvm-svn: 119973
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 119142
|
| |
|
|
|
|
|
|
|
|
|
|
| |
support for the case where alignment<value size.
These cases were silently miscompiled before this patch.
Now they are overly verbose -especially storing is- and
any front-end should still avoid misaligned memory
accesses as much as possible. The bit juggling algorithm
added here probably has some room for improvement still.
llvm-svn: 118889
|
| |
|
|
|
|
|
| |
with a SimpleValueType, while an EVT supports equality and
inequality comparisons with SimpleValueType.
llvm-svn: 118169
|
| |
|
|
|
|
| |
basic logic, added initial platform support.
llvm-svn: 117667
|
| |
|
|
|
|
|
|
| |
The old algorithm inserted a 'rotqmbyi' instruction which was
both redundant and wrong - it made shufb select bytes from the
wrong end of the input quad.
llvm-svn: 116701
|
| |
|
|
|
|
|
|
|
|
| |
Before the implementation of isLegalAddressingMode, some rare cases
of code were miscompiled if optimized with the LoopStrengthReduce pass.
It is unclear (to me) if LSR is "allowed" to produce wrong code with a
bad TargetLowering, or if the bug is elsewhere and this patch just
hides it.
llvm-svn: 115919
|
| |
|
|
| |
llvm-svn: 114461
|
| |
|
|
|
|
|
|
| |
"getFixedStack" on the MachinePointerInfo class. While
this isn't the problem I'm setting out to solve, it is the
right way to eliminate PseudoSourceValue, so lets go with it.
llvm-svn: 114406
|
| |
|
|
| |
llvm-svn: 113478
|
| |
|
|
|
|
| |
Some cases of lowering to rotate were miscompiled.
llvm-svn: 113355
|
| |
|
|
|
|
| |
The IDX was treated as byte index, not element index.
llvm-svn: 112422
|
| |
|
|
|
|
| |
llc used to assert on the added testcase.
llvm-svn: 111911
|
| |
|
|
|
|
| |
from 64bit vector support.
llvm-svn: 111910
|
| |
|
|
|
|
|
| |
The previous algorithm in LowerVECTOR_SHUFFLE
didn't check all requirements for "monotonic" shuffles.
llvm-svn: 111361
|
| |
|
|
|
|
|
|
| |
The "half vectors" are now widened to full size by the legalizer.
The only exception is in parameter passing, where half vectors are
expanded. This causes changes to some dejagnu tests.
llvm-svn: 111360
|
| |
|
|
| |
llvm-svn: 110576
|
| |
|
|
|
|
| |
store for "half vectors"
llvm-svn: 110198
|
| |
|
|
| |
llvm-svn: 110038
|
| |
|
|
|
|
|
|
| |
duplicate the instructions and operate on half vectors.
Also reorder code in SPUInstrInfo.td for better coherency.
llvm-svn: 110037
|
| |
|
|
|
|
|
|
|
|
| |
such registers in SPU, this support boils down to "emulating"
them by duplicating instructions on the general purpose registers.
This adds the most basic operations on v2i32: passing parameters,
addition, subtraction, multiplication and a few others.
llvm-svn: 110035
|
| |
|
|
|
|
| |
to a Tablegen implementation.
llvm-svn: 107913
|
| |
|
|
|
|
| |
code can do calling-convention queries. This obviates OutputArgReg.
llvm-svn: 107786
|