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
Jakob Stoklund Olesen
fe3fae23e4
Use methods to determine if a LiveInterval is spillable.
...
Don't accidentally produce unspillable intervals for deeply nested loops.
llvm-svn: 97496
2010-03-01 20:59:38 +00:00
Devang Patel
9f858ad942
Remove tests that checks @llvm.dbg.stoppoint handling.
...
llvm-svn: 97493
2010-03-01 20:33:48 +00:00
Chris Lattner
04209058b9
stop using anders-aa
...
llvm-svn: 97492
2010-03-01 20:24:50 +00:00
Chris Lattner
ac2f5c24a0
stop using anders-aa
...
llvm-svn: 97491
2010-03-01 20:24:05 +00:00
Chris Lattner
5649a97c00
remove andersen's tests.
...
llvm-svn: 97490
2010-03-01 20:23:15 +00:00
Devang Patel
6dd4084f57
@llvm.dbg.stoppoint intrinsic is not used anymore.
...
Delete dead testcase.
llvm-svn: 97489
2010-03-01 19:46:08 +00:00
Ted Kremenek
328c095a12
Update CMake build.
...
llvm-svn: 97488
2010-03-01 19:42:47 +00:00
Devang Patel
ef282ea4c2
Update to use new debug info encoding scheme. As a bonus, now the test passes!
...
llvm-svn: 97487
2010-03-01 19:41:26 +00:00
Chris Lattner
8396bae92e
don't emit the old sdnodexform stuff for the new isel.
...
llvm-svn: 97486
2010-03-01 19:39:15 +00:00
Chris Lattner
21ad1fd291
stop using generated sdnodexforms.
...
llvm-svn: 97485
2010-03-01 19:38:53 +00:00
Chris Lattner
302e7118ed
note that andersaa was removed in 2.7
...
llvm-svn: 97484
2010-03-01 19:29:17 +00:00
Chris Lattner
ebb4fbf691
remove anders-aa from mainline, it isn't maintained and is
...
tantalyzing enough that people keep trying to use it.
llvm-svn: 97483
2010-03-01 19:24:17 +00:00
Johnny Chen
37f3172799
Added STRHT for disassembly only and fixed a bug in AI3sthpo class where the W
...
bit should be set to 0 instead of 1.
llvm-svn: 97481
2010-03-01 19:22:00 +00:00
Devang Patel
66fd0f6b4b
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.
...
llvm-svn: 97480
2010-03-01 19:14:25 +00:00
Devang Patel
4853c9c8d1
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.
...
llvm-svn: 97477
2010-03-01 19:09:55 +00:00
Chris Lattner
5efedae9ae
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
llvm-svn: 97475
2010-03-01 19:05:25 +00:00
Devang Patel
f05e20ef3c
Remove dead test.
...
llvm-svn: 97474
2010-03-01 19:04:23 +00:00
Devang Patel
cdb2c39383
Replace test case that uses @llvm.dbg.* intrinsic with a test that uses metadata.
...
llvm-svn: 97473
2010-03-01 19:02:51 +00:00
Torok Edwin
de233f5c2b
Missed a \n in previous commit.
...
llvm-svn: 97472
2010-03-01 19:00:55 +00:00
Torok Edwin
2f53637d40
Add command-line flag to tblgen to turn off generating comments for the new
...
isel (defaults it to generate comments).
This reduces the size of the generated source file.
llvm-svn: 97470
2010-03-01 18:49:10 +00:00
Chris Lattner
b65ac4a796
Accelerate isel dispatch for tables that start with a top-level
...
OPC_SwitchOpcode to use a table lookup instead of having to go
through the interpreter for this.
llvm-svn: 97469
2010-03-01 18:47:11 +00:00