Commit Graph

97542 Commits

Author SHA1 Message Date
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
Argyrios Kyrtzidis d0039e56f2 Keep the source location of the selector in ObjCMessageExpr.
llvm-svn: 121516
2010-12-10 20:08:27 +00:00
Argyrios Kyrtzidis e54c2a8fd8 Make RecursiveASTVisitor traverse a ObjCMethodDecl.
llvm-svn: 121515
2010-12-10 20:08:22 +00:00
Dan Gohman 201acdb6db Use PartialAlias to do better noalias lint checking.
llvm-svn: 121514
2010-12-10 20:04:06 +00:00
Dan Gohman 4431e31df0 Teach AliasAnalysisCounter about PartialAlias.
llvm-svn: 121513
2010-12-10 19:53:05 +00:00
Dan Gohman 105d60a5ef Teach AliasAnalysisEvaluator about PartialAlias.
llvm-svn: 121512
2010-12-10 19:52:40 +00:00
Sean Callanan a43f20df95 Simplified the code that handles overloaded
operator names.

llvm-svn: 121511
2010-12-10 19:51:54 +00:00
Michael J. Spencer f5799be4a8 Add CMake build and fix major Linux blockers.
llvm-svn: 121510
2010-12-10 19:47:54 +00:00
Bob Wilson a880fa0b28 Do not assert on shifts of Neon polynomial types.
Most Neon shift intrinsics do not have variants for polynomial types, but
vsri_n and vsli_n do support them, and we need to properly range-check the
shift immediates for them.

llvm-svn: 121509
2010-12-10 19:45:06 +00:00
Dan Gohman fb0a3754f5 Update this code to handle PartialAlias as MayAlias.
llvm-svn: 121508
2010-12-10 19:40:47 +00:00
Dan Gohman 4bd64fa805 Introduce a new PartialAlias response for AliasAnalysis. For most
AliasAnalysis consumers, PartialAlias will be treated as MayAlias.

For AliasAnalysis chaining, MayAlias says "procede to the next analysis".
PartialAlias will be used to indicate that the query should terminate,
even though it didn't reach MustAlias or NoAlias.

llvm-svn: 121507
2010-12-10 19:38:58 +00:00
Bob Wilson d29b38c893 Fix some invalid alignments for Neon vld-dup and vld/st-lane instructions.
Alignments smaller than the total size of the memory being loaded or stored,
unless the alignment is 8 bytes, are not allowed.  Add tests for this, too.

llvm-svn: 121506
2010-12-10 19:37:42 +00:00
Douglas Gregor 513e63c114 Silence a few more uninitialized-value warnings
llvm-svn: 121505
2010-12-10 19:28:19 +00:00
Douglas Gregor a72e2392e6 Silence a GCC unitialized-value warning
llvm-svn: 121504
2010-12-10 19:27:07 +00:00
Howard Hinnant 7f8e26867f Test adjustment for recent changes in allocator_traits
llvm-svn: 121503
2010-12-10 19:22:37 +00:00
Howard Hinnant 088bd9aa14 This got accidentally removed
llvm-svn: 121502
2010-12-10 19:22:00 +00:00
Johnny Chen 240f8c7dd1 Do not specify both '-a' and '+a' at the same time.
llvm-svn: 121501
2010-12-10 19:02:23 +00:00
Johnny Chen f3e22ac3c7 Add a '+a' command line option to the test driver to run only the Python API tests.
Add an attribute __python_api_test__ (set to True) to the @python_api_test decorated
test method to distinguish them from the lldb command line tests.

llvm-svn: 121500
2010-12-10 18:52:10 +00:00
Johnny Chen 47ed69e72c Add the @python_api_test decorator for two test cases.
llvm-svn: 121499
2010-12-10 18:42:07 +00:00
Jim Grosbach bdb7ed16c1 Teach isCSRestore() that ARM/Thumb2 functions will use post-modify LDR
instructions to restore a single register rather than an LDM instruction.
rdar://8754999

llvm-svn: 121498
2010-12-10 18:41:15 +00:00
Jakob Stoklund Olesen 0c67e01e5f Add an AllocationOrder class that can iterate over the allocatable physical
registers for a given virtual register.

Reserved registers are filtered from the allocation order, and any valid hint is
returned as the first suggestion.

For target dependent hints, a number of arcane target hooks are invoked.

llvm-svn: 121497
2010-12-10 18:36:02 +00:00
Jim Grosbach e119da1146 Thumb unconditional branch binary encoding. rdar://8754994
llvm-svn: 121496
2010-12-10 18:21:33 +00:00
Douglas Gregor 8d34e5eb49 Replace two QualType::getTypePtrOrNull() calls with
QualType::getTypePtr(). It turns out that
cast_or_null/dyn_cast_or_null don't actually use simplify_type, so
they're guaranteed to operator on non-NULL QualType or CanQualType
objects.

Good for a 0.6% win on 403.gcc's combine.c with -emit-llvm.

llvm-svn: 121495
2010-12-10 17:19:40 +00:00
Johnny Chen 63d045d560 Fix some typo in method names and docstrings.
llvm-svn: 121494
2010-12-10 17:15:34 +00:00
Jim Grosbach 78485ad65e Thumb conditional branch binary encodings. rdar://8745367
llvm-svn: 121493
2010-12-10 17:13:40 +00:00