Chris Lattner
13bece08fd
the sorting predicate should work for comparing an element
...
to itself, even though this isn't wildly useful.
llvm-svn: 97574
2010-03-02 18:15:02 +00:00
Johnny Chen
88f05c26a5
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.
llvm-svn: 97573
2010-03-02 18:14:57 +00:00
Devang Patel
7de01928e9
Fix grammar.
...
Thanks Duncan!
llvm-svn: 97572
2010-03-02 17:58:15 +00:00
Johnny Chen
9b5f5645e4
AL is an optional mnemonic extension for always, except in IT instructions.
...
Add printMandatoryPredicateOperand() PrintMethod for IT predicate printing.
Ref: A8.3 Conditional execution
llvm-svn: 97571
2010-03-02 17:57:15 +00:00
Johnny Chen
ddbf29a06c
Change some asm shift opcode strings to lowercase.
...
llvm-svn: 97567
2010-03-02 17:03:18 +00:00
Xerxes Ranby
8f57e7907a
fix typo add missing (
...
llvm-svn: 97565
2010-03-02 13:42:03 +00:00
Xerxes Ranby
1adef1fad2
Unbreak llvm-arm-linux buildbot and fix PR5309.
...
llvm-svn: 97564
2010-03-02 13:26:18 +00:00
Duncan Sands
5a60a368dd
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.
llvm-svn: 97563
2010-03-02 11:18:43 +00:00
Chris Lattner
2019e2922f
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.
llvm-svn: 97561
2010-03-02 07:50:03 +00:00
Chris Lattner
d23cbd049d
I was confused about this, it turns out that MorphNodeTo
...
*does* delete ex-operands that become dead.
llvm-svn: 97559
2010-03-02 07:14:49 +00:00
Chris Lattner
bd1d913a9d
factor node morphing out to its own helper method.
...
llvm-svn: 97558
2010-03-02 06:55:04 +00:00
Chris Lattner
56c9bd0c6b
attributes are not part of types anymore, patch by James Woodyatt!
...
llvm-svn: 97557
2010-03-02 06:36:51 +00:00
Chris Lattner
3cfdaec84a
eliminate CodeGen/DAGISelHeader.h, it is empty now.
...
llvm-svn: 97556
2010-03-02 06:36:28 +00:00
Chris Lattner
1707a88a2c
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(-)
llvm-svn: 97555
2010-03-02 06:34:30 +00:00
Eric Christopher
ca6b8de375
Only save vector registers if we've defined for the vector registers.
...
Fixes PR5309.
llvm-svn: 97554
2010-03-02 06:25:00 +00:00
Chris Lattner
ecfbebb9c1
move some code out of DAGISelHeader up to SelectionDAGISel.h where it
...
is shared by all targets.
llvm-svn: 97553
2010-03-02 06:04:12 +00:00
Erick Tryzelaar
24ec58b50b
Fix looking up MD names to not need a module.
...
llvm-svn: 97550
2010-03-02 05:32:52 +00:00
Eric Christopher
baa93339bb
Move the docsdir to /usr/share/doc/llvm to match other projects.
...
Fixes PR6267.
llvm-svn: 97549
2010-03-02 05:17:21 +00:00
Eric Christopher
f38037ed77
Make sure we save CXXFLAGS before setting it as pedantic and regenerate
...
configure.
Fixes PR6388.
Patch by Yann Droneaud!
llvm-svn: 97548
2010-03-02 05:06:54 +00:00
Eric Christopher
c62736d200
Add file to CMakeLists.txt
...
llvm-svn: 97545
2010-03-02 02:49:43 +00:00
Evan Cheng
291c815b10
Add skeleton of a machine level cse pass.
...
llvm-svn: 97543
2010-03-02 02:38:24 +00:00
Evan Cheng
ab92cd0412
Add count() and lookup() to ScopedHashTable. It might be useful to get information out of the hash table.
...
llvm-svn: 97542
2010-03-02 02:37:33 +00:00
Chris Lattner
9a28d163c2
Use the right induction variable.
...
llvm-svn: 97541
2010-03-02 02:37:23 +00:00
Chris Lattner
0b41a42411
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.
llvm-svn: 97539
2010-03-02 02:22:10 +00:00
Dan Gohman
56a20fc5eb
Fix several places to handle vector operands properly.
...
Based on a patch by Micah Villmow for PR6438.
llvm-svn: 97538
2010-03-02 02:14:38 +00:00
Dan Gohman
1625456786
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.
llvm-svn: 97537
2010-03-02 01:59:21 +00:00
Bill Wendling
5990930d72
Remove dead parameter passing.
...
llvm-svn: 97536
2010-03-02 01:55:18 +00:00
Devang Patel
8fffee565c
Constructors and operators for anonymous aggregates does not names. Do not force empty AT_name attribute in such cases.
...
llvm-svn: 97533
2010-03-02 01:26:20 +00:00
Dan Gohman
37bf232609
Floating-point add, sub, and mul are now spelled fadd, fsub, and fmul,
...
respectively.
llvm-svn: 97531
2010-03-02 01:11:08 +00:00
Dan Gohman
df1b620863
PerformTailCallOpt was renamed to GuaranteedTailCallOpt to
...
better reflect its meaning, now that tail call optimizations
are done by default in some cases.
llvm-svn: 97530
2010-03-02 01:08:11 +00:00
Chris Lattner
53bd8b1717
remove dead code.
...
llvm-svn: 97529
2010-03-02 00:40:26 +00:00
Chris Lattner
42b5571d38
add some missing \n's
...
llvm-svn: 97527
2010-03-02 00:13:03 +00:00
Bob Wilson
12797a7a6c
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).
llvm-svn: 97526
2010-03-02 00:09:29 +00:00
Chris Lattner
e6f86e288c
refactor some code out of OPC_EmitMergeInputChains into a
...
new helper function.
llvm-svn: 97525
2010-03-02 00:00:03 +00:00
Chris Lattner
35a2fb376d
remove some functions that were only used by the
...
old isel generated code.
llvm-svn: 97522
2010-03-01 23:40:33 +00:00
Bob Wilson
9207e3f81f
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.
llvm-svn: 97521
2010-03-01 23:37:32 +00:00
Chris Lattner
b1b0f749ed
fixme resolved.
...
llvm-svn: 97517
2010-03-01 23:08:51 +00:00
Chris Lattner
745181da4b
remove a little hack I did for the old isel, not needed
...
now that it is gone.
llvm-svn: 97516
2010-03-01 22:51:11 +00:00
Chris Lattner
e37f8fa74a
resolve some fixmes
...
llvm-svn: 97515
2010-03-01 22:49:06 +00:00
Chris Lattner
4fb9708649
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.
llvm-svn: 97514
2010-03-01 22:46:42 +00:00
Chris Lattner
14ef40723a
resolve a fixme by having the .td file parser reject thigns like
...
(set GPR, somecomplexpattern)
if somecomplexpattern doesn't declare what it can match.
llvm-svn: 97513
2010-03-01 22:29:19 +00:00
Evan Cheng
c97b5fe4b9
MemoryDepAnalysis is not used if redundant load processing is disabled.
...
llvm-svn: 97512
2010-03-01 22:23:12 +00:00
Chris Lattner
4ecd0eb275
remove all but one version of SelectionDAG::MorphNodeTo
...
(the most general) the others are dead.
llvm-svn: 97511
2010-03-01 22:20:05 +00:00
Chris Lattner
5dea29df83
remove dead code, simplify.
...
llvm-svn: 97510
2010-03-01 22:19:47 +00:00
Chris Lattner
c0839055a9
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
llvm-svn: 97509
2010-03-01 22:09:11 +00:00
Chris Lattner
63fd249741
tolerate factoring the *last* node for CellSPU.
...
llvm-svn: 97508
2010-03-01 22:04:33 +00:00
Evan Cheng
c0a816fd16
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.
...
llvm-svn: 97507
2010-03-01 22:00:11 +00:00
Chris Lattner
7cc2cd25c4
optimize tblgen compile time by eliminating the old isel.
...
llvm-svn: 97504
2010-03-01 21:49:54 +00:00
Dan Gohman
ed398abb31
Make llc opt into the addPassesToEmitFile verify pass.
...
llvm-svn: 97502
2010-03-01 21:45:21 +00:00
Chris Lattner
fa3b904028
remove a terrible hack that disabled assertions from this file because of build time
...
problems. rdar://7697850.
llvm-svn: 97500
2010-03-01 21:20:46 +00:00