oota-llvm.git
16 years agoRemove unnecessary comments.
Devang Patel [Thu, 28 Jun 2007 02:11:54 +0000 (02:11 +0000)]
Remove unnecessary comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37774 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle the case when block dominates itself.
Devang Patel [Thu, 28 Jun 2007 02:07:08 +0000 (02:07 +0000)]
Handle the case when block dominates itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37773 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago- Undo previous check and allow loop switch for condtion that is not inside
Devang Patel [Thu, 28 Jun 2007 02:05:46 +0000 (02:05 +0000)]
- Undo previous check and allow loop switch for condtion that is not inside
loop.
- Avoid loop unswich for loop header branch.
- While cloning dominators fix typo and handle self dominating blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37772 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate LoopUnswitch pass to preserve DomiantorTree.
Devang Patel [Thu, 28 Jun 2007 00:49:00 +0000 (00:49 +0000)]
Update LoopUnswitch pass to preserve DomiantorTree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37771 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoIf a condition is not inside a loop then the condition is suitable
Devang Patel [Thu, 28 Jun 2007 00:44:10 +0000 (00:44 +0000)]
If a condition is not inside a loop then the condition is suitable
to loop unswitch candidate for the loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37770 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake many sets a much more reasonable size. This decreases the time to optimize
Owen Anderson [Thu, 28 Jun 2007 00:34:34 +0000 (00:34 +0000)]
Make many sets a much more reasonable size.  This decreases the time to optimize
Anton's testcase from 35.5s to 34.7s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37769 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSet implied features based upon the CPU's feature list.
Bill Wendling [Wed, 27 Jun 2007 23:34:06 +0000 (23:34 +0000)]
Set implied features based upon the CPU's feature list.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37768 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate. Now, -etforest is an invalid option.
Devang Patel [Wed, 27 Jun 2007 22:58:12 +0000 (22:58 +0000)]
Update. Now, -etforest is an invalid option.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37767 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agollvm-nm must print the alias symbols.
Lauro Ramos Venancio [Wed, 27 Jun 2007 22:08:09 +0000 (22:08 +0000)]
llvm-nm must print the alias symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37766 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove ETForest.
Devang Patel [Wed, 27 Jun 2007 20:53:52 +0000 (20:53 +0000)]
Remove ETForest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37765 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoIf a livein is not used in the block. It's live through.
Evan Cheng [Wed, 27 Jun 2007 18:47:28 +0000 (18:47 +0000)]
If a livein is not used in the block. It's live through.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37764 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPartial fix for PR1502: If a EH register is needed in a successor of landing pad...
Evan Cheng [Wed, 27 Jun 2007 18:45:32 +0000 (18:45 +0000)]
Partial fix for PR1502: If a EH register is needed in a successor of landing pad, add it as livein to all the blocks in the paths between the landing pad and the specified block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37763 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse cached information that has already been computed to make clean() simpler and...
Owen Anderson [Wed, 27 Jun 2007 17:38:29 +0000 (17:38 +0000)]
Use cached information that has already been computed to make clean() simpler and faster.  This is a small speedup on most cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37761 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOne additional field in TargetRegisterDesc.
Evan Cheng [Wed, 27 Jun 2007 17:09:34 +0000 (17:09 +0000)]
One additional field in TargetRegisterDesc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37760 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFold a lot of code into two cases: binary instructions and ternary instructions.
Owen Anderson [Wed, 27 Jun 2007 17:03:03 +0000 (17:03 +0000)]
Fold a lot of code into two cases: binary instructions and ternary instructions.
This saves many lines of code duplication.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37759 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT.
Dan Gohman [Wed, 27 Jun 2007 16:08:04 +0000 (16:08 +0000)]
Rename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37758 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDocument the encoding of MVT::ValueType.
Dan Gohman [Wed, 27 Jun 2007 15:28:26 +0000 (15:28 +0000)]
Document the encoding of MVT::ValueType.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37757 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove a redundant newline in the asm output for ELF .rodata sections.
Dan Gohman [Wed, 27 Jun 2007 15:09:47 +0000 (15:09 +0000)]
Remove a redundant newline in the asm output for ELF .rodata sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37756 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse getVectorTypeBreakdown in FunctionLoweringInfo::CreateRegForValue
Dan Gohman [Wed, 27 Jun 2007 14:34:07 +0000 (14:34 +0000)]
Use getVectorTypeBreakdown in FunctionLoweringInfo::CreateRegForValue
to compute the number and type of registers needed for vector values
instead of computing it manually. This fixes PR1529.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37755 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAllow DOUT to be used outside of the llvm namespace.
Dan Gohman [Wed, 27 Jun 2007 14:09:38 +0000 (14:09 +0000)]
Allow DOUT to be used outside of the llvm namespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37753 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake the comment for ScalarizeVectorOp mention that it is only for use
Dan Gohman [Wed, 27 Jun 2007 14:06:22 +0000 (14:06 +0000)]
Make the comment for ScalarizeVectorOp mention that it is only for use
with single-element vectors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37752 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a bug.
Zhou Sheng [Wed, 27 Jun 2007 09:50:26 +0000 (09:50 +0000)]
Fix a bug.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37751 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agook, this is something of a dirty hack, but it seems to work. (fixes e.g.
Duraid Madina [Wed, 27 Jun 2007 09:01:14 +0000 (09:01 +0000)]
ok, this is something of a dirty hack, but it seems to work. (fixes e.g.
the SPASS miscompilation)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37750 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agook, this much doesn't seem to bork anything
Duraid Madina [Wed, 27 Jun 2007 08:31:07 +0000 (08:31 +0000)]
ok, this much doesn't seem to bork anything

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37749 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorevert evan's fixes (and my doofusness) since they had a huge code
Duraid Madina [Wed, 27 Jun 2007 08:11:59 +0000 (08:11 +0000)]
revert evan's fixes (and my doofusness) since they had a huge code
quality hit. will look at this soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37748 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agopull evan's fixes - should help the nightly tester (but there are still
Duraid Madina [Wed, 27 Jun 2007 07:07:13 +0000 (07:07 +0000)]
pull evan's fixes - should help the nightly tester (but there are still
some issues)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37747 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReplace std::set with SmallPtrSet.
Evan Cheng [Wed, 27 Jun 2007 05:23:00 +0000 (05:23 +0000)]
Replace std::set with SmallPtrSet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37746 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd support for performing GVNPRE on the three vector-specific operations.
Owen Anderson [Wed, 27 Jun 2007 04:10:46 +0000 (04:10 +0000)]
Add support for performing GVNPRE on the three vector-specific operations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37745 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd tests for performing GVNPRE on the three vector-specific instructions.
Owen Anderson [Wed, 27 Jun 2007 04:06:32 +0000 (04:06 +0000)]
Add tests for performing GVNPRE on the three vector-specific instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37744 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix an obvious bug. Old code only worked for the entry block.
Evan Cheng [Wed, 27 Jun 2007 01:16:36 +0000 (01:16 +0000)]
Fix an obvious bug. Old code only worked for the entry block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37743 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago1. Correct some comments and clean up some dead code.
Owen Anderson [Tue, 26 Jun 2007 23:29:41 +0000 (23:29 +0000)]
1. Correct some comments and clean  up some dead code.
2. When calculating ANTIC_IN, only iterate the changed blocks.  For most average
inputs this is a small speedup, but for cases with unusual CFGs, this can be a significant win.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37742 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd comment.
Evan Cheng [Tue, 26 Jun 2007 21:19:07 +0000 (21:19 +0000)]
Add comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37741 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCorrectly handle implcit def / use operands.
Evan Cheng [Tue, 26 Jun 2007 21:05:13 +0000 (21:05 +0000)]
Correctly handle implcit def / use operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37740 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoProperly handle kills of a physical register which has sub-registers that are read...
Evan Cheng [Tue, 26 Jun 2007 21:03:35 +0000 (21:03 +0000)]
Properly handle kills of a physical register which has sub-registers that are read by later instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37739 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd immediate sub-registers.
Evan Cheng [Tue, 26 Jun 2007 20:59:16 +0000 (20:59 +0000)]
Add immediate sub-registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37738 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSilence a warning.
Evan Cheng [Tue, 26 Jun 2007 18:31:22 +0000 (18:31 +0000)]
Silence a warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37737 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate for Subversion conversion:
Reid Spencer [Tue, 26 Jun 2007 17:08:16 +0000 (17:08 +0000)]
Update for Subversion conversion:
1. Fix comments for -usesvn and -svnurl options.
2. Fix default URL for SVN access.
3. Fix paths to accommodate "trunk" when checking out from SVN.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37736 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReplace ?: with if statements, for clarity.
Dan Gohman [Tue, 26 Jun 2007 16:19:08 +0000 (16:19 +0000)]
Replace ?: with if statements, for clarity.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37735 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSimplify the expression for MVT::isExtendedValueType.
Dan Gohman [Tue, 26 Jun 2007 15:20:04 +0000 (15:20 +0000)]
Simplify the expression for MVT::isExtendedValueType.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37733 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSimplify the expression for TargetLowering::isTypeLegal.
Dan Gohman [Tue, 26 Jun 2007 15:16:27 +0000 (15:16 +0000)]
Simplify the expression for TargetLowering::isTypeLegal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37732 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse utostr from StringExtras.h instead of ostringstream from <sstream>.
Dan Gohman [Tue, 26 Jun 2007 15:14:48 +0000 (15:14 +0000)]
Use utostr from StringExtras.h instead of ostringstream from <sstream>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37731 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRenumber the SimpleValueType values to fill in the hole left by
Dan Gohman [Tue, 26 Jun 2007 14:28:59 +0000 (14:28 +0000)]
Renumber the SimpleValueType values to fill in the hole left by
removing MVT::Vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37730 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRevert the earlier change that removed the M_REMATERIALIZABLE machine
Dan Gohman [Tue, 26 Jun 2007 00:48:07 +0000 (00:48 +0000)]
Revert the earlier change that removed the M_REMATERIALIZABLE machine
instruction flag, and use the flag along with a virtual member function
hook for targets to override if there are instructions that are only
trivially rematerializable with specific operands (i.e. constant pool
loads).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37728 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a typo in a comment.
Dan Gohman [Tue, 26 Jun 2007 00:43:18 +0000 (00:43 +0000)]
Fix a typo in a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37727 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd a convenince member function for appending strings to a module's
Dan Gohman [Tue, 26 Jun 2007 00:38:49 +0000 (00:38 +0000)]
Add a convenince member function for appending strings to a module's
module-level asm string data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37726 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agotidy this file up a bit
Duraid Madina [Tue, 26 Jun 2007 00:21:58 +0000 (00:21 +0000)]
tidy this file up a bit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37725 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoA bunch of fixes to the BigBlock allocator improve compile-time by ~20%
Duraid Madina [Mon, 25 Jun 2007 23:46:54 +0000 (23:46 +0000)]
A bunch of fixes to the BigBlock allocator improve compile-time by ~20%
and code quality by ~2% on my tests.

A big thank you to Roman Levenstein for this patch! See
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070618/050717.html
for more details.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37724 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agofix Transforms/Inline/2007-06-25-WeakInline.ll by not inlining functions
Chris Lattner [Mon, 25 Jun 2007 21:50:09 +0000 (21:50 +0000)]
fix Transforms/Inline/2007-06-25-WeakInline.ll by not inlining functions
with weak linkage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37723 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agonew testcase, the inliner shouldn't inline this.
Chris Lattner [Mon, 25 Jun 2007 21:49:53 +0000 (21:49 +0000)]
new testcase, the inliner shouldn't inline this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37722 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse the built-in postorder iterators rather than computing a postorder walk by hand.
Owen Anderson [Mon, 25 Jun 2007 18:25:31 +0000 (18:25 +0000)]
Use the built-in postorder iterators rather than computing a postorder walk by hand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37721 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix PR1525:
Reid Spencer [Mon, 25 Jun 2007 16:45:54 +0000 (16:45 +0000)]
Fix PR1525:
Use a better determinator for identifying constant array initializers that
are or are not zero terminated and generate code appropriately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37720 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoGeneralize MVT::ValueType and associated functions to be able to represent
Dan Gohman [Mon, 25 Jun 2007 16:23:39 +0000 (16:23 +0000)]
Generalize MVT::ValueType and associated functions to be able to represent
extended vector types. Remove the special SDNode opcodes used for pre-legalize
vector operations, and the special MVT::Vector type used with them. Adjust
lowering and legalize to work with the normal SDNode kinds instead, and to
use the normal MVT functions to work with vector types instead of using the
two special operands that the pre-legalize nodes held.

This allows pre-legalize and post-legalize DAGs, and the code that operates
on them, to be more consistent. Pre-legalize vector operators can be handled
more consistently with scalar operators. And, -view-dag-combine1-dags and
-view-legalize-dags now look prettier for vector code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37719 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake minor adjustments to whitespace and comments to reduce differences
Dan Gohman [Mon, 25 Jun 2007 15:44:19 +0000 (15:44 +0000)]
Make minor adjustments to whitespace and comments to reduce differences
between SSE1 instructions and their respective SSE2 analogues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37718 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix loadv2i32 to be loadv4i32, though it isn't actually used anywhere yet.
Dan Gohman [Mon, 25 Jun 2007 15:19:03 +0000 (15:19 +0000)]
Fix loadv2i32 to be loadv4i32, though it isn't actually used anywhere yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37717 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSay AT&T instead of Intel in the comments for AT&T support.
Dan Gohman [Mon, 25 Jun 2007 15:11:25 +0000 (15:11 +0000)]
Say AT&T instead of Intel in the comments for AT&T support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37716 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoProvide hook for alloca on VCPP. Patch by Scott Graham
Anton Korobeynikov [Mon, 25 Jun 2007 07:12:14 +0000 (07:12 +0000)]
Provide hook for alloca on VCPP. Patch by Scott Graham

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37715 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago1) Fix an issue with non-deterministic iteration order in phi_translate
Owen Anderson [Mon, 25 Jun 2007 05:41:12 +0000 (05:41 +0000)]
1) Fix an issue with non-deterministic iteration order in phi_translate
2) Remove some maximal-set computing code that is no longer used.
3) Use a post-order CFG traversal to compute ANTIC_IN instead of a postdom traversal.
This causes the ANTIC_IN calculation to converge much faster.  Thanks to Daniel Berlin for suggesting this.

With this patch, the time to optimize 403.gcc decreased from 17.5s to 7.5s, and Anton's huge
testcase decreased from 62 minutes to 38 seconds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37714 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix value ranges.
Nick Lewycky [Sun, 24 Jun 2007 20:14:22 +0000 (20:14 +0000)]
Fix value ranges.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37713 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a silly mistake that was causing failures.
Owen Anderson [Sun, 24 Jun 2007 08:42:24 +0000 (08:42 +0000)]
Fix a silly mistake that was causing failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37712 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRename variables to expose the fact that this test is failing.
Owen Anderson [Sun, 24 Jun 2007 08:17:41 +0000 (08:17 +0000)]
Rename variables to expose the fact that this test is failing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37711 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove tabs.
Nick Lewycky [Sun, 24 Jun 2007 04:40:16 +0000 (04:40 +0000)]
Remove tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37710 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove use of ETForest. Also cleaned up issues around unreachable basic
Nick Lewycky [Sun, 24 Jun 2007 04:36:20 +0000 (04:36 +0000)]
Remove use of ETForest. Also cleaned up issues around unreachable basic
blocks, and optimizing within one basic block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37709 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRework topo_sort so eliminate some behavior that scaled terribly. This reduces the...
Owen Anderson [Fri, 22 Jun 2007 21:31:16 +0000 (21:31 +0000)]
Rework topo_sort so eliminate some behavior that scaled terribly.  This reduces the time to optimize 403.gcc from 18.2s to 17.5s,
and has an even larger effect on larger testcases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37708 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPerform fewer set insertions while calculating ANTIC_IN. This reduces the amount...
Owen Anderson [Fri, 22 Jun 2007 18:27:04 +0000 (18:27 +0000)]
Perform fewer set insertions while calculating ANTIC_IN.  This reduces the amount of time to optimize 403.gcc from 21.9s to 18.2s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37707 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove some code that I was using for collecting performance information that should...
Owen Anderson [Fri, 22 Jun 2007 17:04:40 +0000 (17:04 +0000)]
Remove some code that I was using for collecting performance information that should not have been committed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37706 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix the build.
Owen Anderson [Fri, 22 Jun 2007 16:59:54 +0000 (16:59 +0000)]
Fix the build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37705 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMove ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from
Dan Gohman [Fri, 22 Jun 2007 14:59:07 +0000 (14:59 +0000)]
Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from
TargetLowering to SelectionDAG so that they have more convenient
access to the current DAG, in preparation for the ValueType routines
being changed from standalone functions to members of SelectionDAG for
the pre-legalize vector type changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37704 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agocheck in the BigBlock local register allocator
Duraid Madina [Fri, 22 Jun 2007 08:27:12 +0000 (08:27 +0000)]
check in the BigBlock local register allocator

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37703 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAvoid excessive calls to find_leader when calculating AVAIL_OUT. This reduces the...
Owen Anderson [Fri, 22 Jun 2007 03:14:03 +0000 (03:14 +0000)]
Avoid excessive calls to find_leader when calculating AVAIL_OUT.  This reduces the time to optimize 403.gcc from 23.5s to 21.9s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37702 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agostd::set is really really terrible. Switch to SmallPtrSet to reduce compile time...
Evan Cheng [Fri, 22 Jun 2007 01:35:51 +0000 (01:35 +0000)]
std::set is really really terrible. Switch to SmallPtrSet to reduce compile time. For Duraid's example. The overall isel time is reduced from 0.6255 sec to 0.1876 sec.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37701 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoQuote complex names for Darwin X86 and ARM.
Dale Johannesen [Fri, 22 Jun 2007 00:54:56 +0000 (00:54 +0000)]
Quote complex names for Darwin X86 and ARM.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37700 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoReserve space in vectors before topologically sorting into them. This improves the...
Owen Anderson [Fri, 22 Jun 2007 00:43:22 +0000 (00:43 +0000)]
Reserve space in vectors before topologically sorting into them.  This improves the time to optimize 403.gcc from 28s to 23.5s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37699 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake a bunch of optimizations for compile time to GVNPRE, including smarter set union...
Owen Anderson [Fri, 22 Jun 2007 00:20:30 +0000 (00:20 +0000)]
Make a bunch of optimizations for compile time to GVNPRE, including smarter set unions, deferring blocks rather than computing maximal sets, and smarter use of sets.  With these enhancements, the time to optimize 273.perlbmk goes from 5.3s to 2.7s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37698 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a bug in SmallPtrSet that was causing GVNPRE to enter an infinite loop.
Owen Anderson [Fri, 22 Jun 2007 00:11:18 +0000 (00:11 +0000)]
Fix a bug in SmallPtrSet that was causing GVNPRE to enter an infinite loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37697 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoTwo changes:
Chris Lattner [Thu, 21 Jun 2007 23:23:32 +0000 (23:23 +0000)]
Two changes:
 1. Make SmallPtrSet::erase faster in the small case by replacing a memmove
    with a pointer copy.
 2. Fix a bug where the null terminator at the end of the array in the small
    case was not copied

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37696 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCallGraphSCCPass manager may require other passes.
Devang Patel [Thu, 21 Jun 2007 22:29:02 +0000 (22:29 +0000)]
CallGraphSCCPass manager may require other passes.
Use schedulePass() to accomodate these requirement instead of directly
assigning a manager to new CallGraph PassManager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37695 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHave internal df_iterator's use SmallPtrSet instead of std::set. This provides compi...
Owen Anderson [Thu, 21 Jun 2007 21:25:36 +0000 (21:25 +0000)]
Have internal df_iterator's use SmallPtrSet instead of std::set.  This provides compile time speedups to any pass using df_iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37694 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix tests.
Evan Cheng [Thu, 21 Jun 2007 18:22:42 +0000 (18:22 +0000)]
Fix tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37693 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSignificantly improve the documentation of the instcombine divide/compare
Chris Lattner [Thu, 21 Jun 2007 18:11:19 +0000 (18:11 +0000)]
Significantly improve the documentation of the instcombine divide/compare
transformation.  Also, keep track of which end of the integer interval overflows
occur on.  This fixes Transforms/InstCombine/2007-06-21-DivCompareMiscomp.ll
and rdar://5278853, a miscompilation of perl.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37692 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agonew testcase miscompiled by instcombine, reduced from perl
Chris Lattner [Thu, 21 Jun 2007 18:09:25 +0000 (18:09 +0000)]
new testcase miscompiled by instcombine, reduced from perl

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37691 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChange lots of sets from std::set to SmallPtrSet. This reduces the time required...
Owen Anderson [Thu, 21 Jun 2007 17:57:53 +0000 (17:57 +0000)]
Change lots of sets from std::set to SmallPtrSet.  This reduces the time required to optimize 253.perlbmk from 10.9s to 5.3s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37690 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMove code to update dominator information after basic block is split
Devang Patel [Thu, 21 Jun 2007 17:23:45 +0000 (17:23 +0000)]
Move code to update dominator information after basic block is split
from LoopSimplify.cpp to Dominator.cpp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37689 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoTidy up ValueType names in comments.
Dan Gohman [Thu, 21 Jun 2007 14:48:26 +0000 (14:48 +0000)]
Tidy up ValueType names in comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37688 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRename TargetLowering::getNumElements and friends to
Dan Gohman [Thu, 21 Jun 2007 14:42:22 +0000 (14:42 +0000)]
Rename TargetLowering::getNumElements and friends to
TargetLowering::getNumRegisters and similar, to avoid confusion with
the actual number of elements for vector types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37687 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoNew tests.
Evan Cheng [Thu, 21 Jun 2007 07:40:00 +0000 (07:40 +0000)]
New tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37686 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoXforms:
Evan Cheng [Thu, 21 Jun 2007 07:39:16 +0000 (07:39 +0000)]
Xforms:
(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))
(sub x, (select cc, 0, c)) -> (select cc, x, (sub, x, c))

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37685 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoEliminate a redundant check. This speeds up optimization of 253.perlbmk from 13...
Owen Anderson [Thu, 21 Jun 2007 01:59:05 +0000 (01:59 +0000)]
Eliminate a redundant check.  This speeds up optimization of 253.perlbmk from 13.5 seconds to 10.9 seconds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37683 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoComment-ize the functions in GVNPRE.
Owen Anderson [Thu, 21 Jun 2007 00:19:05 +0000 (00:19 +0000)]
Comment-ize the functions in GVNPRE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37681 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorefactor a bunch of code out of visitICmpInstWithInstAndIntCst into its own
Chris Lattner [Wed, 20 Jun 2007 23:46:26 +0000 (23:46 +0000)]
refactor a bunch of code out of visitICmpInstWithInstAndIntCst into its own
routine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37679 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSplit runOnFunction into many smaller functions. This make it easier to get accurate...
Owen Anderson [Wed, 20 Jun 2007 22:10:02 +0000 (22:10 +0000)]
Split runOnFunction into many smaller functions.  This make it easier to get accurate performance analysis of GVNPRE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37678 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoModify deleting global variable with an even easier way.
Tanya Lattner [Wed, 20 Jun 2007 20:46:37 +0000 (20:46 +0000)]
Modify deleting global variable with an even easier way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37676 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate AnalysisGroup documentation to document restriction that allows
Devang Patel [Wed, 20 Jun 2007 18:51:14 +0000 (18:51 +0000)]
Update AnalysisGroup documentation to document restriction that allows
only one ImmutablePass in a group.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37675 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd blurb on deleting global variables.
Tanya Lattner [Wed, 20 Jun 2007 18:33:15 +0000 (18:33 +0000)]
Add blurb on deleting global variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37674 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake GVNPRE accurate report whether it modified the function or not.
Owen Anderson [Wed, 20 Jun 2007 18:30:20 +0000 (18:30 +0000)]
Make GVNPRE accurate report whether it modified the function or not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37673 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded some if-conversion tests.
Evan Cheng [Wed, 20 Jun 2007 18:26:15 +0000 (18:26 +0000)]
Added some if-conversion tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37672 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoGet rid of an unneeded helper function.
Owen Anderson [Wed, 20 Jun 2007 00:43:33 +0000 (00:43 +0000)]
Get rid of an unneeded helper function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37670 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBe more conservative of duplicating blocks.
Evan Cheng [Tue, 19 Jun 2007 23:55:02 +0000 (23:55 +0000)]
Be more conservative of duplicating blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37669 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse a DenseMap instead of an std::map for the value numbering. This reduces the...
Owen Anderson [Tue, 19 Jun 2007 23:23:54 +0000 (23:23 +0000)]
Use a DenseMap instead of an std::map for the value numbering.  This reduces the time to optimize lencod on a PPC Debug build from ~300s to ~140s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37668 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake dependsOnInvoke much more specific in what it tests, which in turn make it much...
Owen Anderson [Tue, 19 Jun 2007 23:07:16 +0000 (23:07 +0000)]
Make dependsOnInvoke much more specific in what it tests, which in turn make it much faster to run.  This reduces the time to optimize lencondwith a debug build on PPC from ~450s to ~300s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37667 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMoved Inliner.h to include/llvm/Transforms/IPO/InlinerPass.h
Tanya Lattner [Tue, 19 Jun 2007 22:31:52 +0000 (22:31 +0000)]
Moved Inliner.h to include/llvm/Transforms/IPO/InlinerPass.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37666 91177308-0d34-0410-b5e6-96231b3b80d8