David Greene [Fri, 29 Jun 2007 03:36:21 +0000 (03:36 +0000)]
Clean up comments to be consistent with code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37798
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 29 Jun 2007 03:12:42 +0000 (03:12 +0000)]
Fix problems with the checkout and cd directories for SVN checkout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37797
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Fri, 29 Jun 2007 02:53:16 +0000 (02:53 +0000)]
Fix reference to iterator invalidated by an erase operation. Uncovered
by _GLIBCXX_DEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37796
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Fri, 29 Jun 2007 02:49:11 +0000 (02:49 +0000)]
Fix reference to cached end iterator invalidated by an erase operation.
Uncovered by _GLIBCXX_DEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37795
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Fri, 29 Jun 2007 02:48:09 +0000 (02:48 +0000)]
Remove the "special tie breaker" because it resulted in inconsistent
ordering and thus violated the strict weak ordering requirement of
priority_queue. Uncovered by _GLIBCXX_DEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37794
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Fri, 29 Jun 2007 02:45:24 +0000 (02:45 +0000)]
Fix misue of iterator pointing to erased object. Uncovered by
_GLIBCXX_DEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37793
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 29 Jun 2007 01:39:53 +0000 (01:39 +0000)]
Do not filter loop if candidate branch is in loop header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37792
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Jun 2007 01:36:33 +0000 (01:36 +0000)]
New test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37791
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Jun 2007 01:25:06 +0000 (01:25 +0000)]
Prevent PPC::BCC first operand, the PRED number, from being isel'd into a LI instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37790
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Jun 2007 00:51:03 +0000 (00:51 +0000)]
Add support for value numbering (but not actually optimizing) cast instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37789
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 29 Jun 2007 00:40:05 +0000 (00:40 +0000)]
Add a type field to expressions in preparation for performing GVNPRE on casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37788
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Jun 2007 00:27:18 +0000 (00:27 +0000)]
New tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37787
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Jun 2007 00:18:15 +0000 (00:18 +0000)]
No vector fneg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37786
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 29 Jun 2007 00:09:08 +0000 (00:09 +0000)]
Fix an assertion failure in legalizing bitcast operators on targets where
vectors are split down to single elements as part of legalization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37785
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 29 Jun 2007 00:01:20 +0000 (00:01 +0000)]
Type of vector extract / insert index operand should be iPTR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37784
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 28 Jun 2007 23:51:21 +0000 (23:51 +0000)]
Add support for performing GVNPRE on select instructions. This fixes test/Transforms/GVNPRE/select.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37783
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 28 Jun 2007 23:50:31 +0000 (23:50 +0000)]
Add a test for performing GVNPRE on select instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37782
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 28 Jun 2007 23:29:44 +0000 (23:29 +0000)]
Add new TargetLowering code to provide the final register type that an
illegal value type will be transformed to, for code that needs the
register type after all transformations instead of just after the first
transformation.
Factor out the code that uses this information to do copy-from-regs and
copy-to-regs for various purposes into separate functions so that they
are done consistently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37781
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 28 Jun 2007 23:09:25 +0000 (23:09 +0000)]
Fix PR 1526.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37780
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 28 Jun 2007 20:27:24 +0000 (20:27 +0000)]
Add a default parameter to a SmallVector constructor to allow it to
be called with just an initial length value, just like in std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37779
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Thu, 28 Jun 2007 20:06:38 +0000 (20:06 +0000)]
Fix a bug in my previous patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37778
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Thu, 28 Jun 2007 19:36:08 +0000 (19:36 +0000)]
Add support for building with _GLIBCXX_DEBUG. New configure option
--enable-expensive-checks allows the developer to enable runtime
checking that can greatly increase compile time. Currently it only
turns on _GLIBCXX_DEBUG. Other expensive debugging checks added later
should be controlled by this configure option.
This patch also updates llvm-config with a --cppflags option to inform
llvm-gcc how to build itself so that it is compatible with an llvm that
was built with _GLIBCXX_DEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37777
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Thu, 28 Jun 2007 19:02:54 +0000 (19:02 +0000)]
When linking two modules, we should copy the alias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37776
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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