Dan Gohman
f44783ab4e
Replace ScalarEvolution's private copy of getLoopPredecessor
...
with LoopInfo's public copy.
llvm-svn: 106603
2010-06-22 23:43:28 +00:00
Bruno Cardoso Lopes
db9027d95d
Add AVX compare packed instructions
...
llvm-svn: 106600
2010-06-22 23:37:59 +00:00
Dan Gohman
c33529255a
Loosen up this test so that it doesn't depend as much on register
...
allocation details.
llvm-svn: 106599
2010-06-22 23:32:47 +00:00
Devang Patel
1967a51efc
Revert 106592 for now. It causes clang-selfhost build failure.
...
llvm-svn: 106598
2010-06-22 23:29:55 +00:00
Dan Gohman
2ac2a33a1b
Fix OptimizeMax to handle an odd case where one of the max operands
...
is another max which folds. This fixes PR7454.
llvm-svn: 106594
2010-06-22 23:07:13 +00:00
Bruno Cardoso Lopes
424b206ad4
Reapply support for AVX unpack and interleave instructions, with
...
testcases this time.
llvm-svn: 106593
2010-06-22 23:02:38 +00:00
Devang Patel
a24bf5907c
If a metadata operand is seeded in value map and the metadata should also be seeded in value map. This is not limited to function local metadata.
...
Failure to seed metdata in such cases causes troubles when in a cloned module, metadata from a new module refers to values in old module. Usually this results in mysterious bugpoint crashes. For example,
Checking to see if we can delete global inits: Unknown constant!
UNREACHABLE executed at /d/g/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp:904!
llvm-svn: 106592
2010-06-22 22:53:21 +00:00
Devang Patel
dca60347e5
While cloning a module, clone metadata attached with instructions.
...
llvm-svn: 106591
2010-06-22 22:50:42 +00:00
Bruno Cardoso Lopes
93ec8dcd01
Add AVX MOV{SS,SD}{rr,rm} instructions
...
llvm-svn: 106588
2010-06-22 22:38:56 +00:00
Bill Wendling
c29fd1120a
Fix the formatting of the switch statement and add a missing break.
...
llvm-svn: 106586
2010-06-22 22:16:17 +00:00
Jakob Stoklund Olesen
39c915aaa1
Also convert SUBREG_TO_REG to a KILL when relevant, like the other subreg
...
instructions.
This does not affect codegen much because SUBREG_TO_REG is only used by X86 and
X86 does not use the register scavenger, but it prevents verifier errors.
llvm-svn: 106583
2010-06-22 22:11:07 +00:00
Bob Wilson
cb414cca8d
Thumb1 functions using @llvm.returnaddress were not saving the incoming LR.
...
Radar 8031193.
llvm-svn: 106582
2010-06-22 22:04:24 +00:00
Eric Christopher
48c062d65b
Move a 64-bit test to the 64-bit file. Fixes an llvm-mc assertion
...
during test runs.
llvm-svn: 106577
2010-06-22 21:11:51 +00:00
Eric Christopher
835fc55fd0
Look for and use a different darwin crash reporter library.
...
llvm-svn: 106576
2010-06-22 21:01:04 +00:00
Dale Johannesen
dd9d7b11da
Add SSE so these actually pass on non-X86 hosts.
...
llvm-svn: 106575
2010-06-22 20:54:03 +00:00
Jim Grosbach
69e4d59ce5
fix typo
...
llvm-svn: 106574
2010-06-22 20:52:02 +00:00
Gabor Greif
3f6b94947f
use high-level accessors
...
llvm-svn: 106573
2010-06-22 20:40:38 +00:00
Bruno Cardoso Lopes
a176972a1b
Fix a subtle multiclass bug: when using class inheritance on
...
a toplevel 'defm', make sure to properly resolve references.
llvm-svn: 106570
2010-06-22 20:30:50 +00:00
Bill Wendling
1e7edfa27a
Corresponding test changes for r106564.
...
llvm-svn: 106569
2010-06-22 20:30:14 +00:00
Gabor Greif
2de1a571e9
warmup ritual: use high-level argument accessors
...
llvm-svn: 106563
2010-06-22 19:46:37 +00:00
Mon P Wang
c0fb410ae3
Move v-binop-widen tests to X86 since they don't work on all platforms
...
llvm-svn: 106562
2010-06-22 19:40:50 +00:00
Devang Patel
eba73529a6
Clone named metadata while cloning a module.
...
Reapply Bob's patch.
llvm-svn: 106560
2010-06-22 18:52:38 +00:00
Bruno Cardoso Lopes
2cf78d18d5
Reorganize logical and arithmetic SSE 1 & 2 instructions
...
llvm-svn: 106557
2010-06-22 18:17:40 +00:00
Bruno Cardoso Lopes
22aca94946
Reorganize SSE instructions, making easier to see oportunities for refactoring
...
llvm-svn: 106556
2010-06-22 18:09:32 +00:00
Dan Gohman
2303159bba
Move PHIElimination's SplitCriticalEdge for MachineBasicBlocks out
...
into a utility routine, teach it how to update MachineLoopInfo, and
make use of it in MachineLICM to split critical edges on demand.
llvm-svn: 106555
2010-06-22 17:25:57 +00:00
Jakob Stoklund Olesen
ddb09c5258
Remove the SimpleJoin optimization from SimpleRegisterCoalescing.
...
Measurements show that it does not speed up coalescing, so there is no reason
the keep the added complexity around.
Also clean out some unused methods and static functions.
llvm-svn: 106548
2010-06-22 16:13:57 +00:00
Dan Gohman
29b845f3b7
Split out the code for finding a unique loop predecessor from
...
getLoopPreheader into a separate function, for clients which don't
require a proper preheader.
llvm-svn: 106543
2010-06-22 15:25:42 +00:00
Dan Gohman
74d5144414
Use pre-increment instead of post-increment when the result is not used.
...
llvm-svn: 106542
2010-06-22 15:08:57 +00:00
Dan Gohman
5863f1e8c6
Add a comment explaining a non-obvious API.
...
llvm-svn: 106539
2010-06-22 13:57:08 +00:00
Dan Gohman
ff9e611537
Add an explicit keyword.
...
llvm-svn: 106538
2010-06-22 13:53:29 +00:00
Dan Gohman
a3bc6b13f7
Allow "exhaustive" trip count evaluation on phi nodes with all
...
constant operands.
llvm-svn: 106537
2010-06-22 13:15:46 +00:00
Devang Patel
981ff4464c
Revert 106528. It is causing self host failures.
...
llvm-svn: 106529
2010-06-22 06:14:09 +00:00
Devang Patel
d5696fa05b
Do not rely on DenseMap slot which can be easily invalidated when DenseMap grows.
...
llvm-svn: 106528
2010-06-22 05:16:56 +00:00
Bob Wilson
714eba185c
Revert my change to clone named metadata. Buildbots are complaining.
...
--- Reverse-merging r106508 into '.':
U lib/Transforms/Utils/CloneModule.cpp
llvm-svn: 106521
2010-06-22 02:08:51 +00:00
Dan Gohman
2075612492
When unfolding a load, avoid assuming which instruction that
...
kill and dead flags will end up on.
llvm-svn: 106520
2010-06-22 02:07:21 +00:00
Devang Patel
f50b6147ad
Use single interface, using twine, to get named metadata.
...
getNamedMetadata().
llvm-svn: 106518
2010-06-22 01:19:38 +00:00
Evan Cheng
a1ebf91a39
Tail merging pass shall not break up IT blocks. rdar://8115404
...
llvm-svn: 106517
2010-06-22 01:18:16 +00:00
Devang Patel
38d9ee4e35
Discard special LLVM prefix from linkage name.
...
llvm-svn: 106516
2010-06-22 01:06:05 +00:00
Devang Patel
dee41b010a
Do not rely on Twine temporaries to survive.
...
llvm-svn: 106515
2010-06-22 01:01:58 +00:00
Chris Lattner
3de7445da3
make sure to initialize indent_level
...
llvm-svn: 106513
2010-06-22 00:40:26 +00:00
Dan Gohman
ac0b4b5352
Fix the new load-unfolding code to update LiveVariable's dead flags,
...
in addition to the kill flags.
llvm-svn: 106512
2010-06-22 00:32:04 +00:00
Bob Wilson
6a07aa9ae8
Include named metadata when cloning a module.
...
llvm-svn: 106508
2010-06-22 00:11:03 +00:00
Eric Christopher
eb35756a31
Fix typo.
...
llvm-svn: 106505
2010-06-21 23:49:08 +00:00
Chris Lattner
6be03758e4
add some support for blockaddress. This isn't really enough to be useful,
...
but it will cover uses of blockaddress that are actually in a function.
llvm-svn: 106502
2010-06-21 23:19:36 +00:00
Chris Lattner
1d76d7e9b2
eliminate a mutable global variable, use raw_ostream::indent instead of
...
rolling our own.
llvm-svn: 106501
2010-06-21 23:14:47 +00:00
Chris Lattner
580470b914
un-indent a huge amount of code out of an anonymous namespace.
...
llvm-svn: 106500
2010-06-21 23:12:56 +00:00
Bruno Cardoso Lopes
d4d53fdb7f
revert r106482
...
llvm-svn: 106499
2010-06-21 22:59:03 +00:00
Chris Lattner
c0d70f4edf
fix several bugs in the tutorial, patch by Kevin Kelley!
...
llvm-svn: 106498
2010-06-21 22:51:14 +00:00
Dan Gohman
bcc040be1b
Teach two-address lowering how to unfold a load to open up commuting
...
opportunities. For example, this lets it emit this:
movq (%rax), %rcx
addq %rdx, %rcx
instead of this:
movq %rdx, %rcx
addq (%rax), %rcx
in the case where %rdx has subsequent uses. It's the same number
of instructions, and usually the same encoding size on x86, but
it appears faster, and in general, it may allow better scheduling
for the load.
llvm-svn: 106493
2010-06-21 22:17:20 +00:00
Bruno Cardoso Lopes
33256723a7
change parameter name to avoid confusion with global definition
...
llvm-svn: 106486
2010-06-21 21:28:07 +00:00