Chris Lattner [Wed, 3 Mar 2010 01:52:59 +0000 (01:52 +0000)]
factor the 'in the default address space' check out to a single
'dsload' pattern. tblgen doesn't check patterns to see if they're
textually identical. This allows better factoring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97630
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2010 01:45:01 +0000 (01:45 +0000)]
factor the 'sign extended from 8 bit' patterns better so
that they are not destination type specific. This allows
tblgen to factor them and the type check is redundant with
what the isel does anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97629
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Mar 2010 01:44:33 +0000 (01:44 +0000)]
- Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality.
- Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97628
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Mar 2010 01:38:35 +0000 (01:38 +0000)]
Add an option to enable machine cse (it's not doing anything yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97627
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Mar 2010 01:37:50 +0000 (01:37 +0000)]
Ordering forward declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97626
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 3 Mar 2010 01:13:55 +0000 (01:13 +0000)]
Don't turn assertions on by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97623
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Mar 2010 00:43:15 +0000 (00:43 +0000)]
Eliminate unused instruction classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97617
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 3 Mar 2010 00:35:56 +0000 (00:35 +0000)]
This test case:
long test(long x) { return (x & 123124) | 3; }
Currently compiles to:
_test:
orl $3, %edi
movq %rdi, %rax
andq $123127, %rax
ret
This is because instruction and DAG combiners canonicalize
(or (and x, C), D) -> (and (or, D), (C | D))
However, this is only profitable if (C & D) != 0. It gets in the way of the
3-addressification because the input bits are known to be zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97616
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Wed, 3 Mar 2010 00:16:28 +0000 (00:16 +0000)]
Added 32-bit Thumb instructions t2DMB variants, t2DSB variants, and t2ISBsy for
disassembly only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97614
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 23:59:08 +0000 (23:59 +0000)]
Use the ocaml tag 0 since we are just returning an option value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97612
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 23:59:05 +0000 (23:59 +0000)]
Don't use an ocaml keyword in an ocamldoc comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97611
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 23:59:03 +0000 (23:59 +0000)]
Expose the optimization level for the jit in ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97610
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 23:59:00 +0000 (23:59 +0000)]
Remove module providers from ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97609
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 23:58:54 +0000 (23:58 +0000)]
Add Module functions in place of module providers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97608
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 23:12:51 +0000 (23:12 +0000)]
merge two loops over all nodes in the graph into one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97606
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 22:33:56 +0000 (22:33 +0000)]
eliminate PreprocessForRMW now that isel handles it.
We still preprocess calls and fp return stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97598
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 22:30:08 +0000 (22:30 +0000)]
remove 300 lines of code that is now dead in the MSP430 backend
now that isel handles chains more aggressively. This also
allows us to make isLegalToFold non-virtual.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97597
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 22:20:06 +0000 (22:20 +0000)]
Fix some issues in WalkChainUsers dealing with
CopyToReg/CopyFromReg/INLINEASM. These are annoying because
they have the same opcode before an after isel. Fix this by
setting their NodeID to -1 to indicate that they are selected,
just like what automatically happens when selecting things that
end up being machine nodes.
With that done, give IsLegalToFold a new flag that causes it to
ignore chains. This lets the HandleMergeInputChains routine be
the one place that validates chains after a match is successful,
enabling the new hotness in chain processing. This smarter
chain processing eliminates the need for "PreprocessRMW" in the
X86 and MSP430 backends and enables MSP to start matching it's
multiple mem operand instructions more aggressively.
I currently #if out the dead code in the X86 backend and MSP
backend, I'll remove it for real in a follow-on patch.
The testcase changes are:
test/CodeGen/X86/sse3.ll: we generate better code
test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was
miscompiling this before, we now generate correct code
Convert it to filecheck while I'm at it.
test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem
folding to make anton happy. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97596
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Tue, 2 Mar 2010 22:11:06 +0000 (22:11 +0000)]
Added 32-bit Thumb instruction CLREX (Clear-Exclusive) for disassembly only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97595
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 2 Mar 2010 22:10:24 +0000 (22:10 +0000)]
Allow specialization of ScopedHashTable of non-default DenseMapInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97594
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 2 Mar 2010 21:50:35 +0000 (21:50 +0000)]
Okay. One last attempt:
Place the LSDA into the TEXT section on Mach-O. This saves space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97592
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 20:48:24 +0000 (20:48 +0000)]
this testcase is failing because pic16 doesn't define a reg/reg
xor pattern. I have no plans to fix this XFAIL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97587
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 20:32:32 +0000 (20:32 +0000)]
Add support for use to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97586
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 20:32:28 +0000 (20:32 +0000)]
Rename LLVMUseIteratorRef to LLVMUseRef since we don't refer to iterators in llvm-c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97585
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 19:53:25 +0000 (19:53 +0000)]
xfail this for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97584
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Tue, 2 Mar 2010 19:38:59 +0000 (19:38 +0000)]
Removed the extra S from the multiclass def T2I_adde_sube_s_irs as well as from
the opc string passed in, since it's a given from the class inheritance of T2sI.
The fixed the extra 's' in adcss & sbcss when disassembly printing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97582
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 19:34:59 +0000 (19:34 +0000)]
run HandleMergeInputChains even if we only have one input chain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97581
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Mar 2010 19:32:21 +0000 (19:32 +0000)]
When expanding an expression such as (A + B + C + D), sort the operands
by loop depth and emit loop-invariant subexpressions outside of loops.
This speeds up MultiSource/Applications/viterbi and others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97580
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 2 Mar 2010 19:03:01 +0000 (19:03 +0000)]
Swap parameters of isSafeToMove and isSafeToReMat for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97578
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 2 Mar 2010 19:02:27 +0000 (19:02 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97577
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 18:56:03 +0000 (18:56 +0000)]
clean up some testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97576
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 18:15:02 +0000 (18:15 +0000)]
the sorting predicate should work for comparing an element
to itself, even though this isn't wildly useful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97574
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Tue, 2 Mar 2010 18:14:57 +0000 (18:14 +0000)]
Added 32-bit Thumb instructions: CPS, SDIV, UDIV, SXTB16, SXTAB16, UXTAB16, SEL,
SMMULR, SMMLAR, SMMLSR, TBB, TBH, and 16-bit Thumb instruction CPS for
disassembly only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97573
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 2 Mar 2010 17:58:15 +0000 (17:58 +0000)]
Fix grammar.
Thanks Duncan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97572
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Tue, 2 Mar 2010 17:57:15 +0000 (17:57 +0000)]
AL is an optional mnemonic extension for always, except in IT instructions.
Add printMandatoryPredicateOperand() PrintMethod for IT predicate printing.
Ref: A8.3 Conditional execution
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97571
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Tue, 2 Mar 2010 17:03:18 +0000 (17:03 +0000)]
Change some asm shift opcode strings to lowercase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97567
91177308-0d34-0410-b5e6-
96231b3b80d8
Xerxes Ranby [Tue, 2 Mar 2010 13:42:03 +0000 (13:42 +0000)]
fix typo add missing (
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97565
91177308-0d34-0410-b5e6-
96231b3b80d8
Xerxes Ranby [Tue, 2 Mar 2010 13:26:18 +0000 (13:26 +0000)]
Unbreak llvm-arm-linux buildbot and fix PR5309.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97564
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 2 Mar 2010 11:18:43 +0000 (11:18 +0000)]
Rather than passing "false" for InsertBefore, AddressSpace for ThreadLocal,
and nothing for AddressSpace, pass 0 for InsertBefore, "false" for ThreadLocal
and AddressSpace for AddressSpace. Spotted by gcc-4.5.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97563
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 07:50:03 +0000 (07:50 +0000)]
Fix the xfail I added a couple of patches back. The issue
was that we weren't properly handling the case when interior
nodes of a matched pattern become dead after updating chain
and flag uses. Now we handle this explicitly in
UpdateChainsAndFlags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97561
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 07:14:49 +0000 (07:14 +0000)]
I was confused about this, it turns out that MorphNodeTo
*does* delete ex-operands that become dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97559
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 06:55:04 +0000 (06:55 +0000)]
factor node morphing out to its own helper method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97558
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 06:36:51 +0000 (06:36 +0000)]
attributes are not part of types anymore, patch by James Woodyatt!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97557
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 06:36:28 +0000 (06:36 +0000)]
eliminate CodeGen/DAGISelHeader.h, it is empty now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97556
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 06:34:30 +0000 (06:34 +0000)]
Sink InstructionSelect() out of each target into SDISel, and rename it
DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader.
Sink some other stuff out of DAGISelHeader into SDISel.
Eliminate the various 'Indent' stuff from various targets, which dates
to when isel was recursive.
17 files changed, 114 insertions(+), 430 deletions(-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97555
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 2 Mar 2010 06:25:00 +0000 (06:25 +0000)]
Only save vector registers if we've defined for the vector registers.
Fixes PR5309.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97554
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 06:04:12 +0000 (06:04 +0000)]
move some code out of DAGISelHeader up to SelectionDAGISel.h where it
is shared by all targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97553
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 2 Mar 2010 05:32:52 +0000 (05:32 +0000)]
Fix looking up MD names to not need a module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97550
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 2 Mar 2010 05:17:21 +0000 (05:17 +0000)]
Move the docsdir to /usr/share/doc/llvm to match other projects.
Fixes PR6267.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97549
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 2 Mar 2010 05:06:54 +0000 (05:06 +0000)]
Make sure we save CXXFLAGS before setting it as pedantic and regenerate
configure.
Fixes PR6388.
Patch by Yann Droneaud!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97548
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 2 Mar 2010 02:49:43 +0000 (02:49 +0000)]
Add file to CMakeLists.txt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97545
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 2 Mar 2010 02:38:24 +0000 (02:38 +0000)]
Add skeleton of a machine level cse pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97543
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 2 Mar 2010 02:37:33 +0000 (02:37 +0000)]
Add count() and lookup() to ScopedHashTable. It might be useful to get information out of the hash table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97542
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 02:37:23 +0000 (02:37 +0000)]
Use the right induction variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97541
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 02:22:10 +0000 (02:22 +0000)]
Rewrite chain handling validation and input TokenFactor handling
stuff now that we don't care about emulating the old broken
behavior of the old isel. This eliminates the
'CheckChainCompatible' check (along with IsChainCompatible) which
did an incorrect and inefficient scan *up* the chain nodes which
happened as the pattern was being formed and does the validation
at the end in HandleMergeInputChains when it forms a structural
pattern. This scans "down" the graph, which means that it is
quickly bounded by nodes already selected. This also handles
token factors that get "trapped" in the dag.
Removing the CheckChainCompatible nodes also shrinks the
generated tables by about 6K for X86 (down to 83K).
There are two pieces remaining before I can nuke PreprocessRMW:
1. I xfailed a test because we're now producing worse code in a
case that has nothing to do with the change: it turns out that
our use of MorphNodeTo will leave dead nodes in the graph
which (depending on how the graph is walked) end up causing
bogus uses of chains and blocking matches. This is really
bad for other reasons, so I'll fix this in a follow-up patch.
2. CheckFoldableChainNode needs to be improved to handle the TF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97539
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Mar 2010 02:14:38 +0000 (02:14 +0000)]
Fix several places to handle vector operands properly.
Based on a patch by Micah Villmow for PR6438.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97538
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Mar 2010 01:59:21 +0000 (01:59 +0000)]
Non-affine post-inc SCEV expansions have more code which must be
emitted after the increment. Make sure the insert position
reflects this. This fixes PR6453.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97537
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 2 Mar 2010 01:55:18 +0000 (01:55 +0000)]
Remove dead parameter passing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97536
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 2 Mar 2010 01:26:20 +0000 (01:26 +0000)]
Constructors and operators for anonymous aggregates does not names. Do not force empty AT_name attribute in such cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97533
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Mar 2010 01:11:08 +0000 (01:11 +0000)]
Floating-point add, sub, and mul are now spelled fadd, fsub, and fmul,
respectively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97531
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Mar 2010 01:08:11 +0000 (01:08 +0000)]
PerformTailCallOpt was renamed to GuaranteedTailCallOpt to
better reflect its meaning, now that tail call optimizations
are done by default in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97530
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 00:40:26 +0000 (00:40 +0000)]
remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97529
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 00:13:03 +0000 (00:13 +0000)]
add some missing \n's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97527
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 2 Mar 2010 00:09:29 +0000 (00:09 +0000)]
Don't attempt load PRE when there is no real redundancy (i.e., the load is in
a loop and is itself the only dependency).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97526
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2010 00:00:03 +0000 (00:00 +0000)]
refactor some code out of OPC_EmitMergeInputChains into a
new helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97525
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 23:40:33 +0000 (23:40 +0000)]
remove some functions that were only used by the
old isel generated code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97522
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 1 Mar 2010 23:37:32 +0000 (23:37 +0000)]
When GVN needs to split critical edges for load PRE, check all of the
predecessors before returning. Otherwise, if multiple predecessor edges need
splitting, we only get one of them per iteration. This makes a small but
measurable compile time improvement with -enable-full-load-pre.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97521
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 23:08:51 +0000 (23:08 +0000)]
fixme resolved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97517
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:51:11 +0000 (22:51 +0000)]
remove a little hack I did for the old isel, not needed
now that it is gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97516
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:49:06 +0000 (22:49 +0000)]
resolve some fixmes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97515
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:46:42 +0000 (22:46 +0000)]
resolve a fixme and simplify code by moving insertion of the
EmitMergeInputChainsMatcher node up into EmitResultCode. This
doesn't have much of an effect on the generated code, the X86
table is exactly the same size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97514
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:29:19 +0000 (22:29 +0000)]
resolve a fixme by having the .td file parser reject thigns like
(set GPR, somecomplexpattern)
if somecomplexpattern doesn't declare what it can match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97513
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 Mar 2010 22:23:12 +0000 (22:23 +0000)]
MemoryDepAnalysis is not used if redundant load processing is disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97512
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:20:05 +0000 (22:20 +0000)]
remove all but one version of SelectionDAG::MorphNodeTo
(the most general) the others are dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97511
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:19:47 +0000 (22:19 +0000)]
remove dead code, simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97510
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:09:11 +0000 (22:09 +0000)]
Fix PR2590 by making PatternSortingPredicate actually be
ordered correctly. Previously it would get in trouble when
two patterns were too similar and give them nondet ordering.
We force this by using the record ID order as a fallback.
The testsuite diff is due to alpha patterns being ordered
slightly differently, the change is a semantic noop afaict:
< lda $0,-100($16)
---
> subq $16,100,$0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97509
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 22:04:33 +0000 (22:04 +0000)]
tolerate factoring the *last* node for CellSPU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97508
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 Mar 2010 22:00:11 +0000 (22:00 +0000)]
Remove the optimize for code size limitation on r67917. Optimize 64-bit imul by constants into leas + shl regardless if optimizing for code size. The size saving from using imulq isn't worth it. Also, the lea and shl instructions may expose further optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97507
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 21:49:54 +0000 (21:49 +0000)]
optimize tblgen compile time by eliminating the old isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97504
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 1 Mar 2010 21:45:21 +0000 (21:45 +0000)]
Make llc opt into the addPassesToEmitFile verify pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97502
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 21:20:46 +0000 (21:20 +0000)]
remove a terrible hack that disabled assertions from this file because of build time
problems. rdar://
7697850.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97500
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 1 Mar 2010 20:59:38 +0000 (20:59 +0000)]
Use methods to determine if a LiveInterval is spillable.
Don't accidentally produce unspillable intervals for deeply nested loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97496
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 1 Mar 2010 20:33:48 +0000 (20:33 +0000)]
Remove tests that checks @llvm.dbg.stoppoint handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97493
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 20:24:50 +0000 (20:24 +0000)]
stop using anders-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97492
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 20:24:05 +0000 (20:24 +0000)]
stop using anders-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97491
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 20:23:15 +0000 (20:23 +0000)]
remove andersen's tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97490
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 1 Mar 2010 19:46:08 +0000 (19:46 +0000)]
@llvm.dbg.stoppoint intrinsic is not used anymore.
Delete dead testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97489
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 1 Mar 2010 19:42:47 +0000 (19:42 +0000)]
Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97488
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 1 Mar 2010 19:41:26 +0000 (19:41 +0000)]
Update to use new debug info encoding scheme. As a bonus, now the test passes!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97487
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 19:39:15 +0000 (19:39 +0000)]
don't emit the old sdnodexform stuff for the new isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97486
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 19:38:53 +0000 (19:38 +0000)]
stop using generated sdnodexforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97485
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 19:29:17 +0000 (19:29 +0000)]
note that andersaa was removed in 2.7
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97484
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 19:24:17 +0000 (19:24 +0000)]
remove anders-aa from mainline, it isn't maintained and is
tantalyzing enough that people keep trying to use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97483
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Mon, 1 Mar 2010 19:22:00 +0000 (19:22 +0000)]
Added STRHT for disassembly only and fixed a bug in AI3sthpo class where the W
bit should be set to 0 instead of 1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97481
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 1 Mar 2010 19:14:25 +0000 (19:14 +0000)]
Remove this test because it checks wheter optimizer handled @llvm.dbg.global_variable appropriately or not. LLVM does not use this scheme to encode debug info for global variables any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97480
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 1 Mar 2010 19:09:55 +0000 (19:09 +0000)]
Remove test to check bugfix in handing debug info for global variables using intrinsics. Now, debug info for global variable is encoded using metadata. The old code path is now history and there is no need to have a test to check a bug fix in old code path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97477
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2010 19:05:25 +0000 (19:05 +0000)]
Turn on the new isel by default. Here are some fun numbers
with a release-asserts build on x86-64-darwin10:
LLC Size:
Old: 15,426,852
New: 12,759,140 (down 2.7M)
LLI Size:
Old: 9,926,876
New: 8,864,292 (down 1.1M)
X86ISelDAGToDAG.o size:
Old: 1,401,232
New: 162,868 (down 1.3M)
Time to build X86ISelDAGToDAG.o:
Old: 67.147u 2.060s 1:09.78
New: 4.234u 0.387s 0:04.77
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97475
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 1 Mar 2010 19:04:23 +0000 (19:04 +0000)]
Remove dead test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97474
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 1 Mar 2010 19:02:51 +0000 (19:02 +0000)]
Replace test case that uses @llvm.dbg.* intrinsic with a test that uses metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97473
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 1 Mar 2010 19:00:55 +0000 (19:00 +0000)]
Missed a \n in previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97472
91177308-0d34-0410-b5e6-
96231b3b80d8