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
Bob Wilson
ef565a2ffd
sign_extend_inreg needs to be expanded for pre-v6 Thumb as well as ARM.
...
Radar 8104310.
llvm-svn: 106484
2010-06-21 21:27:34 +00:00
Jim Grosbach
bc31f7a24b
LEApcrelJT shouldn't be marked as neverHasSideEffects, as we don't want it
...
being moved around away from the jump table it references. rdar://8104340
llvm-svn: 106483
2010-06-21 21:27:27 +00:00
Bruno Cardoso Lopes
40debaf4b8
Add unpack and interleave AVX instructions, encoding tests cooming soon
...
llvm-svn: 106482
2010-06-21 21:21:48 +00:00
Evan Cheng
167a8655c7
Fix PR7421: bug in kill transferring logic. It was ignoring loads / stores which have already been processed.
...
llvm-svn: 106481
2010-06-21 21:21:14 +00:00
Chris Lattner
d7df3e9c5c
This makes example Makefile a lot more like actual
...
lib/Transforms/Hello/Makefile, and prevents a lot of errors like "Assertion
`Inserted && "Pass registered multiple times!"' failed"
Patch by Gregory Petrosyan!
llvm-svn: 106471
2010-06-21 20:36:09 +00:00
Eric Christopher
68b77d45c2
Remove isTwoAddress from llvm.
...
llvm-svn: 106470
2010-06-21 20:35:09 +00:00
Chris Lattner
dbea6d7acb
"This is just a cosmetic change in MCAsmStreamer.cpp/EmitSymbolAttribute: all attributes have now a \t before and after, as done for '.type'.
...
This makes the output look consistent, as well as help some third party assemblers expecting the attributes to be in the second column."
Patch by Arnaud de Grandmaison!
llvm-svn: 106469
2010-06-21 20:35:01 +00:00
Chris Lattner
e636df7c0b
fix typos reported by Adam Warner!
...
llvm-svn: 106468
2010-06-21 20:31:30 +00:00
Eric Christopher
318243d2c6
Remove isTwoAddress from SystemZ.
...
llvm-svn: 106467
2010-06-21 20:25:57 +00:00
Eric Christopher
5b757ab002
Remove isTwoAddress from Sparc.
...
llvm-svn: 106466
2010-06-21 20:22:35 +00:00
Eric Christopher
caf8285bff
Remove isTwoAddress from Mips.
...
llvm-svn: 106465
2010-06-21 20:19:21 +00:00
Eric Christopher
109380247d
Remove isTwoAddress from Blackfin.
...
llvm-svn: 106457
2010-06-21 20:13:37 +00:00
Eric Christopher
4173fa9514
Remove isTwoAddress from MSP430.
...
llvm-svn: 106455
2010-06-21 20:07:30 +00:00
Dan Gohman
cbede71023
Make this test more robust in case LLVM ever decides to align the global
...
variable differently.
llvm-svn: 106454
2010-06-21 19:56:27 +00:00
Dan Gohman
6a3c46ad49
Use A.append(...) instead of A.insert(A.end(), ...) when A is a
...
SmallVector, and other SmallVector simplifications.
llvm-svn: 106452
2010-06-21 19:47:52 +00:00
Eric Christopher
27afc6b948
Make 80-column.
...
llvm-svn: 106448
2010-06-21 18:56:55 +00:00
Eric Christopher
22c623f01c
Remove isTwoAddress from PIC16.
...
llvm-svn: 106447
2010-06-21 18:55:01 +00:00
Eric Christopher
2dae43dbe4
Remove isTwoAddress from XCore.
...
llvm-svn: 106446
2010-06-21 18:51:38 +00:00
Eric Christopher
f0e2a62b21
Remove isTwoAddress from Alpha.
...
llvm-svn: 106445
2010-06-21 18:48:55 +00:00
Dan Gohman
745765d0b8
Move several non-performance-critical member functinos out of line.
...
llvm-svn: 106444
2010-06-21 18:46:45 +00:00
Dale Johannesen
baf342fdab
Add missing FileCheck call.
...
llvm-svn: 106443
2010-06-21 18:46:08 +00:00
Devang Patel
79e2417a08
test case for r106438.
...
llvm-svn: 106439
2010-06-21 18:37:23 +00:00
Devang Patel
3dbb143c29
Do not directly use function names to construct new name for named metadata.
...
"llvm.dbg.lv.~A" is not a valid name.
llvm-svn: 106438
2010-06-21 18:36:58 +00:00
Bruno Cardoso Lopes
24af70c17f
Move part of SSE 1 & 2 compare, shuffle and unpack instructions closely. Preparing them for refactoring and to the addition of their AVX forms
...
llvm-svn: 106437
2010-06-21 18:36:04 +00:00
Bruno Cardoso Lopes
aff9b1c52f
Add AVX regular (non-aliased ones) and,or,xor,andn packed instructions. They are already tested in the MC framework, no test needed
...
llvm-svn: 106436
2010-06-21 18:22:54 +00:00