| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Also remove some code that died in the process.
One now non-existant ori is checked for.
llvm-svn: 115306
|
|
|
|
| |
llvm-svn: 115005
|
|
|
|
| |
llvm-svn: 114999
|
|
|
|
|
|
|
|
|
|
|
| |
passed the root of the match, even though only a few patterns
actually needed this (one in X86, several in ARM [which should
be refactored anyway], and some in CellSPU that I don't feel
like detangling). Instead of requiring all ComplexPatterns to
take the dead root, have targets opt into getting the root by
putting SDNPWantRoot on the ComplexPattern.
llvm-svn: 114471
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cleans up after the mess r108567 left in the CellSPU backend.
ORCvt-instruction were used to reinterpret registers, and the ORs were then
removed by isMoveInstr(). This patch now removes 350 instrucions of format:
or $3, $3, $3
(from the 52 testcases in CodeGen/CellSPU). One case of a nonexistant or is
checked for.
Some moves of the form 'ori $., $., 0' and 'ai $., $., 0' still remain.
llvm-svn: 114074
|
|
|
|
|
|
|
|
|
|
|
| |
take multiple cycles to decode.
For the current if-converter clients (actually only ARM), the instructions that
are predicated on false are not nops. They would still take machine cycles to
decode. Micro-coded instructions such as LDM / STM can potentially take multiple
cycles to decode. If-converter should take treat them as non-micro-coded
simple instructions.
llvm-svn: 113570
|
|
|
|
| |
llvm-svn: 113478
|
|
|
|
|
|
| |
Some cases of lowering to rotate were miscompiled.
llvm-svn: 113355
|
|
|
|
| |
llvm-svn: 113073
|
|
|
|
| |
llvm-svn: 112955
|
|
|
|
|
|
| |
The IDX was treated as byte index, not element index.
llvm-svn: 112422
|
|
|
|
|
|
| |
to try to re-use scavenged frame index reference registers. rdar://8277890
llvm-svn: 112241
|
|
|
|
| |
llvm-svn: 112073
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
"SPU Application Binary Interface Specification, v1.9" by
IBM.
Specifically: use r3-r74 to pass parameters and the return value.
llvm-svn: 111358
|
|
|
|
| |
llvm-svn: 111241
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 108567
|
|
|
|
|
|
| |
thus is a much more meaningful name.
llvm-svn: 108563
|
|
|
|
| |
llvm-svn: 108366
|
|
|
|
|
|
|
|
| |
The only folding these load/store architectures can do is converting COPY into a
load or store, and the target independent part of foldMemoryOperand already
knows how to do that.
llvm-svn: 108099
|
|
|
|
| |
llvm-svn: 108084
|
|
|
|
|
|
| |
to a Tablegen implementation.
llvm-svn: 107913
|
|
|
|
|
|
| |
code can do calling-convention queries. This obviates OutputArgReg.
llvm-svn: 107786
|
|
|
|
| |
llvm-svn: 107710
|
|
|
|
| |
llvm-svn: 107622
|
|
|
|
|
|
| |
slots so it's always false.
llvm-svn: 107550
|
|
|
|
| |
llvm-svn: 107127
|
|
|
|
|
|
|
|
|
| |
for an "i" constraint should get lowered; PR 6309. While
this argument was passed around a lot, this is the only
place it was used, so it goes away from a lot of other
places.
llvm-svn: 106893
|
|
|
|
| |
llvm-svn: 106428
|
|
|
|
|
|
|
|
|
| |
This allows the fast regiser allocator to remove redundant
register moves.
Update a set of tests that depend on the register allocator
to be linear scan.
llvm-svn: 106420
|
|
|
|
| |
llvm-svn: 106419
|
|
|
|
|
|
|
| |
used to choke llc with the attached test.
llvm-svn: 106411
|
|
|
|
| |
llvm-svn: 106279
|
|
|
|
|
|
|
|
|
|
|
|
| |
addresses a longstanding deficiency noted in many FIXMEs scattered
across all the targets.
This effectively moves the problem up one level, replacing eleven
FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
through FastISel where we actually supply a DebugLoc, fixing Radar
7421831.
llvm-svn: 106243
|
|
|
|
|
|
| |
We default to inserting to lane 0.
llvm-svn: 105722
|
|
|
|
|
|
| |
random load/store, rather than crashing llc.
llvm-svn: 105710
|
|
|
|
|
|
|
| |
Discussed here:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-June/032107.html
llvm-svn: 105601
|
|
|
|
| |
llvm-svn: 105322
|
|
|
|
| |
llvm-svn: 105269
|
|
|
|
|
|
| |
TargetMachine.h and put it in its own namespace.
llvm-svn: 104147
|