Chris Lattner
f2ee739a2b
tidy up
...
llvm-svn: 112643
2010-08-31 21:21:25 +00:00
Bruno Cardoso Lopes
6fbe7b9ddd
Use MOVLHPS and MOVHLPS x86 nodes whenever possible. Also remove some useless nodes
...
llvm-svn: 112642
2010-08-31 21:15:21 +00:00
Dan Gohman
6822b9d177
Revert r112432. It appears to be exposing a problem in the emacs build.
...
llvm-svn: 112638
2010-08-31 20:58:44 +00:00
Owen Anderson
c9c199c531
Merge 2010-08-31-InfiniteRecursion.ll into crash.ll.
...
llvm-svn: 112635
2010-08-31 20:27:17 +00:00
Owen Anderson
233463074b
More cleanups of my JumpThreading transforms, including extracting some duplicated code into a helper function.
...
llvm-svn: 112634
2010-08-31 20:26:04 +00:00
Jakob Stoklund Olesen
d76e5132e7
Ignore unallocatable registers in RegAllocFast.
...
llvm-svn: 112632
2010-08-31 19:54:25 +00:00
Devang Patel
b94251aea0
Revert r112623. It is causing self host build failures.
...
llvm-svn: 112631
2010-08-31 19:41:03 +00:00
Duncan Sands
ca7a58c6a3
Update the Ada instructions to LLVM 2.7 (from LLVM 2.5).
...
llvm-svn: 112630
2010-08-31 19:40:21 +00:00
Owen Anderson
66b51ff843
Add an RAII helper to make cleanup of the RecursionSet more fool-proof.
...
llvm-svn: 112628
2010-08-31 19:24:27 +00:00
Owen Anderson
5e2c04e417
Only try to clean up the current block if we changed that block already.
...
llvm-svn: 112625
2010-08-31 18:55:52 +00:00
Jim Grosbach
9cc0a6397a
SP relative offsets need to be adjusted by the local allocation size when
...
determining if they're likely to be in range of the SP when resolving
frame references.
llvm-svn: 112624
2010-08-31 18:52:31 +00:00
Devang Patel
414cbc940a
Remember byval argument's frame index during argument lowering and use this info to emit debug info.
...
Fixes Radar 8367011.
llvm-svn: 112623
2010-08-31 18:50:09 +00:00
Jim Grosbach
d0ebe535e9
this assert should just be a condition, since this function is just asking if
...
the offset is legally encodable, not actually trying to do the encoding.
llvm-svn: 112622
2010-08-31 18:49:31 +00:00
Owen Anderson
3ab91d56b4
Add a test for the duplicated-conditional situation illutrated by PR5652.
...
llvm-svn: 112621
2010-08-31 18:49:12 +00:00
Owen Anderson
e2b5bd3a7f
Refactor my fix for PR5652 to terminate the predecessor lookups after the first failure.
...
llvm-svn: 112620
2010-08-31 18:48:48 +00:00
Chris Lattner
98902c15fa
merge two tests.
...
llvm-svn: 112617
2010-08-31 18:44:03 +00:00
Owen Anderson
43ac4da8d1
Manually reduce this testcase.
...
llvm-svn: 112615
2010-08-31 18:16:29 +00:00
Chris Lattner
8535204036
merge two tests and convert to filecheck.
...
llvm-svn: 112613
2010-08-31 18:05:08 +00:00
Owen Anderson
e4af4b10f1
Add a micro-test for the transforms I added to JumpThreading.
...
I have not been able to find a way to test each in isolation, for a few reasons:
1) The ability to look-through non-i1 BinaryOperator's requires the ability to look through non-constant
ICmps in order for it to ever trigger.
2) The ability to do LVI-powered PHI value determination only matters in cases that ProcessBranchOnPHI
can't handle. Since it already handles all the cases without other instructions in the def-use chain
between the PHI and the branch, it requires the ability to look through ICmps and/or BinaryOperators
as well.
llvm-svn: 112611
2010-08-31 17:59:07 +00:00
Jim Grosbach
0a357d79c7
Update test for 112609
...
llvm-svn: 112610
2010-08-31 17:58:47 +00:00
Jim Grosbach
ddc265a982
Improve virtual frame base register allocation heuristics.
...
1. Allocate them in the entry block of the function to enable function-wide
re-use. The instructions to create them should be re-materializable, so
there shouldn't be additional cost compared to creating them local
to the basic blocks where they are used.
2. Collect all of the frame index references for the function and sort them
by the local offset referenced. Iterate over the sorted list to
allocate the virtual base registers. This enables creation of base
registers optimized for positive-offset access of frame references.
(Note: This may be appropriate to later be a target hook to do the
sorting in a target appropriate manner. For now it's done here for
simplicity.)
llvm-svn: 112609
2010-08-31 17:58:19 +00:00
Dan Gohman
47865eb626
Speculatively revert r112433.
...
llvm-svn: 112608
2010-08-31 17:56:47 +00:00
Benjamin Kramer
3f8b8c1f5b
Allow creation of SHT_NULL sections, from Roman Divacky.
...
llvm-svn: 112605
2010-08-31 17:03:33 +00:00
Duncan Sands
2a1c11e104
Stop using the dom frontier in DwarfEHPrepare by not promoting alloca's
...
any more. I plan to reimplement alloca promotion using SSAUpdater later.
It looks like Bill's URoR logic really always needs domtree, so the pass
now always asks for domtree info.
llvm-svn: 112597
2010-08-31 09:05:06 +00:00
Nick Lewycky
66fe124a92
Fix an infinite loop; merging two functions will create a new function (if the
...
two are weak, we make them thunks to a new strong function) so don't iterate
through the function list as we're modifying it.
Also add back the outermost loop which got removed during the cleanups.
llvm-svn: 112595
2010-08-31 08:29:37 +00:00
Owen Anderson
bf12defee5
Don't perform an extra traversal of the function just to do cleanup. We can safely simplify instructions after each block has been processed without worrying about iterator invalidation.
...
llvm-svn: 112594
2010-08-31 07:55:56 +00:00
Bill Wendling
0409e77e99
- Cleanup some whitespaces.
...
- Convert {0,1} and friends into 0b01, which is identical and more consistent.
llvm-svn: 112593
2010-08-31 07:50:46 +00:00
Owen Anderson
e930c65b2c
Rename test directory to reflect new pass name.
...
llvm-svn: 112592
2010-08-31 07:50:31 +00:00
Owen Anderson
ccaee65189
Rename ValuePropagation to a more descriptive CorrelatedValuePropagation.
...
llvm-svn: 112591
2010-08-31 07:48:34 +00:00
Owen Anderson
6853ce863c
Rename file to something more descriptive.
...
llvm-svn: 112590
2010-08-31 07:41:39 +00:00
Owen Anderson
ba28fe3dcb
More Chris-inspired JumpThreading fixes: use ConstantExpr to correctly constant-fold undef, and be more careful with its return value.
...
This actually exposed an infinite recursion bug in ComputeValueKnownInPredecessors which theoretically already existed (in JumpThreading's
handling of and/or of i1's), but never manifested before. This patch adds a tracking set to prevent this case.
llvm-svn: 112589
2010-08-31 07:36:34 +00:00
Michael J. Spencer
ab565264fa
Cleanup Whitespace.
...
llvm-svn: 112587
2010-08-31 06:36:46 +00:00
Michael J. Spencer
3bca7bf84d
System: Fix getMagicNumber on windows.
...
getMagicNumber was treating the _binary_ data it read in as a
null terminated string. This resulted in the std::string
calculating the length, and causing an assert in other code that
assumed that the length it passed was the same as the length of
the string it would get back.
llvm-svn: 112586
2010-08-31 06:36:33 +00:00
Michael J. Spencer
b475feaea4
Fix spelling/typo.
...
llvm-svn: 112585
2010-08-31 06:36:22 +00:00
Devang Patel
a1ff33906b
Offset is not always unsigned number.
...
llvm-svn: 112584
2010-08-31 06:12:08 +00:00
Devang Patel
2eeab37306
Simplify.
...
llvm-svn: 112583
2010-08-31 06:11:28 +00:00
Nick Lewycky
75dfadbaf9
Switch to DenseSet, simplifying much more code. We now have a single iteration
...
where we hash, compare and fold, instead of one iteration where we build up
the hash buckets and a second one to fold.
llvm-svn: 112582
2010-08-31 05:53:05 +00:00
Owen Anderson
bd9edea8a3
Remove r111665, which implemented store-narrowing in InstCombine. Chris discovered a miscompilation in it, and it's not easily
...
fixable at the optimizer level. I'll investigate reimplementing it in DAGCombine.
llvm-svn: 112575
2010-08-31 04:41:06 +00:00
Bruno Cardoso Lopes
ebe80d78ff
zap unused method. x86 is the only user and already has a more powerfull version
...
llvm-svn: 112571
2010-08-31 02:36:20 +00:00
Bruno Cardoso Lopes
08d5d62dcb
Use X86ISD::MOVSS and MOVSD to represent the movl mask pattern, also fix the handling of those nodes when seeking for scalars inside vector shuffles
...
llvm-svn: 112570
2010-08-31 02:26:40 +00:00
Eric Christopher
b2756a8b99
Rewrite slightly so we can expand for floating point types easier.
...
llvm-svn: 112568
2010-08-31 01:28:42 +00:00
Jakob Stoklund Olesen
6fa8a6ac6b
Add experimental -disable-physical-join command line option.
...
Eventually, we want to disable physreg coalescing completely, and let the
register allocator do its job using hints.
This option makes it possible to measure the impact of disabling physreg
coalescing.
llvm-svn: 112567
2010-08-31 01:27:49 +00:00
Owen Anderson
f1cec75012
Fix a typo.
...
llvm-svn: 112560
2010-08-30 23:59:30 +00:00
Eric Christopher
21b355b522
If we have an unhandled type then assert, we shouldn't get here for
...
things we can't handle.
llvm-svn: 112559
2010-08-30 23:48:26 +00:00
Dan Gohman
d261381db5
Update the descriptions of NoModRef and ModRef to be consistent
...
with the descriptions of Mod and Ref.
llvm-svn: 112557
2010-08-30 23:47:24 +00:00
Anton Korobeynikov
c3f039784a
Fix borken test
...
llvm-svn: 112555
2010-08-30 23:41:49 +00:00
Owen Anderson
18110f0db4
Combine these two tests, and make sure there's a newline at the end of the file.
...
llvm-svn: 112554
2010-08-30 23:37:41 +00:00
Owen Anderson
c90a98e0a5
Cleanups suggested by Chris.
...
llvm-svn: 112553
2010-08-30 23:34:17 +00:00
Owen Anderson
af33f22b40
Re-apply r112539, being more careful to respect the return values of the constant folding methods. Additionally,
...
use the ConstantExpr::get*() methods to simplify some constant folding.
llvm-svn: 112550
2010-08-30 23:22:36 +00:00
Anton Korobeynikov
851437063a
Expand MOVi32imm in ARM mode after regalloc. This provides
...
scheduling opportunities (extra instruction can go in between
MOVT / MOVW pair removing the stall).
llvm-svn: 112546
2010-08-30 22:50:36 +00:00