Chris Lattner
b26fdcb48b
fix vnot matching to explicitly specify the type of the
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99754 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 08:08:07 +00:00
Chris Lattner
e4c868ff6a
fix up vnot matching, eliminating a dead pattern, correcting a couple of
...
patterns that would never match because of bitcast, and eliminating use
of vnot_conv.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99753 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 08:00:23 +00:00
Chris Lattner
ba47ce1244
add some nounwinds
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99752 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 07:58:37 +00:00
Chris Lattner
cf3fed0fd4
this takes an insane amount of time to run, disable it for now (PR6727)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99751 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 07:58:09 +00:00
Chris Lattner
918472a77a
stop using vnot_conv
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99750 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 07:48:17 +00:00
Chris Lattner
ed52c8f5f4
revert r99743, this is saying that the repmovs instructinos have an
...
*input* of other type, which is the VT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99749 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 07:38:39 +00:00
Chris Lattner
b616c6a25d
remove a bunch of dead patterns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99748 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 07:38:00 +00:00
Chris Lattner
b775b1e20b
validate that input sdnodes don't exist in an output pattern.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99747 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 06:57:56 +00:00
Chris Lattner
c217305f76
eliminate a bunch of code duplication in ParseTreePattern
...
by rotating it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99746 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 06:50:34 +00:00
Chris Lattner
e7700999b8
add some node definitions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99745 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 06:16:41 +00:00
Chris Lattner
c812261221
SDTCisVT<0, isVoid> is not valid, reject it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99744 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 06:04:39 +00:00
Chris Lattner
0b5d4908dd
claiming to return other is pointless.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99743 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:57:36 +00:00
Chris Lattner
5d9a1bce83
comply with the wishes of a fixme.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99742 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:55:17 +00:00
Chris Lattner
b0e483e2c4
now that (parallel) is gone and a variety of bugs in targets
...
are cleaned up, we can remove an old fixme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99741 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:54:03 +00:00
Chris Lattner
aa4e3391c8
add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and
...
1, 1 cases which are by-far the most frequent. This shrinks the X86
isel table from 77014 -> 74657 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99740 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:50:16 +00:00
Chris Lattner
856fb395e4
don't add nodes to the now-dead nodes list multiple times, this
...
can cause a crash on crazy situations in msp430 when morph-node-to
is disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99739 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:28:31 +00:00
Chris Lattner
a591ff53d9
Improve systemz to model cmp and ucmp nodes as returning
...
their flags correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99738 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:21:52 +00:00
Chris Lattner
af8752e901
the FPCmp node returns an i32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99737 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:12:57 +00:00
Chris Lattner
d486d77444
fix some modelling problems exposed by a patch I'm working on. bsr/bsf/ptest
...
nodes all have an EFLAGS result when made by isel lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99736 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 05:07:17 +00:00
Chris Lattner
19e37cbf4f
don't add flag nodes with chain results to the NowDeadNodes
...
list multiple times when MorphNodeTo can't be applied.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99735 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 04:54:33 +00:00
Jeffrey Yasskin
ec243474bc
Oops, r98447 dropped the reference to ForwardType in the wrong place in
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99732 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28 01:03:47 +00:00
Chris Lattner
b4a52b04bd
fix a long standing fixme, which required fixing a bunch of other
...
issues to get here. We now trim the result type list of the
CompleteMatch or MorphNodeTo operation to be the same size as the
thing we're matching. this means that if you match (add GPR, GPR)
with an instruction that produces a normal result and a flag that
we now trim the result in tblgen instead of having to do it
dynamically. This exposed a bunch of inconsistencies in result
counting that happened to be getting lucky since the days of the
old isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99728 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 20:45:15 +00:00
Chris Lattner
0d7952ed5a
fix CodeGenTarget::getRegisterVTs to not return the
...
same vt multiple times for a register. For example,
ECX is in 5 different i32 reg classes, just return
1 i32 instead of 5.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99727 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 20:32:26 +00:00
Chris Lattner
9414ae5291
hoist some funky logic into CodeGenInstruction
...
from two places in CodeGenDAGPatterns.cpp, and
use it in DAGISelMatcherGen.cpp instead of using
an incorrect predicate that happened to get lucky
on our current targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99726 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 20:09:24 +00:00
Chris Lattner
0be6fe7139
continue pushing tblgen's support for nodes with multiple
...
results forward. We can now handle an instruction that
produces one implicit def and one result instead of one or
the other when not at the root of the pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99725 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 19:15:02 +00:00
Chris Lattner
a6f8693385
improve -debug-only=isel comments for cases when we don't enter a
...
scope due to obviously false predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99723 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 18:54:50 +00:00
Chris Lattner
5d3569e93c
fix a bug in my recent patch that increased opcode size to 2 bytes:
...
the index comments nested under OPC_SwitchOpcode were off by one.
This fixes the comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99722 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 18:49:33 +00:00
Chris Lattner
46475cb08e
revert r99719 which is breaking the botz.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99721 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 18:01:10 +00:00
Dan Gohman
00ad278500
Make llvm-ld remove its output files in the event of an error.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99719 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 16:49:51 +00:00
Dan Gohman
a5d0501b59
Give FileRemover a default constructor to allow FileRemovers to be created
...
and initialized separately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99717 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 16:39:56 +00:00
Dan Gohman
92f5fccb4d
No need to check the same condition twice.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99716 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 16:36:08 +00:00
Dan Gohman
60a6e1f461
Add a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99715 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 16:34:32 +00:00
Dan Gohman
f65f294c99
Remove an unnecessary #include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99714 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 16:33:36 +00:00
Jeffrey Yasskin
0826e1c519
Remove another memory leak from ABCD by using Edges by value instead of
...
pointer. There was also a SmallPtrSet whose settiness wasn't being used, so I
changed it to a SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99713 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 09:09:17 +00:00
Jeffrey Yasskin
e9580bf254
In ABCD, change the non-null Bound*s to Bound&s.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99711 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 08:15:46 +00:00
Jeffrey Yasskin
2f97b46f7b
Fix a memory leak in ABCD by giving ownership of Bound objects to the
...
MemoizedResultChart.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99710 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 08:09:24 +00:00
Jeffrey Yasskin
b3a1f928d8
XFAIL a new tblgen test for memory leak checking.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99707 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 04:59:47 +00:00
Jeffrey Yasskin
47b7112418
Avoid leaking the memory allocated for GlobalVariables in the interpreter, by
...
freeing that memory when the GV is destroyed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99706 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 04:53:56 +00:00
Bob Wilson
2cd1a12fe0
Fix indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99705 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 04:01:23 +00:00
Bob Wilson
10bc69c726
Add a format argument to the N3V and N3VX classes, removing the N3Vf class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99704 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 03:56:52 +00:00
Chris Lattner
310adf1c6f
remove parallel support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99703 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 02:53:27 +00:00
Chris Lattner
baba4bb72f
eliminate the last of the parallel's!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99700 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 02:47:14 +00:00
Eric Christopher
6fde0bd39b
When we promote a load of an argument make sure to take the alignment
...
of the previous load - it's usually important. For example, we don't want
to blindly turn an unaligned load into an aligned one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99699 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 01:54:00 +00:00
Bill Wendling
e6b293b78d
Forgot the part where we handle the ".llvm.eh.catch.all.value".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99697 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 01:24:30 +00:00
Bill Wendling
43de15f8a3
Return if we changed anything or not.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99695 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 01:22:38 +00:00
Bill Wendling
bfbd853958
If a selector has a call to ".llvm.eh.catch.all.value" that we haven't
...
converted, then use the initializer, since using the name itself won't work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99692 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 01:19:12 +00:00
Johnny Chen
897dd0c588
Add NVMulSLFrm to represent "3-register multiply with scalar" operations and set
...
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]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99690 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 01:03:13 +00:00
Chris Lattner
ec856800da
eliminate almost all the rest of the x86-32 parallels.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99686 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 00:45:04 +00:00
Chris Lattner
f2ddf15dc7
bump FIRST_TARGET_MEMORY_OPCODE back up, there is no reason to make it a tight bound anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99685 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 00:29:41 +00:00
Jim Grosbach
9ab0427015
Thumb2 storeFrom/LoadToStackSlot() need to handle tGPR regs directly, not pass
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99678 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27 00:09:12 +00:00