Nick Lewycky
68faa2dbbe
Quiet a compiler warning about unused variable 'ExtVNI'.
...
llvm-svn: 126815
2011-03-02 01:43:30 +00:00
Dan Gohman
7290868a1b
Don't re-use existing addrec expansions if they contain casts.
...
This fixes PR9259.
llvm-svn: 126812
2011-03-02 01:34:10 +00:00
Evan Cheng
15fed7af3c
Catch more cases where 2-address pass should 3-addressify instructions. rdar://9002648.
...
llvm-svn: 126811
2011-03-02 01:08:17 +00:00
Jakob Stoklund Olesen
b02376198b
Rename mapValue to extendRange because that is its function now.
...
Simplify the signature - The return value and ParentVNI are no longer needed.
llvm-svn: 126809
2011-03-02 00:49:28 +00:00
Jakob Stoklund Olesen
f3c6e9211c
Simplify LiveIntervals::shrinkToUses() a bit by using the new extendInBlock().
...
llvm-svn: 126806
2011-03-02 00:33:03 +00:00
Jakob Stoklund Olesen
81eb18df34
Fix typo.
...
llvm-svn: 126805
2011-03-02 00:33:01 +00:00
Dan Gohman
bc579bcc63
Make pred_iterator DefaultConstructible, and add an accessor to
...
retrieve the underlying getOperandNo() value.
llvm-svn: 126804
2011-03-02 00:11:28 +00:00
Jakob Stoklund Olesen
9e326a8413
Move LiveIntervalMap::extendTo into LiveInterval itself.
...
This method could probably be used by LiveIntervalAnalysis::shrinkToUses, and
now it can use extendIntervalEndTo() which coalesces ranges.
llvm-svn: 126803
2011-03-02 00:06:15 +00:00
Jakob Stoklund Olesen
2b09bed518
Delete dead code.
...
llvm-svn: 126801
2011-03-01 23:24:19 +00:00
Jakob Stoklund Olesen
8ef91fc870
Move the value map from LiveIntervalMap to SplitEditor.
...
The value map is currently not used, all values are 'complex mapped' and
LiveIntervalMap::mapValue is used to dig them out.
This is the first step in a series changes leading to the removal of
LiveIntervalMap. Its data structures can be shared among all the live intervals
created by a split, so it is wasteful to create a copy for each.
llvm-svn: 126800
2011-03-01 23:14:53 +00:00
Jakob Stoklund Olesen
977e3d3c48
Delete dead code.
...
Local live range splitting is better driven by interference. This code was just
guessing.
llvm-svn: 126799
2011-03-01 23:14:50 +00:00
Jakob Stoklund Olesen
ff07178789
Drop RAGreedy::trySpillInterferences().
...
This is a waste of time since we already know how to evict all interferences
which is a better approach anyway.
llvm-svn: 126798
2011-03-01 23:14:48 +00:00
Oscar Fuentes
98a3c80a3e
Fixes warnings emitted by Visual Studio 2010 compiler.
...
Patch by Erik Olofsson!
llvm-svn: 126796
2011-03-01 23:11:57 +00:00
Devang Patel
6c622ef1bc
If argument numbering is encoded in metadata then emit arguments' debug info in that order.
...
llvm-svn: 126794
2011-03-01 22:58:55 +00:00
Devang Patel
40eee1e970
Today, the language front ends produces llvm.dbg.* intrinsics, used to encode arguments' debug info, in order any way, most of the times. However, if a front end mix-n-matches llvm.dbg.declare and llvm.dbg.value intrinsics to encode debug info for arguments then code generator needs a way to find argument order.
...
Use 8 bits from line number field to keep track of argument ordering while encoding debug info for an argument. That leaves 24 bit for line no, DebugLoc also allocates 24 bit for line numbers. If a function has more than 255 arguments then rest of the arguments will be ordered by llvm.dbg.* intrinsics' ordering in IR.
llvm-svn: 126793
2011-03-01 22:58:13 +00:00
Oscar Fuentes
1276e3203e
Cmake fix for option defaults not being set correctly on first run
...
On the first cmake run before the caches has been updated with the
default options, options defined after HandleLLVMOptions are always
treated as off inside HandleLLVMOptions.
Patch by Erik Olofsson!
llvm-svn: 126790
2011-03-01 22:31:19 +00:00
Dan Gohman
2d29c3ad2f
Escape graph edge labels.
...
llvm-svn: 126788
2011-03-01 22:12:24 +00:00
Dan Gohman
1a8a741747
Remove the showline argument from the SMDiagnostic constructor
...
which constructs a diagnostic with no line to show.
llvm-svn: 126787
2011-03-01 22:11:52 +00:00
Dan Gohman
d0e098db9c
Code simplification.
...
llvm-svn: 126786
2011-03-01 22:07:55 +00:00
Dan Gohman
30713d6067
Simplify this code.
...
llvm-svn: 126785
2011-03-01 22:07:32 +00:00
Dan Gohman
031d64683a
Change directory_entry::path() to return a const std::string & instead of
...
a StringRef, for the benefit of clients that want the result as a
nul-terminated string. Clients that expect a StringRef will get one via
the implicit conversion.
llvm-svn: 126784
2011-03-01 22:07:09 +00:00
Cameron Zwarich
b7f8eaafa3
Stop computing the number of uses twice per value in CodeGenPrepare's sinking of
...
addressing code. On 403.gcc this almost halves CodeGenPrepare time and reduces
total llc time by 9.5%. Unfortunately, getNumUses() is still the hottest function
in llc.
llvm-svn: 126782
2011-03-01 21:13:53 +00:00
Jakob Stoklund Olesen
5f9f081d76
Keep track of which stage produced a live range, and bypass earlier stages when revisiting.
...
This effectively disables the 'turbo' functionality of the greedy register
allocator where all new live ranges created by splitting would be reconsidered
as if they were originals.
There are two reasons for doing this, 1. It guarantees that the algorithm
terminates. Early versions were prone to infinite looping in certain corner
cases. 2. It is a 2x speedup. We can skip a lot of unnecessary interference
checks that won't lead to good splitting anyway.
The problem is that region splitting only gets one shot, so it should probably
be changed to target multiple physical registers at once.
Local live range splitting is still 'turbo' enabled. It only accounts for a
small fraction of compile time, so it is probably not necessary to do anything
about that.
llvm-svn: 126781
2011-03-01 21:10:07 +00:00
Duncan Sands
c76ae9c8e0
Add datalayout information for the IEEE quad precision fp128 type.
...
llvm-svn: 126780
2011-03-01 20:56:50 +00:00
Dan Gohman
a9c23e2206
Revert PathV2 changes, as sys::fs::unique_file is not finished yet.
...
llvm-svn: 126773
2011-03-01 19:50:55 +00:00
Talin
de422beba4
Added missing va_end().
...
llvm-svn: 126759
2011-03-01 18:00:49 +00:00
Duncan Sands
cb95eeecc6
Add a few missed unary cases when legalizing vector results. Put some cases
...
in alphabetical order.
llvm-svn: 126745
2011-03-01 15:15:43 +00:00
Anders Carlsson
da80afef99
Make InstCombiner::FoldAndOfICmps create a ConstantRange that's the
...
intersection of the LHS and RHS ConstantRanges and return "false" when
the range is empty.
This simplifies some code and catches some extra cases.
llvm-svn: 126744
2011-03-01 15:05:01 +00:00
Chris Lattner
59fd7a9f78
add a missing const qualifier for consistency.
...
llvm-svn: 126742
2011-03-01 08:36:21 +00:00
Nick Lewycky
c9d20067cd
Optimize "icmp pred (urem X, Y), Y" --> true/false depending on pred. There's
...
more work to do here, "icmp ult (urem X, 10), 11" doesn't optimize away yet.
Fixes example 3 from PR9343!
llvm-svn: 126741
2011-03-01 08:15:50 +00:00
Jim Grosbach
621818ab1a
trailing whitespace.
...
llvm-svn: 126733
2011-03-01 01:39:05 +00:00
Jim Grosbach
1d479dbc55
Generalize the register matching code in DAGISel a bit.
...
llvm-svn: 126731
2011-03-01 01:37:19 +00:00
Bill Wendling
3b1459b810
Narrow right shifts need to encode their immediates differently from a normal
...
shift.
16-bit: imm6<5:3> = '001', 8 - <imm> is encded in imm6<2:0>
32-bit: imm6<5:4> = '01',16 - <imm> is encded in imm6<3:0>
64-bit: imm6<5> = '1', 32 - <imm> is encded in imm6<4:0>
llvm-svn: 126723
2011-03-01 01:00:59 +00:00
Eli Friedman
683bbc16c4
Add an obvious missing safety check to DAE::RemoveDeadArgumentsFromCallers.
...
llvm-svn: 126720
2011-03-01 00:33:47 +00:00
Chris Lattner
0c6cb46ac1
add a note
...
llvm-svn: 126719
2011-03-01 00:24:51 +00:00
Ted Kremenek
49d15b959e
Unbreak CMake build.
...
llvm-svn: 126717
2011-03-01 00:02:51 +00:00
Ted Kremenek
20164dcc68
Unbreak CMake build.
...
llvm-svn: 126715
2011-02-28 23:56:33 +00:00
Talin
3a0a30d44d
Add an END_WITH_NULL accessor for ConstantStruct.
...
llvm-svn: 126714
2011-02-28 23:53:27 +00:00
Chris Lattner
1ac5e0c5c6
update cmake
...
llvm-svn: 126694
2011-02-28 22:45:25 +00:00
Renato Golin
ec0fc7d842
Fix .fpu printing in ARM assembly, regarding bug http://llvm.org/bugs/show_bug.cgi?id=8931
...
llvm-svn: 126689
2011-02-28 22:04:27 +00:00
Kevin Enderby
63b0d108a2
Add missing whitespace in the formatting.
...
llvm-svn: 126687
2011-02-28 21:45:12 +00:00
Jan Sjödin
30a52dec93
Make all static functions become static class methods. Move shared (duplicated) functions to new MCELF class.
...
llvm-svn: 126686
2011-02-28 21:45:04 +00:00
Owen Anderson
0dc63104c6
Use the correct shift amount type.
...
llvm-svn: 126684
2011-02-28 21:10:10 +00:00
Owen Anderson
4f4df81861
Clean whitespace.
...
llvm-svn: 126683
2011-02-28 20:57:56 +00:00
Chris Lattner
c93d207e8c
fix a signed comparison warning.
...
llvm-svn: 126682
2011-02-28 20:50:35 +00:00
Dan Gohman
6564ca0c23
Delete obsolete test.
...
llvm-svn: 126680
2011-02-28 19:58:14 +00:00
Owen Anderson
1401dbd211
Fix warning when building with clang++.
...
llvm-svn: 126679
2011-02-28 19:58:06 +00:00
Dan Gohman
06d70015ce
Delete the GEPSplitter experiment.
...
llvm-svn: 126671
2011-02-28 19:47:47 +00:00
Dan Gohman
b8a25f49f3
Delete the SimplifyHalfPowrLibCalls pass, which was unused, and
...
only existed as the result of a misunderstanding.
llvm-svn: 126669
2011-02-28 19:41:14 +00:00
Dan Gohman
161058838c
Delete the LiveValues pass. I won't get get back to the project it
...
was started for in the foreseeable future.
llvm-svn: 126668
2011-02-28 19:37:59 +00:00