Commit Graph

114636 Commits

Author SHA1 Message Date
Greg Clayton d4e2552c73 Fix preprocessor warnings for no newline at the end of the source files.
llvm-svn: 141755
2011-10-12 00:53:29 +00:00
Eric Christopher 7c8798baea Make this use a public accessor too.
llvm-svn: 141752
2011-10-12 00:38:05 +00:00
Richard Smith a9e33d44a6 Handle Perforce-style conflict markers like normal conflict markers. Perforce
swaps over the <<<< and >>>> markers, and uses shorter markers than traditional
tools.

llvm-svn: 141751
2011-10-12 00:37:51 +00:00
Nick Lewycky c585de670f Add missing space.
llvm-svn: 141750
2011-10-12 00:14:31 +00:00
Nick Lewycky 064c1c0e77 Fix indent in comment.
llvm-svn: 141749
2011-10-12 00:14:12 +00:00
Sean Callanan 503aa525ea Implemented a namespace map that allows searching
of namespaces (only in the modules where they've
been found) for entities inside those namespaces.

For each NamespaceDecl that has been imported into
the parser, we maintain a map containing
[ModuleSP, ClangNamespaceDecl] pairs in the ASTImporter.
This map has one entry for each module in which the
namespace has been found.  When we later scan for an
entity inside a namespace, we search only the modules
in which that namespace was found.

Also made a small whitespace fix in 
ClangExpressionParser.cpp.

llvm-svn: 141748
2011-10-12 00:12:34 +00:00
Evan Cheng af1389546e Fix r141744.
1. The speculation check may not have been performed if the BB hasn't had a load
   LICM candidate.
2. If the candidate would be CSE'ed, then go ahead and speculatively LICM the
   instruction even if it's in high register pressure situation.

llvm-svn: 141747
2011-10-12 00:09:14 +00:00
Jakob Stoklund Olesen 39c31a77b8 Fix -widen-vmovs liveness issues.
When widening a copy, we are reading a larger register that may not be
live.  Use an <undef> flag to tell the register scavenger and machine
code verifier that we know the value isn't defined.

We now widen:

  %S6<def> = COPY %S4<kill>, %D3<imp-def>

into:

  %D3<def> = VMOVD %D2<undef>, pred:14, pred:%noreg, %S4<imp-use,kill>

This also keeps the <kill> flag on %S4 so we don't inadvertently kill a
live value in %S5.

Finally, ensure that ARMBaseInstrInfo::setExecutionDomain() preserves
the <undef> flag when converting VMOVD to VORR.

llvm-svn: 141746
2011-10-12 00:06:23 +00:00
Fariborz Jahanian fa643c8f3b objc: note location of the previously declared
property in the diagnostic.

llvm-svn: 141745
2011-10-12 00:00:57 +00:00
Evan Cheng f192ca0761 Refine r141689 with a tri-state variable.
Also teach MachineLICM to avoid "speculation" when register pressure is high.

llvm-svn: 141744
2011-10-11 23:48:44 +00:00
Akira Hatanaka 0f4ecf7548 Change name of class to ArithOverflowR.
llvm-svn: 141743
2011-10-11 23:43:48 +00:00
Akira Hatanaka 8f0d549c4c Define class ArithLogicI. Make 32-bit and 64-bit arithmetic and logical
instructions with two register operands derive from it.

llvm-svn: 141742
2011-10-11 23:38:52 +00:00
Bob Wilson 2d3ea9b2f2 Make this test more specific. There are 3 stats that matched "machine-licm".
llvm-svn: 141741
2011-10-11 23:34:31 +00:00
Johnny Chen 8a7f3f5bac Add a more generic stepping benchmark, which uses the '-k' option of the test driver
to be able to specify the runhook(s) to bring the debug session to a certain state
before running the benchmarking logic.  An example,

./dotest.py -v -t +b -k 'process attach -n Mail' -k 'thread backtrace all' -p TestRunHooksThenSteppings.py

spawns lldb, attaches to the 'Mail' application, does a backtrace for all threads, and then
runs the benchmark to step the inferior multiple times.

llvm-svn: 141740
2011-10-11 23:22:02 +00:00
Eric Christopher 4035859cb8 Use public accessors on the scope that is returned.
llvm-svn: 141739
2011-10-11 23:19:35 +00:00
John McCall 50a2c2c19d Catch placeholder types in DefaultLvalueConversion
and DefaultFunctionArrayLvalueConversion.  To prevent
significant regression for should-this-be-a-call fixits,
and to repair some such regression from the introduction of
bound member placeholders, make those placeholder checks
try to build calls appropriately.  Harden the build-a-call
logic while we're at it.

llvm-svn: 141738
2011-10-11 23:14:30 +00:00
Akira Hatanaka 8d4f74a6b1 Fix comment.
llvm-svn: 141737
2011-10-11 23:12:12 +00:00
Akira Hatanaka ae5a9d6578 Define classes ArithLogicR and ArithLogicOfR and make 32-bit and 64-bit
arithmetic and logical instructions with three register operands derive from
them. Fix instruction encoding too.

llvm-svn: 141736
2011-10-11 23:05:46 +00:00
Fariborz Jahanian ff4d5e4c20 objc rewriter: Restore objc_msgSend_stret/objc_msgSendSuper_stret declaration
to their fragile-abi representation.

llvm-svn: 141735
2011-10-11 23:02:37 +00:00
Chris Lattner 7bd0ea3487 target data is a contract with the code generator, not the "processor"
llvm-svn: 141734
2011-10-11 23:02:17 +00:00
Chris Lattner 487974042e improve some of the documentation around target data layout strings.
llvm-svn: 141733
2011-10-11 23:01:39 +00:00
Eric Christopher 498b7fd7fe Start handling debug line and scope information better:
Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.

Finishes off the rest of rdar://10246360

llvm-svn: 141732
2011-10-11 23:00:55 +00:00
Eric Christopher fefafacf68 80-column and tab cleanup.
llvm-svn: 141731
2011-10-11 23:00:51 +00:00
Eric Christopher fb4cd4082c Reorder this to make it easier to add more changes for a location set.
llvm-svn: 141730
2011-10-11 23:00:45 +00:00
Eric Christopher 6647b83087 Add a new wrapper node for a DILexicalBlock that encapsulates it and a
file. Since it should only be used when necessary propagate it through
the backend code generation and tweak testcases accordingly.

This helps with code like in clang's test/CodeGen/debug-info-line.c where
we have multiple #line directives within a single lexical block and want
to generate only a single block that contains each file change.

Part of rdar://10246360

llvm-svn: 141729
2011-10-11 22:59:11 +00:00
Eric Christopher 57d1692750 Formatting.
llvm-svn: 141728
2011-10-11 22:59:04 +00:00
Eric Christopher cbce39c8b9 Spacing.
llvm-svn: 141727
2011-10-11 22:58:58 +00:00
Bill Wendling 579ff6c39c N.B. This is with the new EH scheme:
The blocks with invokes have branches to the dispatch block, because that more
correctly models the behavior of the CFG. The dispatch of course has edges to
the landing pads. Those landing pads could contain invokes, which then have
branches back to the dispatch. This creates a loop. The machine LICM pass looks
at this loop and thinks it can hoist elements out of it. But because the
dispatch is an alternate entry point into the program, the hoisted instructions
won't be executed.

I wasn't able to get a testcase which was small and could reproduce all of the
time. The function_try_block.cpp in llvm-test was where this showed up.

llvm-svn: 141726
2011-10-11 22:42:31 +00:00
Eli Friedman 94ab9308d7 PR11062: Make C99 inlining work properly for names with associated builtin libcalls.
llvm-svn: 141723
2011-10-11 22:09:24 +00:00
Akira Hatanaka 1c18465859 Fix function isUnalignedLoadStore.
llvm-svn: 141722
2011-10-11 22:04:01 +00:00
Jim Grosbach 9398141c48 ARM assembly parsing and encoding for LDC{2}{L}/STC{2}{L} instructions.
Fill out the rest of the encoding information, update to properly mark
the LDC/STC instructions as predicable while the LDC2/STC2 instructions are
not, and adjust the parser accordingly.

llvm-svn: 141721
2011-10-11 21:55:36 +00:00
Akira Hatanaka 10ae11fd57 Remove unused PatLeaf.
llvm-svn: 141720
2011-10-11 21:53:08 +00:00
Richard Smith 7ab47734a2 Fix test: don't use __thread without a target triple.
llvm-svn: 141719
2011-10-11 21:51:31 +00:00
Akira Hatanaka 453ac88b56 Change the names of 64-bit logical instructions so that they match the names of
the real instructions.

llvm-svn: 141718
2011-10-11 21:48:01 +00:00
Richard Smith 4ce706afc4 Constant expression evaluation: refactor value initialization and scalar list initialization into base class.
llvm-svn: 141717
2011-10-11 21:43:33 +00:00
Bill Wendling 265328baf6 Revert r141529. This is causing failures in the test-suite, like bigstack and ReedSolomon. Boo...
llvm-svn: 141716
2011-10-11 21:40:47 +00:00
Akira Hatanaka 46a7994ac9 Remove redundancy in setcc patterns using multiclass.
llvm-svn: 141715
2011-10-11 21:40:01 +00:00
Howard Hinnant 7ba930bfca Fix http://llvm.org/bugs/show_bug.cgi?id=11113
llvm-svn: 141714
2011-10-11 21:28:38 +00:00
Cameron Zwarich 1a761dcfbd Fix PR11106 by correcting a typo that has been in the code for over a year. This
would have never worked, since the element type of a vector type is never a
vector type. Also fix the conditional to be more direct in checking whether
EltTy is a vector type.

llvm-svn: 141713
2011-10-11 21:26:40 +00:00
Johnny Chen 6dcbeaeecb Patch by Dawn to add the logging capabilities to ProcessLinux.cpp.
llvm-svn: 141712
2011-10-11 21:21:57 +00:00
Johnny Chen 54cb8f83d9 Fix a typo in ProcessKDP::DidAttach().
Patch by Dawn.

llvm-svn: 141711
2011-10-11 21:17:10 +00:00
Akira Hatanaka 8c1c51045d Use sltiu instead of sltu when a register operand and immediate are compared.
llvm-svn: 141708
2011-10-11 20:44:43 +00:00
Greg Clayton 199a0bb529 Added a missing file from a previous checkin.
llvm-svn: 141707
2011-10-11 20:23:29 +00:00
Jim Grosbach 8c799c9826 Update test for r141704.
llvm-svn: 141705
2011-10-11 20:18:50 +00:00
Jim Grosbach 12b2889989 ARM addressing mode cleanup for LDC/STC.
We parse at least some forms of the instructions now. Encoding is
pretty screwed up, still, though.

llvm-svn: 141704
2011-10-11 20:17:35 +00:00
Daniel Dunbar 037fc9311a Clean up a few references to System/. We still have docs/SystemLibrary.html
lying around...

llvm-svn: 141703
2011-10-11 20:02:52 +00:00
Daniel Dunbar 55dbf03e40 Support/DataTypes.h: Clean up some types and add matching (but presumably
unused) code from .cmake to DataTypes.h.in so that the files are essentially in
sync module differences in autoconf/cmake replacement syntax.

llvm-svn: 141702
2011-10-11 20:02:49 +00:00
Eli Friedman c2025567f5 Silence some -Wuninitialized false positives with gcc.
llvm-svn: 141701
2011-10-11 20:00:47 +00:00
Richard Smith 4dd85d6fa1 Add a -Wc++0x-compat warning for C++11 keywords used as identifiers when in
C++98 mode. Only the first occurrence of each keyword will produce a warning.

llvm-svn: 141700
2011-10-11 19:57:52 +00:00
Eli Friedman 6878b1f233 Remove extra semicolon.
llvm-svn: 141699
2011-10-11 19:53:40 +00:00