Jakob Stoklund Olesen
4f3da0eab4
Delete dead code.
...
llvm-svn: 126801
2011-03-01 23:24:19 +00:00
Jakob Stoklund Olesen
15d9bf0424
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
13b552560b
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
36e4edd585
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
15a668f50b
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
8233c58f5d
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
5c7b3c4228
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
55a2d6fe22
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
4694b04817
Escape graph edge labels.
...
llvm-svn: 126788
2011-03-01 22:12:24 +00:00
Dan Gohman
ec55e3d750
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
bf282415a2
Code simplification.
...
llvm-svn: 126786
2011-03-01 22:07:55 +00:00
Dan Gohman
304de5bc17
Simplify this code.
...
llvm-svn: 126785
2011-03-01 22:07:32 +00:00
Dan Gohman
c6cda9defe
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
0287e8ad22
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
ef6bec1ff5
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
859a335e92
Add datalayout information for the IEEE quad precision fp128 type.
...
llvm-svn: 126780
2011-03-01 20:56:50 +00:00
Dan Gohman
8626e387c3
Revert PathV2 changes, as sys::fs::unique_file is not finished yet.
...
llvm-svn: 126773
2011-03-01 19:50:55 +00:00
Talin
1d7928c794
Added missing va_end().
...
llvm-svn: 126759
2011-03-01 18:00:49 +00:00
Duncan Sands
b0cd2d9a1e
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
1eb388e6c3
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
877ce8549d
add a missing const qualifier for consistency.
...
llvm-svn: 126742
2011-03-01 08:36:21 +00:00
Nick Lewycky
e9d448e997
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
3b72823981
trailing whitespace.
...
llvm-svn: 126733
2011-03-01 01:39:05 +00:00
Jim Grosbach
fbdcd70f4b
Generalize the register matching code in DAGISel a bit.
...
llvm-svn: 126731
2011-03-01 01:37:19 +00:00
Bill Wendling
304dda7810
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
c00dc3f262
Add an obvious missing safety check to DAE::RemoveDeadArgumentsFromCallers.
...
llvm-svn: 126720
2011-03-01 00:33:47 +00:00
Chris Lattner
871d62dc5b
add a note
...
llvm-svn: 126719
2011-03-01 00:24:51 +00:00
Ted Kremenek
8c2e50117d
Unbreak CMake build.
...
llvm-svn: 126717
2011-03-01 00:02:51 +00:00
Ted Kremenek
7b6189c848
Unbreak CMake build.
...
llvm-svn: 126715
2011-02-28 23:56:33 +00:00
Talin
753b7ce425
Add an END_WITH_NULL accessor for ConstantStruct.
...
llvm-svn: 126714
2011-02-28 23:53:27 +00:00
Chris Lattner
77d6f9b20e
update cmake
...
llvm-svn: 126694
2011-02-28 22:45:25 +00:00
Renato Golin
986151bc09
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
da76779962
Add missing whitespace in the formatting.
...
llvm-svn: 126687
2011-02-28 21:45:12 +00:00
Jan Sjödin
6bc6d6ab39
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
22d34c260e
Use the correct shift amount type.
...
llvm-svn: 126684
2011-02-28 21:10:10 +00:00
Owen Anderson
1614a324d9
Clean whitespace.
...
llvm-svn: 126683
2011-02-28 20:57:56 +00:00
Chris Lattner
355d573721
fix a signed comparison warning.
...
llvm-svn: 126682
2011-02-28 20:50:35 +00:00
Dan Gohman
8586cb2f51
Delete obsolete test.
...
llvm-svn: 126680
2011-02-28 19:58:14 +00:00
Owen Anderson
9d0944d6bd
Fix warning when building with clang++.
...
llvm-svn: 126679
2011-02-28 19:58:06 +00:00
Dan Gohman
91de965338
Delete the GEPSplitter experiment.
...
llvm-svn: 126671
2011-02-28 19:47:47 +00:00
Dan Gohman
db646bfdad
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
1ee6941aca
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
Jakob Stoklund Olesen
2bec7738eb
Fix typo introduced by r126661: "Fix a typo which ..."
...
llvm-svn: 126666
2011-02-28 19:18:59 +00:00
David Greene
3bc73b0ae9
[AVX] Add decode support for VUNPCKLPS/D instructions, both 128-bit
...
and 256-bit forms. Because the number of elements in a vector
does not determine the vector type (4 elements could be v4f32 or
v4f64), pass the full type of the vector to decode routines.
llvm-svn: 126664
2011-02-28 19:06:56 +00:00
Kevin Enderby
a1c2ea4ba0
Fix the arm's disassembler for blx that was building an MCInst without the
...
needed two predicate operands before the imm operand.
llvm-svn: 126662
2011-02-28 18:46:31 +00:00
Evan Cheng
4e6d375744
Fix a typo which cause dag combine crash. rdar://9059537.
...
llvm-svn: 126661
2011-02-28 18:45:27 +00:00
Stuart Hastings
539d4e1460
Support for byval parameters on ARM. Will be enabled by a forthcoming
...
patch to the front-end. Radar 7662569.
llvm-svn: 126655
2011-02-28 17:17:53 +00:00
Duncan Sands
0f78cf8a37
Windows codegen also dies on this, so restrict to the platform it was
...
actually tested on.
llvm-svn: 126652
2011-02-28 14:22:08 +00:00
Kalle Raiskila
cc5b703c81
Add branch hinting for SPU.
...
The implemented algorithm is overly simplistic (just speculate all branches are
taken)- this is work in progress.
llvm-svn: 126651
2011-02-28 14:08:24 +00:00
Duncan Sands
195d2036d0
Make this test x86 specific because the ARM backend can't handle it.
...
llvm-svn: 126650
2011-02-28 12:30:47 +00:00