Commit Graph

85892 Commits

Author SHA1 Message Date
Kenneth Uildriks 7228d98b85 Partial specialization test should not depend on the order of specialization operations or the names assigned to the specialized functions
llvm-svn: 106953
2010-06-26 18:47:40 +00:00
Rafael Espindola 2041abd958 When splitting a VAARG, remember its alignment.
This produces terrible but correct code.

llvm-svn: 106952
2010-06-26 18:22:20 +00:00
Bob Wilson 418e64a385 Revert my if-conversion cleanup since it caused a bunch of nightly test
regressions.

--- Reverse-merging r106939 into '.':
U    test/CodeGen/Thumb2/thumb2-ifcvt3.ll
U    lib/CodeGen/IfConversion.cpp

llvm-svn: 106951
2010-06-26 17:47:06 +00:00
Chris Lattner 30c924b3e8 Implement support for #pragma message, patch by Michael Spencer!
llvm-svn: 106950
2010-06-26 17:11:39 +00:00
Anders Carlsson 04775f8413 Change EmitReferenceBindingToExpr to take a decl instead of a boolean.
llvm-svn: 106949
2010-06-26 16:35:32 +00:00
Anders Carlsson 709ef8e46c Add function for mangling reference temporaries.
llvm-svn: 106948
2010-06-26 16:09:40 +00:00
Duncan Sands 3a5cb69cb8 Fix PR7328: when turning a tail recursion into a loop, need to preserve
the returned value after the tail call if it differs from other return
values.  The optimal thing to do would be to introduce a phi node for
the return value, but for the moment just fix the miscompile.

llvm-svn: 106947
2010-06-26 12:53:31 +00:00
Gabor Greif 7d4038dd88 use ArgOperand API
llvm-svn: 106946
2010-06-26 12:17:21 +00:00
Gabor Greif c2ac8c4261 use ArgOperand API
llvm-svn: 106945
2010-06-26 12:09:10 +00:00
Gabor Greif 83205af3fa use ArgOperand API
llvm-svn: 106944
2010-06-26 11:51:52 +00:00
Benjamin Kramer a000002428 VNInfos don't need to be destructed anymore.
llvm-svn: 106943
2010-06-26 11:30:59 +00:00
Gabor Greif e9afee2910 resort to ArgOperand API
llvm-svn: 106942
2010-06-26 09:35:09 +00:00
Eli Friedman b9bdc5a52d Remove bogus test.
llvm-svn: 106941
2010-06-26 04:59:56 +00:00
Eli Friedman 8cfa7713e9 Followup to r106770: actually generate SXTB and SXTH for sign-extensions.
llvm-svn: 106940
2010-06-26 04:36:50 +00:00
Bob Wilson c72da6bb56 Clean up some problems with extra CFG edges being introduced during
if-conversion.  The RemoveExtraEdges function doesn't work for blocks that
end with unanalyzable branches, so in those cases, the "extra" edges must
be explicitly removed.  The CopyAndPredicateBlock and MergeBlocks methods
can also avoid copying successor edges due to branches that have already
been removed.  The latter case is especially helpful when MergeBlocks is
called for handling "diamond" if-conversions, where otherwise you can end
up with some weird intermediate states in the CFG.  Unfortunately I've
been unable to find cases where this cleanup actually makes a significant
difference in the code.  There is one test where we manage to remove an
empty block at the end of a function.  Radar 6911268.

llvm-svn: 106939
2010-06-26 04:27:33 +00:00
Bob Wilson 0248da9db4 Add support for encoding NEON VMOV (from scalar to core register) instructions.
llvm-svn: 106938
2010-06-26 04:07:15 +00:00
Charles Davis f4db33cbdf Mangle pointer and (lvalue) reference types in the Microsoft C++ Mangler.
Also, fix mangling of throw specs. Turns out MSVC totally ignores throw
specs when mangling names.

llvm-svn: 106937
2010-06-26 03:50:05 +00:00
Evan Cheng b71233f34d It's now possible to run code placement pass for ARM.
llvm-svn: 106935
2010-06-26 01:52:05 +00:00
Jakob Stoklund Olesen d7d0d4e882 When creating X86 MUL8 and DIV8 instructions, make sure we don't produce
CopyFromReg nodes for aliasing registers (AX and AL). This confuses the fast
register allocator.

Instead of CopyFromReg(AL), use ExtractSubReg(CopyFromReg(AX), sub_8bit).

This fixes PR7312.

llvm-svn: 106934
2010-06-26 00:39:23 +00:00
Daniel Dunbar 69a5af21e4 Remove cruft that I didn't intend to commit.
llvm-svn: 106932
2010-06-26 00:31:14 +00:00
Johnny Chen c43d789a38 No need to add the test script containing directory to sys.path more than once.
llvm-svn: 106929
2010-06-26 00:19:32 +00:00
Bob Wilson b4d39841e4 Renumber NEON instruction formats to be consecutive.
llvm-svn: 106927
2010-06-26 00:05:09 +00:00
Bob Wilson f11a38dcce Add a missing dependency to try to fix a buildbot failure.
It complained with:

llvm[5]: Building Clang arm_neon.h.inc with tblgen
cp: cannot create regular file `/build/buildbot-llvm/clang-x86_64-linux-selfhost-rel/llvm.obj.2/Release/lib/clang/2.0/include/arm_neon.h': No such file or directory

llvm-svn: 106922
2010-06-26 00:03:23 +00:00
Bob Wilson cc386fb125 Rename ARM instruction formats NEONGetLnFrm, NEONSetLnFrm and NEONDupFrm to
"N..." instead of "NEON..." for consistency with the other NEON format names.

llvm-svn: 106921
2010-06-25 23:56:05 +00:00
Ted Kremenek 58f61ec1de Relax assertion since non-pod C++ classes are not aggregates, but still can appear in this context.
llvm-svn: 106919
2010-06-25 23:51:38 +00:00
Ted Kremenek a2a27d65a5 Add support for CXXRecordDecl in CFGRecStmtDeclVisitor.
llvm-svn: 106918
2010-06-25 23:51:34 +00:00
Bruno Cardoso Lopes 74d716b9cd Add AVX convert CVTSS2SI{rr,rm} and CVTDQ2PS{rr,rm} instructions
llvm-svn: 106917
2010-06-25 23:47:23 +00:00
Bob Wilson d66f66a5cf Remove unused NEONFrm and ThumbMiscFrm ARM instruction formats.
Renumber MiscFrm to 25.

llvm-svn: 106916
2010-06-25 23:45:37 +00:00
Daniel Dunbar d7e887fb7f clang: Derive version name from LLVM unless specified explicitly. This means
clang is now clang 2.8.

llvm-svn: 106914
2010-06-25 23:34:47 +00:00
Johnny Chen 6d436d63ff Removed debug print statements.
llvm-svn: 106913
2010-06-25 23:34:17 +00:00
Bruno Cardoso Lopes 83651094ad Reapply r106896:
Add several AVX MOV flavors
Support VEX encoding for MRMDestReg

llvm-svn: 106912
2010-06-25 23:33:42 +00:00
Jordy Rose c3bcc36a0b When a constant size array is casted to another type, its length should be scaled as well.
llvm-svn: 106911
2010-06-25 23:23:04 +00:00
Johnny Chen f94c8c2bf9 Use lldb.SBDebugger.Create() factory method to create an instance first.
llvm-svn: 106910
2010-06-25 23:22:48 +00:00
Johnny Chen 9320d4ab60 A simple test of 'help' command and its output.
llvm-svn: 106909
2010-06-25 23:15:47 +00:00
Daniel Dunbar acbdf53db4 Thumb2ITBlockPass: Fix a possible dereference of an invalid iterator. This was
introduced in r106343, but only showed up recently (with a particular compiler &
linker combination) because of the particular check, and because we have no
builtin checking for dereferencing the end of an array, which is truly
unfortunate.

llvm-svn: 106908
2010-06-25 23:14:54 +00:00
Jim Grosbach c34befc78f make sure to handle dbg_value instructions in the middle of the block, not
just at the head, when doing diamond if-conversion. rdar://7797940

llvm-svn: 106907
2010-06-25 23:05:46 +00:00
Bruno Cardoso Lopes 4530fed87e revert this now, it's using avx instead of sse :)
llvm-svn: 106906
2010-06-25 23:04:29 +00:00
Jakob Stoklund Olesen 55d738e2e1 Don't track kills in VNInfo. Use interval ends instead.
The VNInfo.kills vector was almost unused except for all the code keeping it
updated. The few places using it were easily rewritten to check for interval
ends instead.

The two new methods LiveInterval::killedAt and killedInRange are replacements.

This brings us down to 3 independent data structures tracking kills.

llvm-svn: 106905
2010-06-25 22:53:05 +00:00
Ted Kremenek da42d523cf Add dead stores C++ test case that was previously asserting due to an
invalid source range for CXXNewExpr.

llvm-svn: 106904
2010-06-25 22:48:52 +00:00
Ted Kremenek abb1f91325 Use TypeSourceInfo to help determine the SourceRange of a CXXNewExpr. This fixes several
cases where we generated an invalid SourceRange for this expression.  Thanks to John McCall
for helping me figure this out.

llvm-svn: 106903
2010-06-25 22:48:49 +00:00
Evan Cheng 02b184de5b Change if-conversion block size limit checks to add some flexibility.
llvm-svn: 106901
2010-06-25 22:42:03 +00:00
Bob Wilson 2530ca0647 Add support for encoding 3-register NEON instructions, and fix
emitNEON2RegInstruction's handling of 2-address operands.

llvm-svn: 106900
2010-06-25 22:40:46 +00:00
Fariborz Jahanian d3a476b976 Try making BuildBot happy again.
llvm-svn: 106898
2010-06-25 22:32:31 +00:00
Dan Gohman fb9712bdae In GenerateReassociations, don't bother thinking about individual
SCEVUnknown values which are loop-variant, as LSR can't do anything
interesting with these values in any case. This fixes very slow compile
times on loops which have large numbers of such values.

llvm-svn: 106897
2010-06-25 22:32:18 +00:00
Bruno Cardoso Lopes a34d9b6d84 Add several AVX MOV flavors
Support VEX encoding for MRMDestReg

llvm-svn: 106896
2010-06-25 22:27:51 +00:00
Devang Patel 5c0f85c7dd Collect debug info for optimized variables of inlined functions.
llvm-svn: 106895
2010-06-25 22:07:34 +00:00
Jim Grosbach 8a6deefec6 80 column and typo fix
llvm-svn: 106894
2010-06-25 22:02:28 +00:00
Dale Johannesen ce97d55ad9 The hasMemory argument is irrelevant to how the argument
for an "i" constraint should get lowered; PR 6309.  While
this argument was passed around a lot, this is the only
place it was used, so it goes away from a lot of other
places.

llvm-svn: 106893
2010-06-25 21:55:36 +00:00
Bob Wilson e70c8b150b Add support for encoding 2-register NEON instructions.
llvm-svn: 106891
2010-06-25 21:17:19 +00:00
Johnny Chen a765c28db3 A simple testing framework for lldb using python's unit testing framework.
Tests for lldb are written as python scripts which take advantage of the script
bridging provided by LLDB.framework to interact with lldb core.

A specific naming pattern is followed by the .py script to be recognized as
a module which implements a test scenario, namely, Test*.py.

To specify the directories where "Test*.py" python test scripts are located,
you need to pass in a list of directory names.  By default, the current
working directory is searched if nothing is specified on the command line.

An example:

[14:10:20] johnny:/Volumes/data/lldb/svn/trunk/test $ ./dotest.py -v example
test_choice (TestSequenceFunctions.TestSequenceFunctions) ... ok
test_sample (TestSequenceFunctions.TestSequenceFunctions) ... ok
test_shuffle (TestSequenceFunctions.TestSequenceFunctions) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK

llvm-svn: 106890
2010-06-25 21:14:08 +00:00