| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 97094
|
| |
|
|
|
|
|
| |
reflect what it does. Switch the sense of the Next and the Check
arms to be more logical. No functionality change.
llvm-svn: 97093
|
| |
|
|
| |
llvm-svn: 97081
|
| |
|
|
|
|
| |
x86 table by 1200 bytes.
llvm-svn: 97053
|
| |
|
|
|
|
|
|
| |
movechild/record -> recordchild/movechild and
movechild/moveparent -> noop xforms. This slightly shrinks the tables
(x86 to 117454) and enables adding future improvements.
llvm-svn: 97051
|
| |
|
|
| |
llvm-svn: 97047
|
| |
|
|
| |
llvm-svn: 97034
|
| |
|
|
|
|
|
|
| |
the old one around for comparative purposes: have the
ENABLE_NEW_ISEL #define (which is not enabled on mainline) stop
emitting the old isel at all, yay for build time win.
llvm-svn: 97033
|
| |
|
|
|
|
|
|
| |
the new isel: fold movechild+record+moveparent into a
single recordchild N node. This shrinks the X86 table
from 125443 to 117502 bytes.
llvm-svn: 97031
|
| |
|
|
|
|
|
| |
Also add an easy macro at the top of DAGISelEmitter.cpp to enable
it. Lets see if I can avoid accidentally turning it on :)
llvm-svn: 97029
|
| |
|
|
|
|
|
|
|
| |
internal nodes with flag results. Record these with a new
OPC_MarkFlagResults opcode and use this to update the interior
nodes' flag results properly. This fixes CodeGen/X86/i256-add.ll
with the new isel.
llvm-svn: 97021
|
| |
|
|
|
|
| |
disassembler never recognizes InitReg instructions.
llvm-svn: 97017
|
| |
|
|
| |
llvm-svn: 96923
|
| |
|
|
|
|
|
|
|
|
|
| |
Needed to correctly handle things like 'llvmc -framework Foo foo.o -framework
Bar bar.o' - before this commit all '-framework' options would've been grouped
together in the beginning.
Due to our dependence on CommandLine this turned out to be a giant hack; we will
migrate away from CommandLine eventually.
llvm-svn: 96922
|
| |
|
|
|
|
| |
Does not work, but the infrastructure changes are in place.
llvm-svn: 96920
|
| |
|
|
|
|
| |
For now, just enough support to make -filelist work.
llvm-svn: 96918
|
| |
|
|
| |
llvm-svn: 96916
|
| |
|
|
|
|
|
|
| |
input/output patterns have the same type. It turns out that
this triggers all the time because we don't infer types
between these boundaries. Until we do, don't turn this on.
llvm-svn: 96905
|
| |
|
|
|
|
| |
of a pattern and where the uses have different types.
llvm-svn: 96904
|
| |
|
|
|
|
| |
this is tidier and can find bugs.
llvm-svn: 96900
|
| |
|
|
|
|
|
| |
but not in the input. Previously, this would trigger an abort
late in the isel logic.
llvm-svn: 96898
|
| |
|
|
| |
llvm-svn: 96896
|
| |
|
|
| |
llvm-svn: 96891
|
| |
|
|
| |
llvm-svn: 96889
|
| |
|
|
| |
llvm-svn: 96845
|
| |
|
|
|
|
| |
VBR encoding for the insanity being perpetrated by the spu backend.
llvm-svn: 96843
|
| |
|
|
|
|
|
|
| |
ridiculously ginormous patterns and need more than one byte
of displacement for encodings. This fixes CellSPU/fdiv.ll.
SPU is still doing something else ridiculous though.
llvm-svn: 96833
|
| |
|
|
|
|
|
|
|
|
| |
well as the operands produced when the pattern is matched. This
allows CheckSame to work correctly when matching replicated
names involving ComplexPatterns. This fixes a bunch of MSP430
failures, we're down to 13 failures, two of which are
due to a sched bug.
llvm-svn: 96824
|
| |
|
|
|
|
|
| |
has one of the list of acceptable opcodes for a complex
pattern. This fixes 4 regtest failures.
llvm-svn: 96814
|
| |
|
|
|
|
|
|
| |
sure to only run the complex pattern on nodes where the target opts in.
This patch only handles targets with one opcode specified so far, but
fixes 16 failures, only 34 left.
llvm-svn: 96813
|
| |
|
|
|
|
|
|
|
|
| |
result nodes correctly. Note that this includes a horrible hack
in DAGISelHeader which cannot be fixed reasonably without
eliminating (parallel) from input patterns. That, in turn,
can't be done until we support writing multiple result patterns
for the X86and_flag and related multiple-result nodes.
llvm-svn: 96767
|
| |
|
|
|
|
|
| |
DAGISelEmitter does. This fixes 11 arm failures (8
left).
llvm-svn: 96757
|
| |
|
|
|
|
| |
least cost matches. This gets us from 195 -> 208 passes on the ppc codegen tests.
llvm-svn: 96747
|
| |
|
|
| |
llvm-svn: 96730
|
| |
|
|
|
|
|
| |
With this, the matcher actually works reasonably well, but
crashes on larger examples in the scheduler.
llvm-svn: 96727
|
| |
|
|
|
|
| |
body before the push.
llvm-svn: 96726
|
| |
|
|
| |
llvm-svn: 96725
|
| |
|
|
|
|
|
| |
of the matched pattern to use the newly created node results. Onto
the "making it actually work" phase!
llvm-svn: 96724
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the point where it is to the 95% feature complete mark, it just
needs result updating to be done (then testing, optimization
etc).
More specificallly, this adds support for chain and flag handling
on the result nodes, support for sdnodexforms, support for variadic
nodes, memrefs, pinned physreg inputs, and probably lots of other
stuff.
In the old DAGISelEmitter, this deletes the dead code related to
OperatorMap, cleans up a variety of dead stuff handling "implicit
remapping" from things like globaladdr -> targetglobaladdr (which
is no longer used because globaladdr always needs to be legalized),
and some minor formatting fixes.
llvm-svn: 96716
|
| |
|
|
| |
llvm-svn: 96663
|
| |
|
|
| |
llvm-svn: 96661
|
| |
|
|
| |
llvm-svn: 96639
|
| |
|
|
| |
llvm-svn: 96636
|
| |
|
|
|
|
|
| |
building the tree to represent them but not emitting
table entries for them yet.
llvm-svn: 96617
|
| |
|
|
|
|
| |
Nothing real here yet.
llvm-svn: 96575
|
| |
|
|
|
|
| |
relationship, this is a linear list relationship.
llvm-svn: 96561
|
| |
|
|
|
|
| |
field to MatcherNode.
llvm-svn: 96560
|
| |
|
|
| |
llvm-svn: 96541
|
| |
|
|
| |
llvm-svn: 96497
|
| |
|
|
|
|
|
| |
and add a sparc implementation that knows about delay slots. Patch by
Nathan Keynes!
llvm-svn: 96492
|