Rafael Espindola
5579525578
Move the bugpoint test passes to a plugin in preparation for having bugpoint
...
use opt.
llvm-svn: 110520
2010-08-07 21:48:09 +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
70df356537
Kill rarely used std::sort.
...
llvm-svn: 110516
2010-08-07 12:37:00 +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
9cabe94039
Oops, check in this file too.
...
llvm-svn: 110496
2010-08-07 01:04:15 +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
Dale Johannesen
23f9086dd3
Use sdmem and sse_load_f64 (etc.) for the vector
...
form of CMPSD (etc.) Matching a 128-bit memory
operand is wrong, the instruction uses only 64 bits
(same as ADDSD etc.) 8193553.
llvm-svn: 110491
2010-08-07 00:33:42 +00:00
Owen Anderson
fb2c32c524
Don't attempt the PRE inline asm calls, since we don't value number them yet. Fixes PR7835.
...
llvm-svn: 110489
2010-08-07 00:20:35 +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
Jakob Stoklund Olesen
6944ea9801
Lazily defer duplicating the live interval we are splitting until we know it is
...
necessary.
Sometimes, live range splitting doesn't shrink the current interval, but simply
changes some instructions to use a new interval. That makes the original more
suitable for spilling. In this case, we don't need to duplicate the original.
llvm-svn: 110481
2010-08-06 22:17:33 +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
Michael J. Spencer
a12b50d9cf
llc: Clarify -mc-relax-all description.
...
llvm-svn: 110477
2010-08-06 21:37:45 +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
Bruno Cardoso Lopes
821eebf946
Patterns to match AVX 256-bit permutation intrinsics
...
llvm-svn: 110468
2010-08-06 20:03:27 +00:00
Stuart Hastings
b0a46bfebd
Test case for r110459. Radar 8264751. Test case by Fariborz Jahanian!
...
llvm-svn: 110467
2010-08-06 19:02:24 +00:00
Jim Grosbach
14d9b063df
Cleanup comment wording
...
llvm-svn: 110466
2010-08-06 18:59:07 +00:00
Jim Grosbach
9ef6362af1
Remove empty processFunctionBeforeFrameFinalized(). The default
...
implementation of the function is equivalent, so no need to provide
the target-specific version until/unless it needs to do something.
llvm-svn: 110465
2010-08-06 18:57:24 +00:00
Jakob Stoklund Olesen
581c54b1fe
Keep the MachiuneFunctionPass pointer around. It is useful for verification.
...
llvm-svn: 110464
2010-08-06 18:47:06 +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
Dan Gohman
ec36b4cd9c
Be more conservative in the face of volatile.
...
llvm-svn: 110456
2010-08-06 18:11:28 +00:00
Dan Gohman
a4a3f3b27b
Fix a comment.
...
llvm-svn: 110455
2010-08-06 18:10:45 +00:00
Jakob Stoklund Olesen
819394ded8
Add more verification of LiveIntervals.
...
llvm-svn: 110454
2010-08-06 18:04:19 +00:00
Jakob Stoklund Olesen
8426150327
Fix swapped COPY operands.
...
llvm-svn: 110453
2010-08-06 18:04:17 +00:00
Jakob Stoklund Olesen
26726984fe
Don't try to verify LiveIntervals for physical registers.
...
When a physical register is in use, some alias of that register has a live
interval with a relevant live range. That is the sad state of intervals after
physreg coalescing of subregs, and it is good enough for correct register
allocation.
llvm-svn: 110452
2010-08-06 18:04:14 +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
Nick Lewycky
8c4f9777de
Fix uninitialized variable warning.
...
Also move 'default' case next to a real case to help compiler optimize in
non-Debug builds.
No functionality change.
llvm-svn: 110435
2010-08-06 07:43:46 +00:00
Nick Lewycky
178f0d4cd0
Work in progress, cleaning up MergeFuncs.
...
Further clean up the comparison function by removing overly generalized
"domains".
Remove all understanding of ELF aliases and simplify folding code and comments.
llvm-svn: 110434
2010-08-06 07:21:30 +00:00
Ted Kremenek
8535533e0c
Update CMake build.
...
llvm-svn: 110429
2010-08-06 04:05:21 +00:00
Peter Collingbourne
926fe36804
Fix missing </a> tag error introduced by addition of LowerAtomic pass.
...
While at it, fix all other HTML validation errors in docs/Passes.html.
llvm-svn: 110428
2010-08-06 02:13:25 +00:00
Bruno Cardoso Lopes
d186fba555
Patterns to match AVX 256-bit horizontal arithmetic intrinsics
...
llvm-svn: 110427
2010-08-06 02:10:30 +00:00
Dan Gohman
66b637e4da
Add a comment.
...
llvm-svn: 110426
2010-08-06 02:04:07 +00:00
Bruno Cardoso Lopes
5e9f9c921e
Patterns to match AVX 256-bit arithmetic intrinsics
...
llvm-svn: 110425
2010-08-06 01:52:29 +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