Owen Anderson
1e60429027
Collect statistics from GVN-PRE.
...
llvm-svn: 37530
2007-06-08 22:02:36 +00:00
Evan Cheng
7996fc5d23
Carefully remove extraneous CFG edges after each ifcvt.
...
llvm-svn: 37529
2007-06-08 22:01:07 +00:00
Evan Cheng
1a6c0341fd
Add a utility routine to check for unpredicated terminator instruction.
...
llvm-svn: 37528
2007-06-08 21:59:56 +00:00
Lauro Ramos Venancio
ec8ae8443a
Define AsmTransCBE for ARM.
...
llvm-svn: 37527
2007-06-08 21:06:23 +00:00
Owen Anderson
2cf00c37de
Fix typo in a comment.
...
llvm-svn: 37526
2007-06-08 20:57:08 +00:00
Owen Anderson
4621335527
Fix a bug that was causing the elimination phase not to replace values when it should be.
...
With this patch, GVN-PRE now correctly optimizes the example from the thesis.
Many thanks to Daniel Berlin for helping me find errors in this.
llvm-svn: 37525
2007-06-08 20:44:02 +00:00
Evan Cheng
515e2537d7
Correct transfer predicate information.
...
llvm-svn: 37524
2007-06-08 19:17:12 +00:00
Evan Cheng
49720a7312
Hidden options to help debugging ifcvt issues.
...
llvm-svn: 37523
2007-06-08 19:10:51 +00:00
Devang Patel
d1a779c4fe
Fix spelling.
...
llvm-svn: 37522
2007-06-08 17:59:02 +00:00
David Greene
8122635664
Add entry to CREDITS.
...
llvm-svn: 37521
2007-06-08 17:20:08 +00:00
David Greene
6b14050d1e
Factor live variable analysis so it does not do register coalescing
...
simultaneously. Move that pass to SimpleRegisterCoalescing.
This makes it easier to implement alternative register allocation and
coalescing strategies while maintaining reuse of the existing live
interval analysis.
llvm-svn: 37520
2007-06-08 17:18:56 +00:00
Chris Lattner
5fa8565289
wording fix noticed by Ivan Novick
...
llvm-svn: 37519
2007-06-08 16:52:14 +00:00
Evan Cheng
a41764f141
Allow more cmp / bcc to be predicated; clean up triangle ifcvt checking code.
...
llvm-svn: 37518
2007-06-08 09:36:04 +00:00
Evan Cheng
4c6df8ba37
Fix ARM condition code subsumission check.
...
llvm-svn: 37517
2007-06-08 09:14:47 +00:00
Evan Cheng
8eff719058
tBcc is not a barrier.
...
llvm-svn: 37516
2007-06-08 09:13:23 +00:00
Duncan Sands
f31e17574a
Use more realistically sized vectors. Reserve capacity if we know in advance
...
how much will be used.
llvm-svn: 37515
2007-06-08 08:59:11 +00:00
Owen Anderson
64daf17aa0
Small bugfix, and const-ify some methods (Thanks, Bill).
...
llvm-svn: 37513
2007-06-08 01:52:45 +00:00
Devang Patel
cfb3a761ae
Update LoopSimplify to require and preserve DominatorTree only.
...
Now LoopSimplify does not require nor preserve ETForest.
llvm-svn: 37512
2007-06-08 01:50:32 +00:00
Dale Johannesen
74ffb6ffb3
Make throttle a hidden parameter, per review.
...
llvm-svn: 37511
2007-06-08 01:08:52 +00:00
Owen Anderson
ccd2616fbb
Add partial redundancy elimination.
...
llvm-svn: 37510
2007-06-08 01:03:01 +00:00
Dale Johannesen
0903dd4e52
Throttle tail merging; handling blocks with large numbers of predecessors
...
is too slow.
llvm-svn: 37509
2007-06-08 00:34:27 +00:00
Devang Patel
738f460b18
Add new method - nearestCommonDominator().
...
llvm-svn: 37508
2007-06-08 00:21:17 +00:00
Devang Patel
d544f5262e
Use DominatorTree instead of ETForest.
...
llvm-svn: 37507
2007-06-08 00:17:13 +00:00
Devang Patel
b5554f450a
Do not preserve ETForest.
...
llvm-svn: 37506
2007-06-08 00:02:08 +00:00
Devang Patel
67ede3d635
Use DominatorTree instead of ETForest.
...
llvm-svn: 37505
2007-06-07 23:53:38 +00:00
Devang Patel
9772222f41
Add instruction level dominates(A,B) interface.
...
llvm-svn: 37504
2007-06-07 23:52:40 +00:00
Evan Cheng
2b9e9abed1
Only remove the edge from entry to false if false block is merged.
...
llvm-svn: 37503
2007-06-07 22:31:28 +00:00
Devang Patel
8d261e921f
Do not require ETForest. Now it is unused by LICM.
...
llvm-svn: 37502
2007-06-07 22:21:15 +00:00
Devang Patel
3daf3625ab
Do not use ETForest as well as DomiantorTree. DominatorTree is sufficient.
...
llvm-svn: 37501
2007-06-07 22:17:16 +00:00
Devang Patel
a466c96f77
Use DominatorTree instead of ETForest.
...
This allows faster immediate domiantor walk.
llvm-svn: 37500
2007-06-07 21:57:03 +00:00
Devang Patel
5678b94d16
Use DominatorTree instead of ETForest.
...
llvm-svn: 37499
2007-06-07 21:42:15 +00:00
Devang Patel
de2a20aefe
Use DominatorTree instead of ETForest.
...
llvm-svn: 37498
2007-06-07 21:35:27 +00:00
Devang Patel
3aece48470
Add basic block level properlyDominates(A,B) interface.
...
llvm-svn: 37497
2007-06-07 21:34:22 +00:00
Dale Johannesen
0f3c011fd5
Do not change the size of function arguments. PR 1489.
...
llvm-svn: 37496
2007-06-07 21:07:15 +00:00
Devang Patel
5c0808db4f
Use DominatorTree instead of ETForest.
...
llvm-svn: 37495
2007-06-07 18:45:06 +00:00
Devang Patel
700d930e73
Use DominatorTree instead of ETForest.
...
llvm-svn: 37494
2007-06-07 18:40:55 +00:00
Devang Patel
e63f8b85f7
Add BasicBlock level dominates(A,B) interface.
...
llvm-svn: 37493
2007-06-07 18:39:40 +00:00
Devang Patel
babcd06827
Maintain ETNode as part of DomTreeNode.
...
This adds redundancy for now.
llvm-svn: 37492
2007-06-07 17:47:21 +00:00
Tanya Lattner
968030663f
Formating fixes.
...
llvm-svn: 37491
2007-06-07 17:12:16 +00:00
Tanya Lattner
4b2d7681e2
Correct typo. Should be "not allowed"
...
llvm-svn: 37490
2007-06-07 16:44:52 +00:00
Duncan Sands
99b3a9544d
Make the struct bigger, in an attempt to get a "struct return" on more
...
platforms.
llvm-svn: 37489
2007-06-07 09:35:33 +00:00
Duncan Sands
018cc4f08e
Make this test pass if llvm-g++ was built without exception handling support.
...
llvm-svn: 37488
2007-06-07 09:00:48 +00:00
Evan Cheng
4f73706838
ifcvt a triangle: don't merge ifcvt block with rejoin block if it can fall through to it. If merged, the resulting block is not a candidate for iterative ifcvting since it contains both predicated and non-predicated code.
...
llvm-svn: 37487
2007-06-07 08:13:00 +00:00
Zhou Sheng
030400527a
Add assert to check if the attributes ZExt/SExt, NoAlias are apply to the
...
correct type of parameters.
llvm-svn: 37486
2007-06-07 06:12:03 +00:00
Evan Cheng
d440a235a1
Lots of bug fixes. Now finally in a reasonable state.
...
llvm-svn: 37485
2007-06-07 02:12:15 +00:00
Evan Cheng
9f23724d53
Stupid cut-n-paste bug caused me soooo much grief. Why wasn't there a compilation warning? I blame it on the FE folks.
...
llvm-svn: 37484
2007-06-07 01:37:54 +00:00
Lauro Ramos Venancio
4cd6971f99
Fix bugpoint to run -llc-safe with -Xlinker.
...
llvm-svn: 37483
2007-06-06 23:10:56 +00:00
Lauro Ramos Venancio
9907d0f8db
Propagate alignment, section name and visibility when linking "appending
...
global values".
Fix noinline linkage.
llvm-svn: 37482
2007-06-06 22:01:12 +00:00
Tanya Lattner
9672d69be2
Instruct the inliner to obey the noinline attribute. Add test case.
...
llvm-svn: 37481
2007-06-06 21:59:26 +00:00
Tanya Lattner
c7e990a524
Really use attribute.
...
llvm-svn: 37480
2007-06-06 21:00:46 +00:00