Commit Graph

58216 Commits

Author SHA1 Message Date
Bob Wilson
3bd19d753b 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
2010-03-02 00:09:29 +00:00
Chris Lattner
6b30792d2d 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
2010-03-02 00:00:03 +00:00
Chris Lattner
7a855760b1 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
2010-03-01 23:40:33 +00:00
Bob Wilson
70704978af 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
2010-03-01 23:37:32 +00:00
Chris Lattner
8b30b8dd33 fixme resolved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 23:08:51 +00:00
Chris Lattner
e60f7b4412 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
2010-03-01 22:51:11 +00:00
Chris Lattner
67ea6a7111 resolve some fixmes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97515 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 22:49:06 +00:00
Chris Lattner
01bcd947bf 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
2010-03-01 22:46:42 +00:00
Chris Lattner
405f1252b9 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
2010-03-01 22:29:19 +00:00
Evan Cheng
19d417c346 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
2010-03-01 22:23:12 +00:00
Chris Lattner
df51247725 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
2010-03-01 22:20:05 +00:00
Chris Lattner
7c720fc33a remove dead code, simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97510 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 22:19:47 +00:00
Chris Lattner
117ccb7e51 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
2010-03-01 22:09:11 +00:00
Chris Lattner
f94bc54757 tolerate factoring the *last* node for CellSPU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97508 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 22:04:33 +00:00
Evan Cheng
73736df88b 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
2010-03-01 22:00:11 +00:00
Chris Lattner
adc5347b54 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
2010-03-01 21:49:54 +00:00
Dan Gohman
d44f16fce7 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
2010-03-01 21:45:21 +00:00
Chris Lattner
31c020a147 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
2010-03-01 21:20:46 +00:00
Jakob Stoklund Olesen
e5d90416ee 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
2010-03-01 20:59:38 +00:00
Devang Patel
09a695e396 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
2010-03-01 20:33:48 +00:00
Chris Lattner
f09999e103 stop using anders-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97492 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 20:24:50 +00:00
Chris Lattner
9e5cc28f72 stop using anders-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97491 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 20:24:05 +00:00
Chris Lattner
69ece93669 remove andersen's tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97490 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 20:23:15 +00:00
Devang Patel
929bdfedb8 @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
2010-03-01 19:46:08 +00:00
Ted Kremenek
1b6c4bd0e9 Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97488 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 19:42:47 +00:00
Devang Patel
9ce6cb8865 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
2010-03-01 19:41:26 +00:00
Chris Lattner
459eeedbe0 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
2010-03-01 19:39:15 +00:00
Chris Lattner
4c353e3c34 stop using generated sdnodexforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97485 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 19:38:53 +00:00
Chris Lattner
f220191120 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
2010-03-01 19:29:17 +00:00
Chris Lattner
a9cf19670f 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
2010-03-01 19:24:17 +00:00
Johnny Chen
ad4df4c0da 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
2010-03-01 19:22:00 +00:00
Devang Patel
39ca4ea01a 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
2010-03-01 19:14:25 +00:00
Devang Patel
4a76d17d13 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
2010-03-01 19:09:55 +00:00
Chris Lattner
8a01c8d00d 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
2010-03-01 19:05:25 +00:00
Devang Patel
fc242bfac4 Remove dead test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97474 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 19:04:23 +00:00
Devang Patel
1e19cf635d 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
2010-03-01 19:02:51 +00:00
Torok Edwin
5520ad4dd9 Missed a \n in previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97472 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 19:00:55 +00:00
Torok Edwin
5c7fc88b55 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:49:10 +00:00
Chris Lattner
7390eebd49 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97469 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:47:11 +00:00
Devang Patel
d1f94e90fd These two tests check whether oprimizer safely ignores @llvm.dbg.stoppoint intrinsic or not. This intrinsic is not used anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97468 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:45:28 +00:00
John McCall
d44c6cc477 Don't potentially read past the end of the fill data when making a NaN from
an APInt.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97467 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:38:45 +00:00
Devang Patel
81607c902f This test checks whether LICM ignores @llvm.dbg.stoppoint intrinsics appropriately or not. Now, llvm does not use this intrinsic. Remove this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97466 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:32:27 +00:00
Devang Patel
2cbb94d535 Rewrite test to test VLA using new debug info encoding scheme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97465 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:30:58 +00:00
Devang Patel
0e7d26c200 Remove this generic debug info intrinsic test. LLVM does not use this llvm.dbg.stoppoint intrinsic anymore. There are tests to check new implementation, which attaches location information directly with an instruction using metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97464 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 18:30:08 +00:00
Dan Gohman
042919c0c5 Fix optimization of ISD::TRUNCATE on vector operands. Based on a patch
by Micah Villmow for PR6335.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97461 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 17:59:21 +00:00
Dan Gohman
ce931c65ee Add explicit keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97460 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 17:56:46 +00:00
Dan Gohman
7cbf5a803e Add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 17:56:04 +00:00
Dan Gohman
c5e49c64d1 Add some debug output to LoopSimplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 17:55:27 +00:00
Dan Gohman
c235a0c388 Add the alignstack keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97457 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 17:53:39 +00:00
Dan Gohman
3a9fd8064a LLVM instruction syntax doesn't have trailing semicolons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97456 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 17:53:15 +00:00