Chandler Carruth
9de23cdb45
Remove the final goto from this switch making it explict which overload set is
...
added for binary operator&.
llvm-svn: 121628
2010-12-12 08:45:02 +00:00
Chandler Carruth
9694b9cdfb
Fold away completely identical code with simple fallthrough.
...
llvm-svn: 121627
2010-12-12 08:41:34 +00:00
Chandler Carruth
f9802446a5
Move and copy function calls around to remove the indirection through gotos
...
from the switch statement.
llvm-svn: 121626
2010-12-12 08:39:38 +00:00
Chandler Carruth
0375e95446
Simplify the flow through the switch by explicitly listing the added overloads
...
for a few cases.
llvm-svn: 121625
2010-12-12 08:32:28 +00:00
Chandler Carruth
8e543b3d46
Fix 80-column violations and reflowing some code to facilitate those fixes.
...
llvm-svn: 121624
2010-12-12 08:17:55 +00:00
Chandler Carruth
85c2d09a5a
Begin the refactoring of how builtin operators are added to the overload
...
candidate set. This breaks apart a huge switch + goto system into distinct
methods on a class. It also places the current mess of tables and other static
state used in the process within that class.
This is still a work in progress. I did a few simplifications that jumped out
at me as I went, but I plan to iterate on this a bit before it's truly clean.
However, this is easily the most invasive chunk. I benchmarked it on
all-std-headers.cpp and an internal testcase that has a major hotspot in
overload resolution and saw no real performance impact.
llvm-svn: 121623
2010-12-12 08:11:30 +00:00
Chris Lattner
053a025bfe
fix typo
...
llvm-svn: 121620
2010-12-12 02:42:57 +00:00
Howard Hinnant
7f64810bc8
LWG 1385 [FCD] tuple_cat should be a single variadic signature ( http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#1385 ). This issue is only in Ready status, meaning it is not official, but probably will be this March in Madrid. It was tentatively accepted in Batavia with the previso that Bill and I didn't have any problems implementing it. This is my part of that agreement.
...
llvm-svn: 121619
2010-12-11 20:47:50 +00:00
Fariborz Jahanian
5d7e9160e7
Enhance my implementation of //rdar ://8747333 in r121597 to allow
...
for declaration of property setter/getter in forward
class extensions and also skip over
propeties which are @dynamic.
llvm-svn: 121617
2010-12-11 18:39:37 +00:00
Abramo Bagnara
9e0e7096a3
Improved complex constants evaluation.
...
llvm-svn: 121616
2010-12-11 16:05:48 +00:00
Benjamin Kramer
c4169cebe3
Generalize the and-icmp-select instcombine further by allowing selects of the form
...
(x & 2^n) ? 2^m+C : C
we can offset both arms by C to get the "(x & 2^n) ? 2^m : 0" form, optimize the
select to a shift and apply the offset afterwards.
llvm-svn: 121609
2010-12-11 10:49:22 +00:00
Benjamin Kramer
c8b035d006
Factor the (x & 2^n) ? 2^m : 0 instcombine into its own method and generalize it
...
to catch cases where n != m with a shift.
llvm-svn: 121608
2010-12-11 09:42:59 +00:00
Caroline Tice
01274c098b
Fix bug where using incomplete strings for command names causes
...
lldb to crash (because of attempt to look for full names when full
names were not used).
llvm-svn: 121607
2010-12-11 08:16:56 +00:00
Evan Cheng
3434575704
(or (and (shl A, #shamt), mask), B) => ARMbfi B, A, ~mask where lsb(mask) == #shamt. rdar://8752056
...
llvm-svn: 121606
2010-12-11 04:11:38 +00:00
Johnny Chen
f6eaba85a8
Add test_display_source_python() test case to TestSourceManager.py which uses
...
the lldb PyThon API SBSourceManager to display source files.
To accomodate this, the C++ SBSourceManager API has been changed to take an
lldb::SBStream as the destination for display of source lines. Modify SBStream::ctor()
so that its opaque pointer is initialized with an StreamString instance.
llvm-svn: 121605
2010-12-11 01:20:39 +00:00
Jakob Stoklund Olesen
92da705261
Add named timer groups for the different stages of register allocation.
...
llvm-svn: 121604
2010-12-11 00:19:56 +00:00
Sean Callanan
7fddd4c1f2
Made all LLDB-generated ASTContexts have valid
...
DiagnosticClients, and removed code that was patching
over the original problem.
llvm-svn: 121601
2010-12-11 00:08:56 +00:00
Howard Hinnant
d4a83d078c
The implementation of the new definition of result_of (N3123) resulted in some test failures in [func.memfn] that I failed to previously notice. This corrects that mistake.
...
llvm-svn: 121600
2010-12-11 00:05:19 +00:00
Jakob Stoklund Olesen
8de03d222f
Move MRI into RegAllocBase. Clean up debug output a bit.
...
llvm-svn: 121599
2010-12-10 23:49:00 +00:00
Jim Grosbach
aecdd871da
Add FIXME
...
llvm-svn: 121598
2010-12-10 23:41:10 +00:00
Fariborz Jahanian
c21f543bc4
Any property declared in a class extension might have user
...
declared setter or getter in current class extension or one
of the other class extensions. Mark them as synthesized as
property will be synthesized when property with same name is
seen in the @implementation. This prevents bogus warning
about unimplemented methods to be issued for these methods.
Fixes // rdar://8747333
llvm-svn: 121597
2010-12-10 23:36:33 +00:00
Nick Lewycky
bb8610635f
Remove extraneous close parenthesis.
...
Fix build breakage.
llvm-svn: 121596
2010-12-10 23:14:35 +00:00
Bob Wilson
546b691c73
Add missing switch case for the quad-register version of the Neon vmul builtin.
...
llvm-svn: 121595
2010-12-10 23:09:09 +00:00
Nick Lewycky
07a95f8f06
Move variable that's unused in an NDEBUG build inside the DEBUG() macro, fixing
...
lib/CodeGen/RegAllocGreedy.cpp:233: error: unused variable 'TRC' [-Wunused-variable]
llvm-svn: 121594
2010-12-10 23:05:10 +00:00
Owen Anderson
235c276442
Attempt to get Thumb2 branch fixups working properly.
...
llvm-svn: 121593
2010-12-10 23:02:28 +00:00
Bob Wilson
0348af667a
Fix clang crashes on Neon vld[234]_dup intrinsics with 64-bit element types.
...
The 64-bit element vectors need to be handled as a special case.
llvm-svn: 121592
2010-12-10 22:54:58 +00:00
Jakob Stoklund Olesen
adecb5e82c
Force the greedy register allocator to always use the inline spiller.
...
Soon, RegAllocGreedy will start splitting live ranges, and then deferred
spilling won't work anyway.
llvm-svn: 121591
2010-12-10 22:54:44 +00:00
Jakob Stoklund Olesen
276445f3b8
Rip out live range splitting support from the inline spiller.
...
The spiller should only spill. The register allocator will drive live range
splitting, it has the needed information about register pressure and
interferences.
llvm-svn: 121590
2010-12-10 22:54:40 +00:00
Bill Wendling
73a48d83b2
Get rid of ellipses.
...
llvm-svn: 121589
2010-12-10 22:54:30 +00:00
Owen Anderson
7cdd232895
Fix merge error in my last fix to Thumb2 vldr fixups.
...
llvm-svn: 121588
2010-12-10 22:53:48 +00:00
Owen Anderson
4743d75640
Fixups for Thumb2 vldr's need to have the effective PC aligned as well.
...
llvm-svn: 121587
2010-12-10 22:46:47 +00:00
Bill Wendling
006ab13b59
The MCFixupKindInfo table needs to be in the order that the enums were
...
declared. Add a note specifying this and spruce up the list a bit.
llvm-svn: 121586
2010-12-10 22:37:19 +00:00
Owen Anderson
b538a22762
Provide the necessary post-encoder hook for Thumb2 encodings of VMOV and friends.
...
llvm-svn: 121585
2010-12-10 22:32:08 +00:00
Jakob Stoklund Olesen
4d7432ebf1
Use AllocationOrder in RegAllocGreedy, fix a bug in the hint calculation.
...
llvm-svn: 121584
2010-12-10 22:21:05 +00:00
Bob Wilson
9375d27460
Add float patterns for Neon vld1-lane/dup and vst1-lane operations.
...
llvm-svn: 121583
2010-12-10 22:13:32 +00:00
Bob Wilson
e1d3322111
Remove unused arguments.
...
llvm-svn: 121582
2010-12-10 22:13:24 +00:00
Owen Anderson
b0fa127f60
Fix encoding of Thumb1 LDRB and STRB.
...
llvm-svn: 121581
2010-12-10 22:11:13 +00:00
Jim Grosbach
c4a0c29edb
Trailing whitespace.
...
llvm-svn: 121580
2010-12-10 21:57:34 +00:00
Owen Anderson
68cb7e3552
Fix Thumb2 encodings of STREX and LDREX.
...
llvm-svn: 121579
2010-12-10 21:52:38 +00:00
Dan Gohman
39de62348f
Revert r121520, which may have introduced miscompilations.
...
llvm-svn: 121573
2010-12-10 21:48:28 +00:00
Johnny Chen
de1451ef4b
Make sure that @python_api_test is only used to decorate a test method, not the
...
test class.
llvm-svn: 121538
2010-12-10 21:33:31 +00:00
Jim Grosbach
fc17b5be78
Correct encoding of rotation immediate for Thumb2 instructions. rdar://8755999
...
llvm-svn: 121525
2010-12-10 21:24:18 +00:00
Jim Grosbach
e69f724935
Fix encoding of 'U' bit for Thumb2 STRD/LDRD instructions. rdar://8755726
...
llvm-svn: 121524
2010-12-10 21:05:07 +00:00
Jim Grosbach
e991a6ee5a
More trivial cleanup. No need to define the EncoderMethod property type. Can
...
just assign to it.
llvm-svn: 121523
2010-12-10 20:53:44 +00:00
Jim Grosbach
95bd6b7b62
Tidy up.
...
llvm-svn: 121522
2010-12-10 20:51:35 +00:00
Jim Grosbach
c4669edf2c
Trailing whitespace.
...
llvm-svn: 121521
2010-12-10 20:47:29 +00:00
Dan Gohman
041f74e762
Implement PartialAlias checking in BasicAA.
...
llvm-svn: 121520
2010-12-10 20:47:03 +00:00
Jakob Stoklund Olesen
1c6196228a
Fix miscompilation caused by trivial logic error in the reassignVReg()
...
interference check.
llvm-svn: 121519
2010-12-10 20:45:04 +00:00
Dan Gohman
704e7c2332
Minimally update this code to handle PartialAlias.
...
llvm-svn: 121518
2010-12-10 20:14:49 +00:00
Argyrios Kyrtzidis
4d754a5502
Introduce ObjCMessageExpr::getReceiverRange() to get the source range of the receiver.
...
llvm-svn: 121517
2010-12-10 20:08:30 +00:00