Dan Gohman
bb27588b3f
Revert r111199; it breaks -debug-pass=Structure output.
...
llvm-svn: 111500
2010-08-19 01:29:07 +00:00
Eric Christopher
3f1dd52a7c
Reapply the virtual register patch from 109102. The places where we were
...
depending on the number of virtual registers appear to have all been handled
now.
llvm-svn: 111499
2010-08-19 01:25:50 +00:00
Chris Lattner
355d472093
fix PR7465, mishandling of lcall and ljmp: intersegment long
...
call and jumps.
llvm-svn: 111496
2010-08-19 01:18:43 +00:00
Dan Gohman
ba5736d2fe
Process the step before the start, because it's usually the simpler
...
of the two.
llvm-svn: 111495
2010-08-19 01:02:31 +00:00
Chris Lattner
b3abfa861f
minor progress towards fixing PR7465
...
llvm-svn: 111494
2010-08-19 01:00:34 +00:00
Eric Christopher
b80df4f04e
Add an AddOptionalDefs method and use it.
...
llvm-svn: 111489
2010-08-19 00:37:05 +00:00
Daniel Dunbar
7c1d941155
lit/GoogleTest: Add .exe to the suffix when looking for tests.
...
llvm-svn: 111487
2010-08-19 00:22:45 +00:00
Alexis Hunt
5e797f1877
Add include missing for VC build.
...
llvm-svn: 111484
2010-08-19 00:19:03 +00:00
Dale Johannesen
2f32accda7
Testcase for llvm-gcc checkin 111482.
...
llvm-svn: 111483
2010-08-19 00:09:07 +00:00
Bill Wendling
fa85185486
Add the "isCompare" attribute to the defm instead of each individual instr.
...
llvm-svn: 111481
2010-08-19 00:05:48 +00:00
Alexis Hunt
4686927dba
Remove three spurious semicolons
...
llvm-svn: 111480
2010-08-19 00:03:05 +00:00
Jakob Stoklund Olesen
f2b0bcb397
Don't call Predicate_* in Mips.
...
llvm-svn: 111468
2010-08-18 23:56:46 +00:00
Eric Christopher
0749ca13a8
Remove extra header.
...
llvm-svn: 111456
2010-08-18 23:38:16 +00:00
Alexis Hunt
068811ea03
Finish full attribute class emission for clang.
...
For more information, see the accompanying clang patch.
llvm-svn: 111454
2010-08-18 23:23:09 +00:00
Jim Grosbach
5d8da556ff
Add a newline to debug output
...
llvm-svn: 111453
2010-08-18 23:14:02 +00:00
Chris Lattner
7663b66c31
refix PR1143 by making basicaa analyze zexts of indices aggresively,
...
which I broke with a recent patch.
llvm-svn: 111452
2010-08-18 23:09:49 +00:00
Evan Cheng
4690ffd18a
If any def of a machine-sink candidate has local uses, it's obviously not safe to sink it to a successor block. This bug has been hidden because a later check for critical-edge disable these illegal optimizations. This patch should significantly reduce the amount of time spent on checking dominator information for obviously unsafe sinking.
...
llvm-svn: 111450
2010-08-18 23:09:25 +00:00
Chris Lattner
45440e6f6e
GetLinearExpression is only called when TD is non-null, pass as
...
a reference instead of pointer.
llvm-svn: 111445
2010-08-18 22:52:09 +00:00
Chris Lattner
1e05823153
rework GEP decomposition to make a new VariableGEPIndex struct instead of
...
using a pair. This tidies up the code a bit. While setting things up, add
a (currently unused) field to keep track of how the value is extended.
llvm-svn: 111444
2010-08-18 22:47:56 +00:00
Jim Grosbach
6f036da8dc
Enable ARM base register reuse to local stack slot allocation. Whenever a new
...
frame index reference to an object in the local block is seen, check if
it's near enough to any previously allocaated base register to re-use.
rdar://8277890
llvm-svn: 111443
2010-08-18 22:44:49 +00:00
Dan Gohman
7bfc030c1e
Add a testcase to verify that commands don't crash when they hit
...
errors on stderr.
llvm-svn: 111440
2010-08-18 22:35:56 +00:00
Dan Gohman
95e334dbca
Make raw_fd_ostream consider itself the owner of STDOUT_FILENO when
...
constructed with an output filename of "-". In particular, allow the
file descriptor to be closed, and close the file descriptor in the
destructor if it hasn't been explicitly closed already, to ensure
that any write errors are detected.
llvm-svn: 111436
2010-08-18 22:26:19 +00:00
Dan Gohman
5d87ae5441
When sending stats output to stdout for grepping, don't emit normal
...
output to standard output also.
llvm-svn: 111435
2010-08-18 22:22:44 +00:00
Chris Lattner
bd80bd5d69
move gep decomposition out of ValueTracking into BasicAA. The form of
...
decomposition that it is doing is very basicaa specific and is only used
by basicaa.
Now with less tree breakingness.
llvm-svn: 111433
2010-08-18 22:07:29 +00:00
Dan Gohman
b1aa643484
Tidy.
...
llvm-svn: 111432
2010-08-18 22:04:43 +00:00
Bill Wendling
d4fd98ebda
Minor simplification. Gets rid of a needless temporary.
...
llvm-svn: 111430
2010-08-18 21:32:07 +00:00
Owen Anderson
a57dfdac61
Use ConstantRange to propagate information through value definitions.
...
llvm-svn: 111425
2010-08-18 21:11:37 +00:00
Dan Gohman
2d5b6bad99
When sending stats output to stdout for grepping, don't emit normal
...
output to standard output also.
llvm-svn: 111401
2010-08-18 20:32:46 +00:00
Jakob Stoklund Olesen
ef87fb790b
Thinking about it, we don't need MachineDominatorTree after all. The DomValue
...
map discovers the iterated dominance frontier for free.
llvm-svn: 111400
2010-08-18 20:29:53 +00:00
Dan Gohman
9b5ed21492
Introduce a ScopedFatalErrorHandler class to make it easy to register
...
fatal error handlers which automatically get unregistered at the end
of a scope.
llvm-svn: 111398
2010-08-18 20:16:39 +00:00
Jakob Stoklund Olesen
a94deec1c0
Revert r111394. It was too aggressive.
...
We must complete the DFS, otherwise we might miss needed phi-defs, and
prematurely color live ranges with a non-dominating value.
This is not a big deal since we get to color more of the CFG and the next
mapValue call will be faster.
llvm-svn: 111397
2010-08-18 20:06:05 +00:00
Jakob Stoklund Olesen
221c0b3c75
Aggressively prune the DFS when inserting phi-defs.
...
llvm-svn: 111394
2010-08-18 19:00:11 +00:00
Jakob Stoklund Olesen
b6491ab1f6
Add the LiveIntervalMap class. Don't hook it up yet.
...
LiveIntervalMap maps values from a parent LiveInterval to a child interval that
is a strict subset. It will create phi-def values as needed to preserve the
VNInfo SSA form in the child interval.
This leads to an algorithm very similar to the one in SSAUpdaterImpl.h, but with
enough differences that the code can't be reused:
- We don't need to manipulate PHI instructions.
- LiveIntervals have kills.
- We have MachineDominatorTree.
- We can use df_iterator.
llvm-svn: 111393
2010-08-18 19:00:08 +00:00
Jakob Stoklund Olesen
d16fd86de1
Add df_iterator::getPathLength and getPath as a way of getting a path from the
...
entry node to the current node.
llvm-svn: 111392
2010-08-18 19:00:05 +00:00
Daniel Dunbar
3d68ce9eeb
Revert r111375, "move gep decomposition out of ValueTracking into BasicAA. The
...
form of", it doesn't pass tests.
llvm-svn: 111385
2010-08-18 18:43:08 +00:00
Bill Wendling
a055bae65f
Improve whitespace.
...
llvm-svn: 111384
2010-08-18 18:41:13 +00:00
Bill Wendling
fa83b9853e
Marked with ATTRIBUTE_USED so that clang doesn't complain.
...
llvm-svn: 111383
2010-08-18 18:40:57 +00:00
Owen Anderson
65795241db
Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues.
...
llvm-svn: 111382
2010-08-18 18:39:01 +00:00
Daniel Dunbar
9ced206b3a
MC/ELF: Allow null values in virtual sections, ELF doesn't use special
...
directives for putting contents in .bss, for example.
llvm-svn: 111376
2010-08-18 18:22:37 +00:00
Chris Lattner
2d584f0b0e
move gep decomposition out of ValueTracking into BasicAA. The form of
...
decomposition that it is doing is very basicaa specific and is only used
by basicaa.
llvm-svn: 111375
2010-08-18 18:22:17 +00:00
Jim Grosbach
b517fe948f
Add hook for re-using virtual base registers for local stack slot access.
...
Nothing fancy, just ask the target if any currently available base reg
is in range for the instruction under consideration and use the first one
that is. Placeholder ARM implementation simply returns false for now.
ongoing saga of rdar://8277890
llvm-svn: 111374
2010-08-18 17:57:37 +00:00
Dan Gohman
ab87c70bb8
Eliminate some redundancy by relying on raw_fd_ostream to handle "-"
...
properly.
llvm-svn: 111373
2010-08-18 17:55:15 +00:00
Dan Gohman
3c43d4a9b6
Allow the -analyze option to follow the -o option, which defaults to
...
standard output, instead of just hardcoding outs().
llvm-svn: 111372
2010-08-18 17:42:59 +00:00
Dan Gohman
72143a0fc2
Don't translate "-" to outs() manually; raw_ostream does that automatically.
...
llvm-svn: 111371
2010-08-18 17:40:10 +00:00
Dan Gohman
1f5b3b24c3
Don't translate "-" to outs() manually; raw_ostream does that
...
automatically.
llvm-svn: 111370
2010-08-18 17:26:50 +00:00
Dan Gohman
f9731b6d32
Don't register stdout to be deleted on a signal.
...
llvm-svn: 111368
2010-08-18 17:21:42 +00:00
Dan Gohman
ea23bfd45c
Remove an unused command-line option.
...
llvm-svn: 111367
2010-08-18 17:20:51 +00:00
Jakob Stoklund Olesen
32dcf0e7a9
Preserve subregs on PHI source operands. Patch by Krister Wombell!
...
llvm-svn: 111366
2010-08-18 16:09:47 +00:00
Kalle Raiskila
05d3cc2ef8
Fix a bug with insertelement on SPU.
...
The previous algorithm in LowerVECTOR_SHUFFLE
didn't check all requirements for "monotonic" shuffles.
llvm-svn: 111361
2010-08-18 10:20:29 +00:00
Kalle Raiskila
8b6f5df4ae
Remove all traces of v2[i,f]32 on SPU.
...
The "half vectors" are now widened to full size by the legalizer.
The only exception is in parameter passing, where half vectors are
expanded. This causes changes to some dejagnu tests.
llvm-svn: 111360
2010-08-18 10:04:39 +00:00