Devang Patel
8292a2ee90
Do not filter loop if candidate branch is in loop header.
...
llvm-svn: 37792
2007-06-29 01:39:53 +00:00
Evan Cheng
a328677ae1
New test.
...
llvm-svn: 37791
2007-06-29 01:36:33 +00:00
Evan Cheng
13b846b1ad
Prevent PPC::BCC first operand, the PRED number, from being isel'd into a LI instruction.
...
llvm-svn: 37790
2007-06-29 01:25:06 +00:00
Owen Anderson
cff6ffe45c
Add support for value numbering (but not actually optimizing) cast instructions.
...
llvm-svn: 37789
2007-06-29 00:51:03 +00:00
Owen Anderson
f134e54bb1
Add a type field to expressions in preparation for performing GVNPRE on casts.
...
llvm-svn: 37788
2007-06-29 00:40:05 +00:00
Evan Cheng
995493fd4a
New tests.
...
llvm-svn: 37787
2007-06-29 00:27:18 +00:00
Evan Cheng
992f296a71
No vector fneg.
...
llvm-svn: 37786
2007-06-29 00:18:15 +00:00
Dan Gohman
ad9cbaba40
Fix an assertion failure in legalizing bitcast operators on targets where
...
vectors are split down to single elements as part of legalization.
llvm-svn: 37785
2007-06-29 00:09:08 +00:00
Evan Cheng
e233ec5e46
Type of vector extract / insert index operand should be iPTR.
...
llvm-svn: 37784
2007-06-29 00:01:20 +00:00
Owen Anderson
f1665858f3
Add support for performing GVNPRE on select instructions. This fixes test/Transforms/GVNPRE/select.ll.
...
llvm-svn: 37783
2007-06-28 23:51:21 +00:00
Owen Anderson
b2ec2956f5
Add a test for performing GVNPRE on select instructions.
...
llvm-svn: 37782
2007-06-28 23:50:31 +00:00
Dan Gohman
c6bdcfa8c0
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.
llvm-svn: 37781
2007-06-28 23:29:44 +00:00
Devang Patel
9eeed9a5bd
Fix PR 1526.
...
llvm-svn: 37780
2007-06-28 23:09:25 +00:00
Dan Gohman
d2a3725004
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.
llvm-svn: 37779
2007-06-28 20:27:24 +00:00
Lauro Ramos Venancio
04172124dd
Fix a bug in my previous patch.
...
llvm-svn: 37778
2007-06-28 20:06:38 +00:00
David Greene
370ff247c8
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.
llvm-svn: 37777
2007-06-28 19:36:08 +00:00
Lauro Ramos Venancio
eb29d717b3
When linking two modules, we should copy the alias.
...
llvm-svn: 37776
2007-06-28 19:02:54 +00:00
Devang Patel
2f757c3a96
Remove unnecessary comments.
...
llvm-svn: 37774
2007-06-28 02:11:54 +00:00
Devang Patel
ce4ea8a62c
Handle the case when block dominates itself.
...
llvm-svn: 37773
2007-06-28 02:07:08 +00:00
Devang Patel
03d844eebd
- 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.
llvm-svn: 37772
2007-06-28 02:05:46 +00:00
Devang Patel
7f468af921
Update LoopUnswitch pass to preserve DomiantorTree.
...
llvm-svn: 37771
2007-06-28 00:49:00 +00:00
Devang Patel
50d5420cdc
If a condition is not inside a loop then the condition is suitable
...
to loop unswitch candidate for the loop.
llvm-svn: 37770
2007-06-28 00:44:10 +00:00
Owen Anderson
9372f36b3c
Make many sets a much more reasonable size. This decreases the time to optimize
...
Anton's testcase from 35.5s to 34.7s.
llvm-svn: 37769
2007-06-28 00:34:34 +00:00
Bill Wendling
cc1f4cafa2
Set implied features based upon the CPU's feature list.
...
llvm-svn: 37768
2007-06-27 23:34:06 +00:00
Devang Patel
0fb99e08a9
Update. Now, -etforest is an invalid option.
...
llvm-svn: 37767
2007-06-27 22:58:12 +00:00
Lauro Ramos Venancio
aed8d1f617
llvm-nm must print the alias symbols.
...
llvm-svn: 37766
2007-06-27 22:08:09 +00:00
Devang Patel
28d2851f39
Remove ETForest.
...
llvm-svn: 37765
2007-06-27 20:53:52 +00:00
Evan Cheng
e67385d712
If a livein is not used in the block. It's live through.
...
llvm-svn: 37764
2007-06-27 18:47:28 +00:00
Evan Cheng
26542e347a
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.
...
llvm-svn: 37763
2007-06-27 18:45:32 +00:00
Owen Anderson
97dd99d761
Use cached information that has already been computed to make clean() simpler and faster. This is a small speedup on most cases.
...
llvm-svn: 37761
2007-06-27 17:38:29 +00:00
Evan Cheng
c8b17dd965
One additional field in TargetRegisterDesc.
...
llvm-svn: 37760
2007-06-27 17:09:34 +00:00
Owen Anderson
a7927caa56
Fold a lot of code into two cases: binary instructions and ternary instructions.
...
This saves many lines of code duplication. No functionality change.
llvm-svn: 37759
2007-06-27 17:03:03 +00:00
Dan Gohman
cb89e19a6d
Rename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT.
...
llvm-svn: 37758
2007-06-27 16:08:04 +00:00
Dan Gohman
63c5bb770c
Document the encoding of MVT::ValueType.
...
llvm-svn: 37757
2007-06-27 15:28:26 +00:00
Dan Gohman
ce1bca0bf9
Remove a redundant newline in the asm output for ELF .rodata sections.
...
llvm-svn: 37756
2007-06-27 15:09:47 +00:00
Dan Gohman
c1c4b0972f
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.
llvm-svn: 37755
2007-06-27 14:34:07 +00:00
Dan Gohman
e94ef99437
Allow DOUT to be used outside of the llvm namespace.
...
llvm-svn: 37753
2007-06-27 14:09:38 +00:00
Dan Gohman
69a6154359
Make the comment for ScalarizeVectorOp mention that it is only for use
...
with single-element vectors.
llvm-svn: 37752
2007-06-27 14:06:22 +00:00
Zhou Sheng
011fc80616
Fix a bug.
...
llvm-svn: 37751
2007-06-27 09:50:26 +00:00
Duraid Madina
d32d8b9726
ok, this is something of a dirty hack, but it seems to work. (fixes e.g.
...
the SPASS miscompilation)
llvm-svn: 37750
2007-06-27 09:01:14 +00:00
Duraid Madina
73b0d188c8
ok, this much doesn't seem to bork anything
...
llvm-svn: 37749
2007-06-27 08:31:07 +00:00
Duraid Madina
94cd67290b
revert evan's fixes (and my doofusness) since they had a huge code
...
quality hit. will look at this soon.
llvm-svn: 37748
2007-06-27 08:11:59 +00:00
Duraid Madina
c0d3c96333
pull evan's fixes - should help the nightly tester (but there are still
...
some issues)
llvm-svn: 37747
2007-06-27 07:07:13 +00:00
Evan Cheng
480cd89fa1
Replace std::set with SmallPtrSet.
...
llvm-svn: 37746
2007-06-27 05:23:00 +00:00
Owen Anderson
97de56ae2b
Add support for performing GVNPRE on the three vector-specific operations.
...
llvm-svn: 37745
2007-06-27 04:10:46 +00:00
Owen Anderson
0217ca66eb
Add tests for performing GVNPRE on the three vector-specific instructions.
...
llvm-svn: 37744
2007-06-27 04:06:32 +00:00
Evan Cheng
f74e333161
Fix an obvious bug. Old code only worked for the entry block.
...
llvm-svn: 37743
2007-06-27 01:16:36 +00:00
Owen Anderson
dc1d567274
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.
llvm-svn: 37742
2007-06-26 23:29:41 +00:00
Evan Cheng
30adb50aaf
Add comment.
...
llvm-svn: 37741
2007-06-26 21:19:07 +00:00
Evan Cheng
5c0f03bce4
Correctly handle implcit def / use operands.
...
llvm-svn: 37740
2007-06-26 21:05:13 +00:00