Commit Graph

140323 Commits

Author SHA1 Message Date
Greg Clayton 4b63a5c1ce <rdar://problem/12928282>
Added SBTarget::EvaluateExpression() so expressions can be evaluated without needing a process.

Also fixed many functions that deal with clang AST types to be able to properly handle the clang::Type::Elaborated types ("struct foo", "class bar").

llvm-svn: 171476
2013-01-04 18:10:18 +00:00
Pedro Artigas 3383225167 small fixes to enable the reuse of the pass manager across multiple modules
llvm-svn: 171475
2013-01-04 18:04:42 +00:00
Eric Christopher c0fa867c7b Add section information for the DWARF5 split debug proposal
string offset section.

llvm-svn: 171474
2013-01-04 17:59:22 +00:00
Eric Christopher aa082063cb Make comment a bit more clear.
llvm-svn: 171473
2013-01-04 17:59:17 +00:00
Eric Christopher 0f75943780 Fix fieldNo usage for lambdas. No behavior change since the
field number was 0 anyhow.

llvm-svn: 171472
2013-01-04 17:59:07 +00:00
Nadav Rotem be6570d429 Move the loop vectorizer from O2 to O3. It looks like the increase in code size actually hurts the performance on many programs.
llvm-svn: 171471
2013-01-04 17:57:44 +00:00
Nadav Rotem 7daadf21fe Update the docs about the new unroll features.
llvm-svn: 171470
2013-01-04 17:49:45 +00:00
Nadav Rotem e1d5c4b8b9 LoopVectorizer:
1. Add code to estimate register pressure.
2. Add code to select the unroll factor based on register pressure.
3. Add bits to TargetTransformInfo to provide the number of registers.

llvm-svn: 171469
2013-01-04 17:48:25 +00:00
Nadav Rotem c616a5408a Revert revision: 171467. This transformation is incorrect and makes some tests fail. Original message:
Simplified TRUNCATE operation that comes after SETCC. It is possible since SETCC result is 0 or -1.
Added a test.

llvm-svn: 171468
2013-01-04 17:35:21 +00:00
Elena Demikhovsky 5f2f06d2d9 Simplified TRUNCATE operation that comes after SETCC. It is possible since SETCC result is 0 or -1.
Added a test.

llvm-svn: 171467
2013-01-03 08:48:33 +00:00
Michael Gottesman 820aac1c78 Revert "Mark DIV/IDIV instructions hasSideEffects=1 because they can trap when dividing by 0. This is needed to keep early if conversion from moving them across basic blocks."
This reverts commit r171461 since it breaks the following tests:

Clang :: Analysis/outofbound-notwork.c
Clang :: Analysis/string-fail.c
Clang :: CXX/basic/basic.lookup/basic.lookup.qual/p6-0x.cpp
Clang :: CXX/basic/basic.lookup/basic.lookup.unqual/p15.cpp
Clang :: CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p4.cpp
Clang :: CXX/dcl.dcl/dcl.spec/dcl.stc/p10.cpp
Clang :: CXX/temp/temp.param/p14.cpp
Clang :: CXX/temp/temp.res/temp.dep.res/temp.point/p1.cpp
Clang :: CodeGen/2009-02-13-zerosize-union-field-ppc.c
Clang :: CodeGen/blocks-2.c
Clang :: CodeGen/libcalls-d.c
Clang :: CodeGen/libcalls-ld.c
Clang :: CodeGenCXX/conversion-function.cpp
Clang :: CodeGenCXX/debug-info-limit-type.cpp
Clang :: CodeGenCXX/inheriting-constructor.cpp
Clang :: FixIt/fixit-errors.c
Clang :: FixIt/fixit-pmem.cpp
Clang :: Modules/namespaces.cpp
Clang :: PCH/changed-files.c
Clang :: PCH/pr4489.c
Clang :: PCH/source-manager-stack.c
Clang :: Parser/cxx-ambig-decl-expr-xfail.cpp
Clang :: SemaCXX/switch-implicit-fallthrough-cxx98.cpp
Clang :: SemaTemplate/instantiate-function-1.mm

llvm-svn: 171466
2013-01-03 08:18:30 +00:00
Michael Gottesman 50ae5b28e9 Changed two debug statements that state that a queue had finished being processed when said queue was really a list to state a list had finished being processed.
llvm-svn: 171465
2013-01-03 08:09:27 +00:00
Michael Gottesman ef682c5430 Added DEBUG message for ObjCARC when we zap a push/pop pair in ObjCARCAPElim::OptimizeBB.
llvm-svn: 171464
2013-01-03 08:09:17 +00:00
Michael Gottesman 416dc00cad Added DEBUG message to ObjCARC when we transform objc_initWeak(p, null) => *p = null.
llvm-svn: 171463
2013-01-03 07:32:53 +00:00
Michael Gottesman 00d1f966b4 Added DEBUG message for ObjCARC when an inline asm marker is inserted for architectures where this is required to perform a retainAutoreleasedReturnValue optimization.
llvm-svn: 171462
2013-01-03 07:32:41 +00:00
Craig Topper 7c27cc9fd0 Mark DIV/IDIV instructions hasSideEffects=1 because they can trap when dividing by 0. This is needed to keep early if conversion from moving them across basic blocks.
llvm-svn: 171461
2013-01-03 06:40:20 +00:00
Hal Finkel c8c12bc0ff Better comment on VTTI::getShuffleCost
llvm-svn: 171459
2013-01-03 05:02:41 +00:00
Rafael Espindola d2ecc139f2 Warn on unused auto variables.
To do so we have to wait until we know that the type of a variable has been
deduced. Sema::FinalizeDeclaration is the first callback that is used for
decl with or without initializers.

llvm-svn: 171458
2013-01-03 04:29:20 +00:00
Rafael Espindola 60470f1194 Use early returns to reduce indentation.
llvm-svn: 171457
2013-01-03 04:05:19 +00:00
Marshall Clow f941359201 Removed another copy of 'iterators.h' files in libcxx/test
llvm-svn: 171456
2013-01-03 03:57:56 +00:00
NAKAMURA Takumi 600361b3c1 Compiler.h: Leave LLVM_BUILTIN_UNREACHABLE undefined if it is unavailable in host compiler.
Users of LLVM_BUILTIN_UNREACHABLE should be responsible in the case when LLVM_BUILTIN_UNREACHABLE is undefined.

Actually, (0, (p)) in LLVM_ASSUME_ALIGNED(p, a) caused thousands of warnings on g++-4.4. It was a motivation in this commit.

llvm-svn: 171455
2013-01-03 03:30:22 +00:00
Argyrios Kyrtzidis 6ba7afb8e1 [arcmt] Rewrite uses of Block_copy/Block_release macros.
c = Block_copy(b);
  Block_release(c);
 ---->
  c = [b copy];
  <removed>

rdar://9408211

llvm-svn: 171454
2013-01-03 03:17:17 +00:00
Hal Finkel 95de3f3018 Add a subtype parameter to VTTI::getShuffleCost
In order to cost subvector insertion and extraction, we need to know
the type of the subvector being extracted.

No functionality change.

llvm-svn: 171453
2013-01-03 02:34:09 +00:00
Marshall Clow cf1589f749 Removed several more different 'iterators.h' files in libcxx/test
llvm-svn: 171452
2013-01-03 02:29:29 +00:00
Alex Rosenberg 59095f1cf9 Add .arcconfig for Phabricator command-line support
llvm-svn: 171451
2013-01-03 02:15:37 +00:00
Bill Wendling c0df112941 Revert everything to r171366 to try to fix the build.
llvm-svn: 171450
2013-01-03 02:01:50 +00:00
Nadav Rotem 7ea18a763b Reformat the rst text.
llvm-svn: 171449
2013-01-03 01:56:33 +00:00
Bill Wendling 04949fa998 Try again to revert the bad patch. The tree was reverted for some unknown reason
before the last time.

--- Reverse-merging r171442 into '.':
U    include/llvm/IR/Attributes.h
U    lib/IR/Attributes.cpp
U    lib/IR/AttributeImpl.h

llvm-svn: 171448
2013-01-03 01:54:39 +00:00
Hal Finkel b168708ad8 Add a default Index for VTTI::getShuffleCost
When Kind == (Broadcast or Reverse) then Index is not used; make it an optional parameter.

No functionality change.

llvm-svn: 171447
2013-01-03 01:50:51 +00:00
Nadav Rotem d554a517c0 LoopVectorizer: Test the unrolling flag.
llvm-svn: 171446
2013-01-03 01:47:31 +00:00
Nadav Rotem a616d68f2c LoopVectorizer: Document the unrolling feature.
llvm-svn: 171445
2013-01-03 01:47:02 +00:00
Bill Wendling 40785ae18f Revert patch. Something snuck in there that shouldn't be.
--- Reverse-merging r171441 into '.':
U    include/llvm/IR/Attributes.h
U    lib/IR/Attributes.cpp

llvm-svn: 171444
2013-01-03 01:46:27 +00:00
Marshall Clow 9b726d242f Removed 7 (of 8) different 'iterators.h' files in test/localization
llvm-svn: 171443
2013-01-03 01:45:09 +00:00
Bill Wendling af9a90cc00 Remove the 'contains' methods in favor of the 'operator==' method.
The 'operator==' method is a bit clearer and much less verbose for somethings
that should have only one value. Remove from the AttrBuilder for consistency.

llvm-svn: 171442
2013-01-03 01:43:05 +00:00
NAKAMURA Takumi cedab7ecf3 Revert r171427, "An intermediate step in the Attributes rewrite."
llvm-svn: 171441
2013-01-03 01:42:06 +00:00
Ted Kremenek 1d6aac5b6a Fix capitalization of Objective-C in diagnostic.
llvm-svn: 171440
2013-01-03 01:30:20 +00:00
Ted Kremenek 6fcefb53e3 Make MallocChecker debug output useful.
llvm-svn: 171439
2013-01-03 01:30:12 +00:00
Michael J. Spencer e0219f78d3 [Object] Temporarily disable these tests.
They are failing because archives create unaligned ELF files. The recent
Endian change added a __builtin_unreachable() when this happens. I will be
committing a fix for this soon.

llvm-svn: 171438
2013-01-03 01:24:32 +00:00
Michael J. Spencer 088925ea96 [MC][COFF] Switch the COFF streamer over to using the MCObjectStreamer version of EmitInstruction.
llvm-svn: 171437
2013-01-03 01:09:22 +00:00
Nadav Rotem 72f984b596 LoopVectorizer: Add support for loop-unrolling during vectorization for increasing the ILP. At the moment this feature is disabled by default and this commit should not cause any functional changes.
llvm-svn: 171436
2013-01-03 00:52:27 +00:00
Jakob Stoklund Olesen 725d57682b Fix PR14732 by handling all kinds of IMPLICIT_DEF live ranges.
Most IMPLICIT_DEF instructions are removed by the ProcessImplicitDefs
pass, and a few are reinserted by PHIElimination when a PHI argument is
<undef>.

RegisterCoalescer was assuming that all IMPLICIT_DEF live ranges look
like those created by PHIElimination, and that their live range never
leaves the basic block.

The PR14732 test case does tricks with PHI nodes that causes a longer
IMPLICIT_DEF live range to appear. This happens very rarely, but
RegisterCoalescer should be able to handle it.

llvm-svn: 171435
2013-01-03 00:47:51 +00:00
Bill Wendling 0793f4501c Make the type signature more strict.
llvm-svn: 171434
2013-01-03 00:46:43 +00:00
Eli Friedman 33accdf602 Don't assert/crash on reference variables in lambdas bound to a
static local variable from the parent scope.  PR14773.

llvm-svn: 171433
2013-01-03 00:39:26 +00:00
Anna Zaks 3fdcc0bda3 [analyzer] Rename callback EndPath -> EndFunction
This better reflects when callback is called and what the checkers
are relying on. (Both names meant the same pre-IPA.)

llvm-svn: 171432
2013-01-03 00:25:29 +00:00
Sean Callanan 8258705dbd Clang sometimes emits "objc_object*" rather than "id"
for id types with protocols on them.  We detect this
and report "id" instead.

Also added a testcase.

<rdar://problem/12595644>

llvm-svn: 171431
2013-01-03 00:05:56 +00:00
Michael J. Spencer 895809159a [CMake] MSVC is incorrectly emitting C4239 in some cases. Disable it.
llvm-svn: 171430
2013-01-03 00:00:40 +00:00
Nadav Rotem 4897392360 Avoid vectorization when the function has the "noimplicitflot" attribute.
llvm-svn: 171429
2013-01-02 23:54:43 +00:00
Eric Christopher da4b2195fc Extend the dumping infrastructure to deal with additional
sections for debug info. These are some of the dwo sections from the
DWARF5 split debug info proposal. Update the fission-cu.ll testcase
to show what we should be able to dump more of now.

Work in progress: Ultimately the relocations will be gone for the
dwo section and the strings will be a different form (as well as
the rest of the sections will be included).

llvm-svn: 171428
2013-01-02 23:52:13 +00:00
Bill Wendling 91055cfbaf An intermediate step in the Attributes rewrite.
Modify the AttrBuilder class to store the attributes as a set instead of as a
bit mask. The Attribute class will represent only one attribute instead of a
collection of attributes.

This is the wave of the future!

llvm-svn: 171427
2013-01-02 23:45:09 +00:00
Sean Silva ab3314f4d7 Add docs/README.txt to point to llvm/docs/README.txt.
llvm-svn: 171426
2013-01-02 23:25:41 +00:00