Bruno Cardoso Lopes
7afe424c59
Use i32 instead of i8 for dot product intrinsic
...
llvm-svn: 110643
2010-08-10 01:40:05 +00:00
Jakob Stoklund Olesen
1ab2fab3af
Transpose the calculation of spill weights such that we are calculating one
...
register at a time. This turns out to be slightly faster than iterating over
instructions, but more importantly, it allows us to compute spill weights for
new registers created after the spill weight pass has run.
Also compute the allocation hint at the same time as the spill weight. This
allows us to use the spill weight as a cost metric for copies, and choose the
most profitable hint if there is more than one possibility.
The new hints provide a very small (< 0.1%) but universal code size improvement.
llvm-svn: 110631
2010-08-10 00:02:26 +00:00
Bruno Cardoso Lopes
7d73127002
Fix the last argument type of AVX vblend intrinsics
...
llvm-svn: 110628
2010-08-10 00:00:22 +00:00
Bill Wendling
8a7a43a1cb
Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer
...
pass. This pass should expand with all of the small, fine-grained optimization
passes to reduce compile time and increase happiment.
llvm-svn: 110627
2010-08-09 23:59:04 +00:00
Kevin Enderby
8303a64b0a
Next bit of support for the dwarf .file directive. This patch takes the
...
previously collected info from the .file directives and outputs the encoded
bytes for it. For now this is only in the Mach-O streamer but at some point
will move to a more generic place.
llvm-svn: 110617
2010-08-09 22:52:14 +00:00
Devang Patel
8d0c79694e
Refactor.
...
llvm-svn: 110607
2010-08-09 21:39:24 +00:00
Duncan Sands
6eec2f9421
Remove the ValueMap operator=, which was wrong (it did't correct the
...
Map pointers of any contained ValueMapCallbackVH's) and unused.
llvm-svn: 110577
2010-08-09 16:44:56 +00:00
Zhongxing Xu
d955bbe69b
Change the Interval type to signed in ImmutableIntervalMap.h.
...
llvm-svn: 110562
2010-08-09 03:43:39 +00:00
Benjamin Kramer
bf4f7b3665
Remove unused variable.
...
llvm-svn: 110551
2010-08-08 19:54:10 +00:00
Duncan Sands
fa440174ee
Remove the ValueMap copy constructor. It's not used anywhere,
...
and removing it catches the mistake of passing a ValueMap by
copy rather than by reference.
llvm-svn: 110549
2010-08-08 12:57:48 +00:00
Eric Christopher
c788c82027
Add a bit of a hack to avoid multiple defines of variables in
...
config.h and llvm-config.h. This could probably be improved.
llvm-svn: 110547
2010-08-08 09:18:29 +00:00
Bill Wendling
39c49e3e17
Use the "isCompare" machine instruction attribute instead of calling the
...
relatively expensive comparison analyzer on each instruction. Also rename the
comparison analyzer method to something more in line with what it actually does.
This pass is will eventually be folded into the Machine CSE pass.
llvm-svn: 110539
2010-08-08 05:04:59 +00:00
Oscar Fuentes
38ae8f5381
CMake: set configure macro LLVM_PREFIX
...
llvm-svn: 110536
2010-08-08 04:32:21 +00:00
Oscar Fuentes
8a58d72172
CMake: configure header llvm-config.h
...
This is the cmake equivalent of r110532, which fixed bug #7809 .
llvm-svn: 110535
2010-08-08 04:17:18 +00:00
Eric Christopher
33fd5d63b3
Fix PR7809 by creating a header for just llvm variables that can be
...
included in exported interfaces. Update a couple of exported interfaces.
llvm-svn: 110532
2010-08-08 02:44:17 +00:00
Bill Wendling
f4d90d9196
Add back in r109901, which adds a Compare flag to the target instructions. It's
...
useful after all.
llvm-svn: 110531
2010-08-08 01:49:35 +00:00
Benjamin Kramer
a7febd985f
Roll back my last two commits, valgrind complains.
...
llvm-svn: 110518
2010-08-07 13:27:41 +00:00
Benjamin Kramer
bbdbd2be19
A reference to the Timer's name is safe, it outlives the contents of the vector.
...
llvm-svn: 110517
2010-08-07 13:07:57 +00:00
Benjamin Kramer
ffdaca28a5
Shrink PassNameParser's binary size with array_pod_sort.
...
llvm-svn: 110512
2010-08-07 11:45:42 +00:00
Owen Anderson
d17104afda
Remove layering violation.
...
llvm-svn: 110505
2010-08-07 06:01:13 +00:00
Owen Anderson
e59c4411b3
Add an inverse() method to ConstantRange.
...
llvm-svn: 110504
2010-08-07 05:47:46 +00:00
Nick Lewycky
b37e4d1eb2
Fix typo.
...
llvm-svn: 110502
2010-08-07 05:25:29 +00:00
Dan Gohman
0c6a626902
Remove assignPassManager's default arguments. It's really
...
confusing to have different arguments for the same virtual
function at different levels of the class hierarchy.
llvm-svn: 110500
2010-08-07 01:25:32 +00:00
Dan Gohman
48a98809af
More #include cleanups.
...
llvm-svn: 110499
2010-08-07 01:18:18 +00:00
Dan Gohman
caf690af8e
Delete this explicit assignment operator; it's equivalent to
...
the implicit one.
llvm-svn: 110498
2010-08-07 01:17:47 +00:00
Dan Gohman
a581d6d202
Tidy up PMStack. Add a bunch of consts, use std::vector instead of
...
std::deque, since this is a stack and only supports push/pop on
one end, and remove an unimplemented declaration.
llvm-svn: 110495
2010-08-07 00:53:01 +00:00
Dan Gohman
1d48a4b1d7
Tidy some #includes and forward-declarations, and move the C binding code
...
out of PassManager.cpp and into Core.cpp with the rest of the C binding code.
llvm-svn: 110494
2010-08-07 00:43:20 +00:00
Owen Anderson
31ced50119
Add a convenience constructor.
...
llvm-svn: 110493
2010-08-07 00:42:06 +00:00
Dan Gohman
1637747481
Make AnalysisImpls private.
...
llvm-svn: 110492
2010-08-07 00:34:52 +00:00
Owen Anderson
c61b8d0eb2
Add a predicate to determine if a call is an inline asm statement.
...
llvm-svn: 110488
2010-08-07 00:19:59 +00:00
Rafael Espindola
2145c31de3
Some cleanup. Use a class (OptionInfo) instead of a pair of a pair and remove
...
some default values that are not used.
llvm-svn: 110485
2010-08-06 23:03:52 +00:00
Bruno Cardoso Lopes
5b602f8822
Patterns to match AVX 256-bit vzero intrinsics
...
llvm-svn: 110480
2010-08-06 22:10:01 +00:00
Dan Gohman
13c66ce161
Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg")
...
instead, as an example of what this looks like.
llvm-svn: 110478
2010-08-06 21:48:06 +00:00
Jim Grosbach
e4f646b03f
tidy up
...
llvm-svn: 110476
2010-08-06 21:31:35 +00:00
Daniel Dunbar
49c592cd1b
MC: Add default value for AddrSpace argument to EmitValue.
...
llvm-svn: 110475
2010-08-06 21:24:05 +00:00
Jakob Stoklund Olesen
a37c7509bf
Add LiveInterval::RenumberValues - Garbage collection for VNInfos.
...
After heavy editing of a live interval, it is much easier to simply renumber the
live values instead of trying to keep track of the unused ones.
llvm-svn: 110463
2010-08-06 18:46:59 +00:00
Owen Anderson
f2fea95f2f
Reapply r110396, with fixes to appease the Linux buildbot gods.
...
llvm-svn: 110460
2010-08-06 18:33:48 +00:00
Dan Gohman
da3f592fb3
Implement a proper getModRefInfo for va_arg.
...
llvm-svn: 110458
2010-08-06 18:24:38 +00:00
Jim Grosbach
a66c2222ff
spelling
...
llvm-svn: 110457
2010-08-06 18:24:36 +00:00
Rafael Espindola
6d53fded19
Fix eabi calling convention when a 64 bit value shadows r3.
...
Without this what was happening was:
* R3 is not marked as "used"
* ARM backend thinks it has to save it to the stack because of vaarg
* Offset computation correctly ignores it
* Offsets are wrong
llvm-svn: 110446
2010-08-06 15:35:32 +00:00
Dan Gohman
66b637e4da
Add a comment.
...
llvm-svn: 110426
2010-08-06 02:04:07 +00:00
Bill Wendling
0ec56431c5
Revert r109901. The implementation of <rdar://problem/7405933> (r110423) doesn't
...
need the Compare flag after all.
--- Reverse-merging r109901 into '.':
U include/llvm/Target/TargetInstrDesc.h
U include/llvm/Target/Target.td
U utils/TableGen/InstrInfoEmitter.cpp
U utils/TableGen/CodeGenInstruction.cpp
U utils/TableGen/CodeGenInstruction.h
llvm-svn: 110424
2010-08-06 01:36:09 +00:00
Bill Wendling
0cd2ae5158
Add the Optimize Compares pass (disabled by default).
...
This pass tries to remove comparison instructions when possible. For instance,
if you have this code:
sub r1, 1
cmp r1, 0
bz L1
and "sub" either sets the same flag as the "cmp" instruction or could be
converted to set the same flag, then we can eliminate the "cmp" instruction all
together. This is a important for ARM where the ALU instructions could set the
CPSR flag, but need a special suffix ('s') to do so.
llvm-svn: 110423
2010-08-06 01:32:48 +00:00
Owen Anderson
aadd8a89ca
Revert r110396 to fix buildbots.
...
llvm-svn: 110410
2010-08-06 00:23:35 +00:00
Bruno Cardoso Lopes
90d1c89488
Remove unused AVX intrinsics
...
llvm-svn: 110407
2010-08-06 00:04:07 +00:00
Dan Gohman
ecf79cf569
Make AA private, since subclasses shouldn't (aren't don't) access it directly.
...
llvm-svn: 110398
2010-08-05 23:44:45 +00:00
Owen Anderson
b9762c07cb
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
...
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
2010-08-05 23:42:04 +00:00
Dan Gohman
8a813c4ded
Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMem
...
to IntrReadWriteArgMem, as it's for reading as well as writing.
llvm-svn: 110395
2010-08-05 23:36:21 +00:00
Eric Christopher
eb4632cab2
Revert my last commit, apparently it's a runtime issue.
...
llvm-svn: 110387
2010-08-05 22:48:32 +00:00
Eric Christopher
9121517a85
Remove unnecessary include.
...
llvm-svn: 110385
2010-08-05 22:28:22 +00:00