Evan Cheng [Fri, 15 Jun 2007 19:06:07 +0000 (19:06 +0000)]
MachineInstr::isPredicable() is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37599
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 15 Jun 2007 19:05:13 +0000 (19:05 +0000)]
No longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37598
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 15 Jun 2007 19:04:19 +0000 (19:04 +0000)]
Workaround for PR1508.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37597
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jun 2007 18:00:55 +0000 (18:00 +0000)]
Use SCEVConstant::get instead of SCEVUnknown::get to create an
integer constant SCEV.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37596
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Jun 2007 17:55:15 +0000 (17:55 +0000)]
Fix test/Transforms/GVNPRE/2007-06-15-Looping.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37595
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Jun 2007 17:54:05 +0000 (17:54 +0000)]
Add a testcase where GVNPRE what getting confused by a loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37594
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 15 Jun 2007 17:34:48 +0000 (17:34 +0000)]
Extra edges are deleted later if needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37593
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 15 Jun 2007 17:13:53 +0000 (17:13 +0000)]
Use "ignore" rather than grep tricks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37592
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jun 2007 14:38:12 +0000 (14:38 +0000)]
Add a SCEV class and supporting code for sign-extend expressions.
This created an ambiguity for expandInTy to decide when to use
sign-extension or zero-extension, but it turns out that most of its callers
don't actually need a type conversion, now that LLVM types don't have
explicit signedness. Drop expandInTy in favor of plain expand, and change
the few places that actually need a type conversion to do it themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37591
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 15 Jun 2007 07:36:12 +0000 (07:36 +0000)]
Allow small blocks to be duplicated to enable if-conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37590
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 06:23:19 +0000 (06:23 +0000)]
Generalize many transforms to work on ~ of vectors in addition to ~ of
integer ops. This implements Transforms/InstCombine/and-or-not.ll
test3/test4, and finishes off PR1510
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37589
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 06:22:32 +0000 (06:22 +0000)]
add vector versions of this test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37588
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 06:13:47 +0000 (06:13 +0000)]
m_not should match vector not
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37587
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 06:10:53 +0000 (06:10 +0000)]
add a Constant::getAllOnesValue helper function, which works on integers
AND vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37586
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 06:04:24 +0000 (06:04 +0000)]
Enhance BinaryOperator::isNot to support vector not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37585
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 05:58:24 +0000 (05:58 +0000)]
Implement two xforms:
1. ~(~X | Y) === (X & ~Y)
2. (A|B) & ~(A&B) -> A^B
This allows us to transform ~(~(a|b) | (a&b)) -> a^b.
This implements PR1510 for scalar values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37584
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 05:57:20 +0000 (05:57 +0000)]
testcase for PR1510
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37583
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jun 2007 05:26:55 +0000 (05:26 +0000)]
delete some obviously dead vector operations, which deletes a few thousand
operations from Duraids example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37582
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 14 Jun 2007 23:34:09 +0000 (23:34 +0000)]
No really, clear predcessors states.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37581
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 14 Jun 2007 23:13:19 +0000 (23:13 +0000)]
If BB is predicated, invalidate its predecessor(s) which would if-convert it. It needs to be re-analyzed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37580
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 14 Jun 2007 22:58:02 +0000 (22:58 +0000)]
Rename MVT::getVectorBaseType to MVT::getVectorElementType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37579
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 14 Jun 2007 22:03:45 +0000 (22:03 +0000)]
Do not treat FP_REG_KILL as terminator in branch analysis (X86).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37578
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 14 Jun 2007 21:26:08 +0000 (21:26 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37577
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 14 Jun 2007 20:50:44 +0000 (20:50 +0000)]
Add a target hook to allow loads from constant pools to be rematerialized, and an
implementation for x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37576
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 14 Jun 2007 20:28:52 +0000 (20:28 +0000)]
Fix some stupid bugs that have effectively disabled if-conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37575
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 14 Jun 2007 15:00:27 +0000 (15:00 +0000)]
Eliminate some redundant newlines in asm output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37574
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 14 Jun 2007 11:27:07 +0000 (11:27 +0000)]
Fix typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37573
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Wed, 13 Jun 2007 22:20:15 +0000 (22:20 +0000)]
Add support to tablegen for specifying subregister classes on a per register class basis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37572
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 13 Jun 2007 17:59:52 +0000 (17:59 +0000)]
Handle blocks with 2 unconditional branches in AnalyzeBranch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37571
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 13 Jun 2007 16:53:21 +0000 (16:53 +0000)]
Only correctly lower exception handing intrinsics if exception handling is
turned on. Likewise for scanning of invokes to mark landing pads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37570
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 13 Jun 2007 15:12:02 +0000 (15:12 +0000)]
Introduce new SelectionDAG node opcodes VEXTRACT_SUBVECTOR and
VCONCAT_VECTORS. Use these for CopyToReg and CopyFromReg legalizing in
the case that the full register is to be split into subvectors instead
of scalars. This replaces uses of VBIT_CONVERT to present values as
vector-of-vector types in order to make whole subvectors accessible via
BUILD_VECTOR and EXTRACT_VECTOR_ELT.
This is in preparation for adding extended ValueType values, where
having vector-of-vector types is undesirable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37569
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 13 Jun 2007 14:55:16 +0000 (14:55 +0000)]
When creating CopyFromReg nodes, always use legal types. And use the
correct types for the result vector, even though it is currently bitcasted
to a different type immediately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37568
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 13 Jun 2007 05:51:31 +0000 (05:51 +0000)]
The fix that was applied for PR1224 stops the compiler
crashing but breaks exception handling. The problem
described in PR1224 is that invoke is a terminator that
can produce a value. The value may be needed in other
blocks. The code that writes to registers values needed
in other blocks runs before terminators are lowered (in
this case invoke) so asserted because the value was not
yet available. The fix that was applied was to do invoke
lowering earlier, before writing values to registers.
The problem this causes is that the code to copy values
to registers can be output after the invoke call. If
an exception is raised and control is passed to the
landing pad then this copy-code will never execute. If
the value is needed in some code path reached via the
landing pad then that code will get something bogus.
So revert the original fix and simply skip invoke values
in the general copying to registers code. Instead copy
the invoke value to a register in the invoke lowering code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37567
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Jun 2007 00:04:00 +0000 (00:04 +0000)]
Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37566
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 12 Jun 2007 23:54:05 +0000 (23:54 +0000)]
Now if-converting all 4 variants of triangles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37565
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 12 Jun 2007 22:43:57 +0000 (22:43 +0000)]
Fix test/Transforms/GVNPRE/2007-06-12-PhiTranslate.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37564
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 12 Jun 2007 22:42:35 +0000 (22:42 +0000)]
Add a test where phi translation was producing a null result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37563
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 17:50:25 +0000 (17:50 +0000)]
isReachableFromEntry() is not suitable for post dominator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37562
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 17:35:20 +0000 (17:35 +0000)]
Remove redundant check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37561
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 17:30:56 +0000 (17:30 +0000)]
Protect updateDFSNumbers()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37560
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 17:17:57 +0000 (17:17 +0000)]
Check A dominates B and vise versa first while searching for nearest
common dominator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37559
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 12 Jun 2007 17:01:15 +0000 (17:01 +0000)]
one final bugfix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37558
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 12 Jun 2007 17:00:26 +0000 (17:00 +0000)]
modernize example
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37557
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 12 Jun 2007 16:57:50 +0000 (16:57 +0000)]
Refactor some code, and fix test/Transforms/GVNPRE/2007-06-12-NoExit.ll by being more careful when using
post-dominator information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37556
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 12 Jun 2007 16:56:00 +0000 (16:56 +0000)]
Testcase where GVNPRE crashes on functions with no exit nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37555
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 12 Jun 2007 16:50:17 +0000 (16:50 +0000)]
Sink CmpInst's to their uses to reduce register pressure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37554
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 05:49:31 +0000 (05:49 +0000)]
Make DFS number manipulation methods private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37553
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 12 Jun 2007 04:40:48 +0000 (04:40 +0000)]
Make the run line for this test correct. Thanks to Chris for spotting it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37552
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 00:54:38 +0000 (00:54 +0000)]
Break DominatorTree from ETNode.
Remove unused PostETForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37551
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 12 Jun 2007 00:50:47 +0000 (00:50 +0000)]
Fix a few more bugs, including an instance of walking in reverse topological rather than topological order. This
fixes a testcase extracted from llvm-test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37550
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 12 Jun 2007 00:49:33 +0000 (00:49 +0000)]
Add a GVN-PRE basic regression test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37549
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 00:40:51 +0000 (00:40 +0000)]
Use SmallPtrSet instaed of std::set
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37548
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 00:35:38 +0000 (00:35 +0000)]
Check immediate dominators first while searching for nearset common dominator.
Fix 80 col violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37547
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 12 Jun 2007 00:14:41 +0000 (00:14 +0000)]
Maintain DFS number in DomTreeNode itself.
This means now ETNodes are not useful anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37546
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 11 Jun 2007 23:31:22 +0000 (23:31 +0000)]
Add and use DominatorTreeBase::findNearestCommonDominator().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37545
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Mon, 11 Jun 2007 23:16:16 +0000 (23:16 +0000)]
Fix a typo in bswap lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37544
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 11 Jun 2007 22:26:22 +0000 (22:26 +0000)]
Restructure code to reduce ifcvt compile time cost.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37543
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 11 Jun 2007 21:45:31 +0000 (21:45 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37542
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 11 Jun 2007 21:25:31 +0000 (21:25 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37541
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 11 Jun 2007 21:18:00 +0000 (21:18 +0000)]
Simplify. Dominator Tree is required so always available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37540
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 11 Jun 2007 16:25:17 +0000 (16:25 +0000)]
Handle functions with multiple exit blocks properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37539
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 11 Jun 2007 15:40:48 +0000 (15:40 +0000)]
Use DominatorTree instead of ETForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37538
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 10 Jun 2007 00:19:17 +0000 (00:19 +0000)]
Fix the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37537
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 9 Jun 2007 18:35:31 +0000 (18:35 +0000)]
Perform PRE of comparison operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37536
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 9 Jun 2007 06:10:47 +0000 (06:10 +0000)]
rename C files to end with .c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37535
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 9 Jun 2007 05:08:10 +0000 (05:08 +0000)]
fix x86-64 mmx calling convention for real, which passes in integer gprs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37534
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 9 Jun 2007 05:01:50 +0000 (05:01 +0000)]
fix mmx handling bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37533
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Jun 2007 04:20:33 +0000 (04:20 +0000)]
Fix edge case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37532
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 9 Jun 2007 01:03:43 +0000 (01:03 +0000)]
Don't change CFG during analysis stage. Do so during ifcvt and invalidate predecessors accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37531
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 8 Jun 2007 22:02:36 +0000 (22:02 +0000)]
Collect statistics from GVN-PRE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37530
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Jun 2007 22:01:07 +0000 (22:01 +0000)]
Carefully remove extraneous CFG edges after each ifcvt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37529
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Jun 2007 21:59:56 +0000 (21:59 +0000)]
Add a utility routine to check for unpredicated terminator instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37528
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Fri, 8 Jun 2007 21:06:23 +0000 (21:06 +0000)]
Define AsmTransCBE for ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37527
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 8 Jun 2007 20:57:08 +0000 (20:57 +0000)]
Fix typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37526
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 8 Jun 2007 20:44:02 +0000 (20:44 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37525
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Jun 2007 19:17:12 +0000 (19:17 +0000)]
Correct transfer predicate information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37524
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Jun 2007 19:10:51 +0000 (19:10 +0000)]
Hidden options to help debugging ifcvt issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37523
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 8 Jun 2007 17:59:02 +0000 (17:59 +0000)]
Fix spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37522
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Fri, 8 Jun 2007 17:20:08 +0000 (17:20 +0000)]
Add entry to CREDITS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37521
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Fri, 8 Jun 2007 17:18:56 +0000 (17:18 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37520
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Jun 2007 16:52:14 +0000 (16:52 +0000)]
wording fix noticed by Ivan Novick
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37519
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Jun 2007 09:36:04 +0000 (09:36 +0000)]
Allow more cmp / bcc to be predicated; clean up triangle ifcvt checking code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37518
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Jun 2007 09:14:47 +0000 (09:14 +0000)]
Fix ARM condition code subsumission check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37517
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Jun 2007 09:13:23 +0000 (09:13 +0000)]
tBcc is not a barrier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37516
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 8 Jun 2007 08:59:11 +0000 (08:59 +0000)]
Use more realistically sized vectors. Reserve capacity if we know in advance
how much will be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37515
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 8 Jun 2007 01:52:45 +0000 (01:52 +0000)]
Small bugfix, and const-ify some methods (Thanks, Bill).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37513
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 8 Jun 2007 01:50:32 +0000 (01:50 +0000)]
Update LoopSimplify to require and preserve DominatorTree only.
Now LoopSimplify does not require nor preserve ETForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37512
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 8 Jun 2007 01:08:52 +0000 (01:08 +0000)]
Make throttle a hidden parameter, per review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37511
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 8 Jun 2007 01:03:01 +0000 (01:03 +0000)]
Add partial redundancy elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37510
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 8 Jun 2007 00:34:27 +0000 (00:34 +0000)]
Throttle tail merging; handling blocks with large numbers of predecessors
is too slow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37509
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 8 Jun 2007 00:21:17 +0000 (00:21 +0000)]
Add new method - nearestCommonDominator().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37508
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 8 Jun 2007 00:17:13 +0000 (00:17 +0000)]
Use DominatorTree instead of ETForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37507
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 8 Jun 2007 00:02:08 +0000 (00:02 +0000)]
Do not preserve ETForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37506
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 7 Jun 2007 23:53:38 +0000 (23:53 +0000)]
Use DominatorTree instead of ETForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37505
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 7 Jun 2007 23:52:40 +0000 (23:52 +0000)]
Add instruction level dominates(A,B) interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37504
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 7 Jun 2007 22:31:28 +0000 (22:31 +0000)]
Only remove the edge from entry to false if false block is merged.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37503
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 7 Jun 2007 22:21:15 +0000 (22:21 +0000)]
Do not require ETForest. Now it is unused by LICM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37502
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 7 Jun 2007 22:17:16 +0000 (22:17 +0000)]
Do not use ETForest as well as DomiantorTree. DominatorTree is sufficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37501
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 7 Jun 2007 21:57:03 +0000 (21:57 +0000)]
Use DominatorTree instead of ETForest.
This allows faster immediate domiantor walk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37500
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 7 Jun 2007 21:42:15 +0000 (21:42 +0000)]
Use DominatorTree instead of ETForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37499
91177308-0d34-0410-b5e6-
96231b3b80d8