platform/upstream/llvm.git
11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 02:46:53 +0000 (02:46 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173605

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 02:24:02 +0000 (02:24 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173603

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 02:08:22 +0000 (02:08 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173602

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 01:57:28 +0000 (01:57 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173601

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 01:44:34 +0000 (01:44 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173600

11 years agoConvert the CPP backend to use the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 01:22:51 +0000 (01:22 +0000)]
Convert the CPP backend to use the AttributeSet instead of AttributeWithIndex.

Further removal of the introspective AttributeWithIndex thing. Also fix the #includes.

llvm-svn: 173599

11 years agoUse the AttributeSet instead of AttributeWithIndex object.
Bill Wendling [Sun, 27 Jan 2013 00:36:48 +0000 (00:36 +0000)]
Use the AttributeSet instead of AttributeWithIndex object.

llvm-svn: 173598

11 years agoAdd the missing line return to align parameters of printPretty.
Michael Han [Sun, 27 Jan 2013 00:06:24 +0000 (00:06 +0000)]
Add the missing line return to align parameters of printPretty.

llvm-svn: 173597

11 years agoMake sure that multi-line expressions don't create a default target. We recently...
Greg Clayton [Sat, 26 Jan 2013 23:54:29 +0000 (23:54 +0000)]
Make sure that multi-line expressions don't create a default target. We recently switched to using a built-in m_exe_ctx when running commands in the DoExecute() so that we can have common code where commands can required having a valid target/process/thread/frame by specifying flags, this caused multi-line expression to always create a new dummy target because m_exe_ctx gets cleared when DoExecute exits. A new input reader has been pushed to handle the input for the expression, which will get popped off and then it was checking the target in m_exe_ctx (which was cleared).

llvm-svn: 173596

11 years agolibclang: refactor CXStringPool: make it a class
Dmitri Gribenko [Sat, 26 Jan 2013 22:44:19 +0000 (22:44 +0000)]
libclang: refactor CXStringPool: make it a class

We are not exposing the pool or string buffers to libclang users, so no need to
maintain a procedural interface.

llvm-svn: 173595

11 years agoPR14566: Debug Info: avoid top level lexical blocks in functions
David Blaikie [Sat, 26 Jan 2013 22:16:26 +0000 (22:16 +0000)]
PR14566: Debug Info: avoid top level lexical blocks in functions

One of the gotchas (see changes to CodeGenFunction) was due to the fix in
r139416 (for PR10829). This only worked previously because the top level
lexical block would set the location to the end of the function, the debug
location would be updated (as per r139416), the location would be set to
the end of the function again (but that would no-op, since it was the same
as the previous location), then the return instruction would be emitted using
the debug location.

Once the top level lexical block was no longer emitted, the end-of-function
location change was causing the debug loc to be updated, regressing that bug.

llvm-svn: 173593

11 years agoPR14566: Debug Info: Removing top level lexical blocks
David Blaikie [Sat, 26 Jan 2013 21:55:23 +0000 (21:55 +0000)]
PR14566: Debug Info: Removing top level lexical blocks

This adds support for LLVM to accept metadata that doesn't include a top level
lexical block in a function. Specifically LLVM couldn't handle this when there
were file changes relating to these blocks. I've updated a few test cases to
ensure other functionality (such as inlining) isn't affected by this change, but
haven't pervasively updated all the test cases.

llvm-svn: 173592

11 years agoIRBuilder: Remove redundant check around SetInstDebugLocation call.
David Blaikie [Sat, 26 Jan 2013 21:55:19 +0000 (21:55 +0000)]
IRBuilder: Remove redundant check around SetInstDebugLocation call.

llvm-svn: 173591

11 years agolibclang: type safety for CXTranslationUnitImpl::CIdx
Dmitri Gribenko [Sat, 26 Jan 2013 21:49:50 +0000 (21:49 +0000)]
libclang: type safety for CXTranslationUnitImpl::CIdx

llvm-svn: 173590

11 years agolibclang: type safety for CXTranslationUnitImpl::FormatContext
Dmitri Gribenko [Sat, 26 Jan 2013 21:39:50 +0000 (21:39 +0000)]
libclang: type safety for CXTranslationUnitImpl::FormatContext

llvm-svn: 173589

11 years agolibclang: some type safety for CXTranslationUnitImpl's internals
Dmitri Gribenko [Sat, 26 Jan 2013 21:32:42 +0000 (21:32 +0000)]
libclang: some type safety for CXTranslationUnitImpl's internals

There is no reason to store pointers as 'void*' in CXTranslationUnitImpl, since
it does not affect libclang ABI.

llvm-svn: 173588

11 years agoFix comment.
Fariborz Jahanian [Sat, 26 Jan 2013 20:50:23 +0000 (20:50 +0000)]
Fix comment.

llvm-svn: 173587

11 years agoAttach any tag type's documentation to its typedef if
Fariborz Jahanian [Sat, 26 Jan 2013 20:49:30 +0000 (20:49 +0000)]
Attach any tag type's documentation to its typedef if
latter does not have one of its own. // rdar://13067629

llvm-svn: 173586

11 years agolibclang: factor out the frequent pattern static_cast<ASTUnit *>(TU->TUData)
Dmitri Gribenko [Sat, 26 Jan 2013 18:53:38 +0000 (18:53 +0000)]
libclang: factor out the frequent pattern static_cast<ASTUnit *>(TU->TUData)
into a getter cxtu::getASTUnit(TU)

llvm-svn: 173585

11 years agolibclang: make getCursorParentDecl() return 'const Decl *'
Dmitri Gribenko [Sat, 26 Jan 2013 18:12:08 +0000 (18:12 +0000)]
libclang: make getCursorParentDecl() return 'const Decl *'

llvm-svn: 173584

11 years agolibclang: change getCursorAttr() to return 'const Attr *'
Dmitri Gribenko [Sat, 26 Jan 2013 18:08:08 +0000 (18:08 +0000)]
libclang: change getCursorAttr() to return 'const Attr *'

llvm-svn: 173583

11 years agoMigrate tests to -verify
Dmitri Gribenko [Sat, 26 Jan 2013 17:11:39 +0000 (17:11 +0000)]
Migrate tests to -verify

llvm-svn: 173582

11 years agoAdded ASTContext methods getIntPtrType and getUIntPtrType.
Enea Zaffanella [Sat, 26 Jan 2013 17:08:37 +0000 (17:08 +0000)]
Added ASTContext methods getIntPtrType and getUIntPtrType.

llvm-svn: 173581

11 years agoBBVectorize: Add a additional comment about the cost computation
Hal Finkel [Sat, 26 Jan 2013 16:49:04 +0000 (16:49 +0000)]
BBVectorize: Add a additional comment about the cost computation

llvm-svn: 173580

11 years agoBBVectorize: Fix anomalous capital letter in comment
Hal Finkel [Sat, 26 Jan 2013 16:49:03 +0000 (16:49 +0000)]
BBVectorize: Fix anomalous capital letter in comment

llvm-svn: 173579

11 years ago<limits.h> includes <linux/limits.h> on Linux, no need to special-case it
Dmitri Gribenko [Sat, 26 Jan 2013 16:29:36 +0000 (16:29 +0000)]
<limits.h> includes <linux/limits.h> on Linux, no need to special-case it

llvm-svn: 173578

11 years agolibclang: make getCursorStmt() and getCursorExpr() return const pointers
Dmitri Gribenko [Sat, 26 Jan 2013 15:29:08 +0000 (15:29 +0000)]
libclang: make getCursorStmt() and getCursorExpr() return const pointers

Also change EnqueueVisitor to use ConstStmtVisitor as a consequence.

llvm-svn: 173577

11 years agoSpecify non-GNU-ARM triples for key-function test.
Tim Northover [Sat, 26 Jan 2013 15:27:54 +0000 (15:27 +0000)]
Specify non-GNU-ARM triples for key-function test.

Since ARM has diverging ABIs on this detail, it's probably worth
testing both it and a "normal" Itanium system.

llvm-svn: 173576

11 years agoConstify getOptionalExplicitTemplateArgs()
Dmitri Gribenko [Sat, 26 Jan 2013 15:24:56 +0000 (15:24 +0000)]
Constify getOptionalExplicitTemplateArgs()

llvm-svn: 173575

11 years agoConstify some getters of DesignatedInitExpr
Dmitri Gribenko [Sat, 26 Jan 2013 15:15:52 +0000 (15:15 +0000)]
Constify some getters of DesignatedInitExpr

llvm-svn: 173574

11 years agolldX86_64ELFTarget depends on lldCore.
Benjamin Kramer [Sat, 26 Jan 2013 13:49:19 +0000 (13:49 +0000)]
lldX86_64ELFTarget depends on lldCore.

llvm-svn: 173573

11 years agoX86: Decode PALIGN operands so I don't have to do it in my head.
Benjamin Kramer [Sat, 26 Jan 2013 13:31:37 +0000 (13:31 +0000)]
X86: Decode PALIGN operands so I don't have to do it in my head.

llvm-svn: 173572

11 years agoDocumentation: fix syntax error
Dmitri Gribenko [Sat, 26 Jan 2013 13:30:13 +0000 (13:30 +0000)]
Documentation: fix syntax error

Patch by David Waggoner

llvm-svn: 173571

11 years agoUse proper delete.
Michael J. Spencer [Sat, 26 Jan 2013 12:26:56 +0000 (12:26 +0000)]
Use proper delete.

llvm-svn: 173570

11 years agoX86: Do splat promotion later, so the optimizer can chew on it first.
Benjamin Kramer [Sat, 26 Jan 2013 11:44:21 +0000 (11:44 +0000)]
X86: Do splat promotion later, so the optimizer can chew on it first.

This catches many cases where we can emit a more efficient shuffle for a
specific mask or when the mask contains undefs. Once the splat is lowered to
unpacks we can't do that anymore.

There is a possibility of moving the promotion after pshufb matching, but I'm
not sure if pshufb with a mask loaded from memory is faster than 3 shuffles, so
I avoided that for now.

llvm-svn: 173569

11 years agoFileCheckize and merge some tests.
Benjamin Kramer [Sat, 26 Jan 2013 11:14:32 +0000 (11:14 +0000)]
FileCheckize and merge some tests.

llvm-svn: 173568

11 years agoObject/RelocVisitor: Add minimal support, R_MIPS_32, for mips.
NAKAMURA Takumi [Sat, 26 Jan 2013 08:27:36 +0000 (08:27 +0000)]
Object/RelocVisitor: Add minimal support, R_MIPS_32, for mips.

It fixes llvm-dwarfdump for mips and mipsel.

llvm-svn: 173567

11 years agoObject/RelocVisitor: Add minimal support, R_PPC64_ADDR32, for ppc64.
NAKAMURA Takumi [Sat, 26 Jan 2013 08:27:29 +0000 (08:27 +0000)]
Object/RelocVisitor: Add minimal support, R_PPC64_ADDR32, for ppc64.

It fixes llvm-dwarfdump for ppc64-elf.

llvm-svn: 173566

11 years agoRelocVisitor::visit(): Set hasError in the default path.
NAKAMURA Takumi [Sat, 26 Jan 2013 08:27:23 +0000 (08:27 +0000)]
RelocVisitor::visit(): Set hasError in the default path.

llvm-svn: 173565

11 years agoOne more change of a uint32_t variable to offset_t
Jason Molenda [Sat, 26 Jan 2013 07:06:09 +0000 (07:06 +0000)]
One more change of a uint32_t variable to offset_t
to match Greg's dataextractor patch, this one in some
#if defined arm code.

llvm-svn: 173564

11 years agofix use of std::std. it's ordered set.
Reed Kotler [Sat, 26 Jan 2013 06:58:35 +0000 (06:58 +0000)]
fix use of std::std. it's ordered set.

llvm-svn: 173563

11 years agotest/remove-cstr-calls/basic.cpp: Disable again on mingw. It behaves unstable.
NAKAMURA Takumi [Sat, 26 Jan 2013 06:39:48 +0000 (06:39 +0000)]
test/remove-cstr-calls/basic.cpp: Disable again on mingw. It behaves unstable.

llvm-svn: 173562

11 years agoclang/test/Misc/diag-template-diffing-color.cpp: Symbolize color sequences in FileCheck.
NAKAMURA Takumi [Sat, 26 Jan 2013 06:13:05 +0000 (06:13 +0000)]
clang/test/Misc/diag-template-diffing-color.cpp: Symbolize color sequences in FileCheck.

llvm-svn: 173561

11 years agoAdd comments showing the symbolic names for the exc_code types we
Jason Molenda [Sat, 26 Jan 2013 05:30:38 +0000 (05:30 +0000)]
Add comments showing the symbolic names for the exc_code types we
receive with an EXC_BREAKPOINT mach exception on arm.

llvm-svn: 173560

11 years ago[libclang] Introduce clang_getFileUniqueID which returns a struct
Argyrios Kyrtzidis [Sat, 26 Jan 2013 04:52:52 +0000 (04:52 +0000)]
[libclang] Introduce clang_getFileUniqueID which returns a struct
for a CXFile containing device/inode/modification time.

Intended to be useful as a key associated with a unique file across
an indexing session.

rdar://13091837

llvm-svn: 173559

11 years agoclang/test/Misc/ast-dump-color.cpp: Symbolize color sequences in FileCheck.
NAKAMURA Takumi [Sat, 26 Jan 2013 03:48:55 +0000 (03:48 +0000)]
clang/test/Misc/ast-dump-color.cpp: Symbolize color sequences in FileCheck.

FIXME: If FileCheck had expressions something predefined well-known...
llvm-svn: 173558

11 years ago[analyzer] C++ initializers may require cleanups; look through these.
Jordan Rose [Sat, 26 Jan 2013 03:16:31 +0000 (03:16 +0000)]
[analyzer] C++ initializers may require cleanups; look through these.

When the analyzer sees an initializer, it checks if the initializer
contains a CXXConstructExpr. If so, it trusts that the CXXConstructExpr
does the necessary work to initialize the object, and performs no further
initialization.

This patch looks through any implicit wrapping expressions like
ExprWithCleanups to find the CXXConstructExpr inside.

Fixes PR15070.

llvm-svn: 173557

11 years agoGive a more informative error message when the dot or arrow operator is used
Richard Trieu [Sat, 26 Jan 2013 02:31:38 +0000 (02:31 +0000)]
Give a more informative error message when the dot or arrow operator is used
on a type.  Currently, it gives a generic "expected unqualified-id" error.
The new error message is "cannot use (dot|arrow) operator on a type".

llvm-svn: 173556

11 years agoAdd "target.process.stop-on-shared-library-events" setting, and make it work.
Jim Ingham [Sat, 26 Jan 2013 02:19:28 +0000 (02:19 +0000)]
Add "target.process.stop-on-shared-library-events" setting, and make it work.
Add the ability to give breakpoints a "kind" string, and have the StopInfoBreakpoint
print that in the brief description if set.  Also print the kind - if set - in the breakpoint
listing.
Give kinds to a bunch of the internal breakpoints.
We were deleting the Mac OS X dynamic loader breakpoint as though the id we had stored away was
a breakpoint site ID, but in fact it was a breakpoint id, so we never actually deleted it.  Fixed that.

llvm-svn: 173555

11 years agoFix mismatch between pointer and pointee type when diagnosing an incorrect
Richard Smith [Sat, 26 Jan 2013 02:07:32 +0000 (02:07 +0000)]
Fix mismatch between pointer and pointee type when diagnosing an incorrect
object argument type for a member call.

llvm-svn: 173554

11 years agoFix test case by being more lenient on what to accept as a path name.
Richard Trieu [Sat, 26 Jan 2013 01:54:31 +0000 (01:54 +0000)]
Fix test case by being more lenient on what to accept as a path name.

llvm-svn: 173553

11 years agoDWARFDebugLine.cpp: Fix true path. Did you forget "return true" here?
NAKAMURA Takumi [Sat, 26 Jan 2013 01:45:06 +0000 (01:45 +0000)]
DWARFDebugLine.cpp: Fix true path. Did you forget "return true" here?

llvm-svn: 173552

11 years agoRemove function that is newly dead as of r173538.
Nick Lewycky [Sat, 26 Jan 2013 01:36:54 +0000 (01:36 +0000)]
Remove function that is newly dead as of r173538.

llvm-svn: 173550

11 years agoHopefuly unbreak buldbot.
Fariborz Jahanian [Sat, 26 Jan 2013 01:35:28 +0000 (01:35 +0000)]
Hopefuly unbreak buldbot.

llvm-svn: 173549

11 years agoHighlight various parts of the AST dump with color. Colors are controlled by
Richard Trieu [Sat, 26 Jan 2013 01:31:20 +0000 (01:31 +0000)]
Highlight various parts of the AST dump with color.  Colors are controlled by
-f(no-)color-diagnostics.  In addition, dumpColor() function calls are added
to force color printing.  No structural changes to -ast-dump.

llvm-svn: 173548

11 years ago[analyzer] Track null object lvalues back through C++ method calls.
Jordan Rose [Sat, 26 Jan 2013 01:28:23 +0000 (01:28 +0000)]
[analyzer] Track null object lvalues back through C++ method calls.

The expression 'a->b.c()' contains a call to the 'c' method of 'a->b'.
We emit an error if 'a' is NULL, but previously didn't actually track
the null value back through the 'a->b' expression, which caused us to
miss important false-positive-suppression cases, including
<rdar://problem/12676053>.

llvm-svn: 173547

11 years ago[analyzer] bugreporter::getDerefExpr now takes a Stmt, not an ExplodedNode.
Jordan Rose [Sat, 26 Jan 2013 01:28:19 +0000 (01:28 +0000)]
[analyzer] bugreporter::getDerefExpr now takes a Stmt, not an ExplodedNode.

This allows it to be used in places where the interesting statement
doesn't match up with the current node. No functionality change.

llvm-svn: 173546

11 years ago[analyzer] Add 'prune-paths' config option to disable path pruning.
Jordan Rose [Sat, 26 Jan 2013 01:28:15 +0000 (01:28 +0000)]
[analyzer] Add 'prune-paths' config option to disable path pruning.

This should be used for testing only. Path pruning is still on by default.

llvm-svn: 173545

11 years ago[analyzer] Rename PruneNullReturnPaths to SuppressNullReturnPaths.
Jordan Rose [Sat, 26 Jan 2013 01:28:09 +0000 (01:28 +0000)]
[analyzer] Rename PruneNullReturnPaths to SuppressNullReturnPaths.

"Prune" is the term for eliminating pieces of a path that are not
relevant to the user. "Suppress" means don't show that path at all.

llvm-svn: 173544

11 years agoFix up the test.
Fariborz Jahanian [Sat, 26 Jan 2013 01:25:32 +0000 (01:25 +0000)]
Fix up the test.
for // rdar://11861085

llvm-svn: 173543

11 years agoSince we're stuck with realpath for the header <-> module mapping,
Douglas Gregor [Sat, 26 Jan 2013 00:55:12 +0000 (00:55 +0000)]
Since we're stuck with realpath for the header <-> module mapping,
factor the realpath calls into FileManager::getCanonicalName() so we
can cache the results of this epically slow operation. 5% speedup on
my modules test, and realpath drops out of the profile.

llvm-svn: 173542

11 years agoRevert r172285 (suppressing a 'redundant' -Wc++98-compat warning) and add a
Richard Smith [Sat, 26 Jan 2013 00:39:02 +0000 (00:39 +0000)]
Revert r172285 (suppressing a 'redundant' -Wc++98-compat warning) and add a
testcase for a situation it caused us to miss.

llvm-svn: 173540

11 years agoComment parsing: actually check for a block command after "\param x"
Dmitri Gribenko [Sat, 26 Jan 2013 00:36:14 +0000 (00:36 +0000)]
Comment parsing: actually check for a block command after "\param x"

This fixes PR15068.

llvm-svn: 173539

11 years agoPreserve Sema::UndefinedInternals across PCH boundaries. Fixes
Nick Lewycky [Sat, 26 Jan 2013 00:35:08 +0000 (00:35 +0000)]
Preserve Sema::UndefinedInternals across PCH boundaries. Fixes
-Wundefined-internal warnings with PCH.

llvm-svn: 173538

11 years agoAdd DIContext::getLineInfoForAddressRange() function and test. This function allows...
Andrew Kaylor [Sat, 26 Jan 2013 00:28:05 +0000 (00:28 +0000)]
Add DIContext::getLineInfoForAddressRange() function and test.  This function allows a caller to obtain a table of line information for a function using the function's address and size.

llvm-svn: 173537

11 years agoConvert BuildLibCalls.cpp to using the AttributeSet methods instead of AttributeWithI...
Bill Wendling [Sat, 26 Jan 2013 00:03:11 +0000 (00:03 +0000)]
Convert BuildLibCalls.cpp to using the AttributeSet methods instead of AttributeWithIndex.

llvm-svn: 173536

11 years agopatch for PR9027 and // rdar://11861085
Fariborz Jahanian [Fri, 25 Jan 2013 23:57:05 +0000 (23:57 +0000)]
patch for PR9027 and // rdar://11861085
Title: [PR9027] volatile struct bug: member is not loaded at -O;
This is caused by last flag passed to @llvm.memcpy being false,
not honoring that aggregate has at least one 'volatile' data member
(even though aggregate itself has not been qualified as 'volatile'.
As a result, optimization optimizes away the memcpy altogether.
Patch review by John MaCall (I still need to fix up a test though).

llvm-svn: 173535

11 years agoclang/test/Index/annotate-comments-typedef.m: Remove CommentXMLValid in CHECKs. Don...
NAKAMURA Takumi [Fri, 25 Jan 2013 23:56:54 +0000 (23:56 +0000)]
clang/test/Index/annotate-comments-typedef.m: Remove CommentXMLValid in CHECKs. Don't assume libxml2 here.

llvm-svn: 173534

11 years ago[ELF][x86-64] Add relocation string<->kind.
Michael J. Spencer [Fri, 25 Jan 2013 23:48:58 +0000 (23:48 +0000)]
[ELF][x86-64] Add relocation string<->kind.

llvm-svn: 173533

11 years agoA port of the Visual Studio 2012 debugger visualizers for common LLVM and clang datat...
Aaron Ballman [Fri, 25 Jan 2013 23:37:25 +0000 (23:37 +0000)]
A port of the Visual Studio 2012 debugger visualizers for common LLVM and clang datatypes.  Patch thanks to Nico Rieck!

llvm-svn: 173532

11 years agoARM says that the array cookie should always be eight bytes.
John McCall [Fri, 25 Jan 2013 23:36:19 +0000 (23:36 +0000)]
ARM says that the array cookie should always be eight bytes.
ARM is not thinking about over-aligned structures.
Overrule ARM in both our generic-ARM and iOS ABI implementations.

llvm-svn: 173531

11 years agoMove the decision about the kind of CGCXXABI to make inside
John McCall [Fri, 25 Jan 2013 23:36:14 +0000 (23:36 +0000)]
Move the decision about the kind of CGCXXABI to make inside
the family-specific files.

llvm-svn: 173530

11 years agoImprove coordination between the module manager and the global module
Douglas Gregor [Fri, 25 Jan 2013 23:32:03 +0000 (23:32 +0000)]
Improve coordination between the module manager and the global module
index, optimizing the operation that skips lookup in modules where we
know the identifier will not be found. This makes the global module
index optimization actually useful, providing an 8.5% speedup over
modules without the global module index for -fsyntax-only.

llvm-svn: 173529

11 years agollvm/test/CMakeLists.txt: Add a dependency to llvm-rtdyld in check-llvm.
NAKAMURA Takumi [Fri, 25 Jan 2013 23:24:07 +0000 (23:24 +0000)]
llvm/test/CMakeLists.txt: Add a dependency to llvm-rtdyld in check-llvm.

llvm-svn: 173528

11 years ago[ELF][X86-64] Use the correct base address.
Michael J. Spencer [Fri, 25 Jan 2013 23:23:24 +0000 (23:23 +0000)]
[ELF][X86-64] Use the correct base address.

llvm-svn: 173527

11 years agoRemove unused variables, silences -Wunused-variable
Dmitri Gribenko [Fri, 25 Jan 2013 23:17:21 +0000 (23:17 +0000)]
Remove unused variables, silences -Wunused-variable

llvm-svn: 173526

11 years agoclang/test/Preprocessor/iwithprefix.c: Tweak default includes not to use /usr/include.
NAKAMURA Takumi [Fri, 25 Jan 2013 23:17:20 +0000 (23:17 +0000)]
clang/test/Preprocessor/iwithprefix.c: Tweak default includes not to use /usr/include.

You may see such a message on non-posix system;
  ignoring nonexistent directory "/usr/local/include"
  ignoring nonexistent directory "/usr/include"

llvm-svn: 173525

11 years agoRemove dead method.
Bill Wendling [Fri, 25 Jan 2013 23:14:36 +0000 (23:14 +0000)]
Remove dead method.

llvm-svn: 173524

11 years ago[utils] Kill another no-longer-useful utility script.
Daniel Dunbar [Fri, 25 Jan 2013 23:12:17 +0000 (23:12 +0000)]
[utils] Kill another no-longer-useful utility script.

 - We are long past the days of getting clang to fail in mass on swaths of code,
   fortunately.

llvm-svn: 173523

11 years agoRemove some introspection functions.
Bill Wendling [Fri, 25 Jan 2013 23:09:36 +0000 (23:09 +0000)]
Remove some introspection functions.

The 'getSlot' function and its ilk allow introspection into the AttributeSet
class. However, that class should be opaque. Allow access through accessor
methods instead.

llvm-svn: 173522

11 years agosimplify code by removing excessive bracing.
Fariborz Jahanian [Fri, 25 Jan 2013 23:08:39 +0000 (23:08 +0000)]
simplify code by removing excessive bracing.

llvm-svn: 173521

11 years agoInitial implementation of PPCTargetTransformInfo
Hal Finkel [Fri, 25 Jan 2013 23:05:59 +0000 (23:05 +0000)]
Initial implementation of PPCTargetTransformInfo

This provides a place to add customized operation cost information and
control some other target-specific IR-level transformations.

The only non-trivial logic in this checkin assigns a higher cost to
unaligned loads and stores (covered by the included test case).

llvm-svn: 173520

11 years agoMissing newline in a warning message.
Jim Ingham [Fri, 25 Jan 2013 23:05:01 +0000 (23:05 +0000)]
Missing newline in a warning message.

llvm-svn: 173519

11 years agoFix a warning in the new DWARFheader. Add a new line at the end of the file.
Nadav Rotem [Fri, 25 Jan 2013 22:57:05 +0000 (22:57 +0000)]
Fix a warning in the new DWARFheader. Add a new line at the end of the file.

llvm-svn: 173518

11 years agoAdd support for applying in-memory relocations to the .debug_line section and, in...
Andrew Kaylor [Fri, 25 Jan 2013 22:50:58 +0000 (22:50 +0000)]
Add support for applying in-memory relocations to the .debug_line section and, in the case of ELF files, using symbol addresses when available for relocations to the .debug_info section.  Also extending the llvm-rtdyld tool to add the ability to dump line number information for testing purposes.

llvm-svn: 173517

11 years agoAttach enum's documentation to its typedef if
Fariborz Jahanian [Fri, 25 Jan 2013 22:48:32 +0000 (22:48 +0000)]
Attach enum's documentation to its typedef if
latter does not have one of its own. // rdar://13067629

llvm-svn: 173516

11 years agoThe standard ARM C++ ABI dictates that inline functions are
John McCall [Fri, 25 Jan 2013 22:31:03 +0000 (22:31 +0000)]
The standard ARM C++ ABI dictates that inline functions are
never key functions.  We did not implement that rule for the
iOS ABI, which was driven by what was implemented in gcc-4.2.
However, implement it now for other ARM-based platforms.

llvm-svn: 173515

11 years agoFirst pass at abstracting out a class for the target C++ ABI.
John McCall [Fri, 25 Jan 2013 22:30:49 +0000 (22:30 +0000)]
First pass at abstracting out a class for the target C++ ABI.

llvm-svn: 173514

11 years agoAdd file to CMakeLists (file added in r173505)
Dmitri Gribenko [Fri, 25 Jan 2013 22:29:23 +0000 (22:29 +0000)]
Add file to CMakeLists (file added in r173505)

llvm-svn: 173513

11 years agoOptimize ModuleManager::visit() by precomputing the visitation order
Douglas Gregor [Fri, 25 Jan 2013 22:25:23 +0000 (22:25 +0000)]
Optimize ModuleManager::visit() by precomputing the visitation order
and limiting ourselves to two memory allocations. 10% speedup in
-fsyntax-only time for modules.

With this change, we can actually see some performance different from
the global module index, but it's still about 1%.

llvm-svn: 173512

11 years agoRemove useless 'XPASS: *' from tests
Dmitri Gribenko [Fri, 25 Jan 2013 22:20:24 +0000 (22:20 +0000)]
Remove useless 'XPASS: *' from tests

llvm-svn: 173511

11 years agoTemporarily disabling ms-asm test
Renato Golin [Fri, 25 Jan 2013 22:13:50 +0000 (22:13 +0000)]
Temporarily disabling ms-asm test

llvm-svn: 173510

11 years agoXFAIL close-stderr on win32
Reid Kleckner [Fri, 25 Jan 2013 22:12:54 +0000 (22:12 +0000)]
XFAIL close-stderr on win32

The test runner does not rewrite instances of /dev/null inside the
quoted sh command.  /dev/null does not exist, so opt will fail to open
it, and return a non-zero exit code.

llvm-svn: 173509

11 years agoSet the +x bit on two batch scripts
Reid Kleckner [Fri, 25 Jan 2013 22:12:50 +0000 (22:12 +0000)]
Set the +x bit on two batch scripts

Cygwin git-svn will faithfully forward the svn properties all the way
down to the NTFS executable permission.  Without the +x bit, tests using
these scripts fail with "Access Denied".

llvm-svn: 173508

11 years agoAdd parens to suppress an MSVC 2012 << precedence warning
Reid Kleckner [Fri, 25 Jan 2013 22:12:45 +0000 (22:12 +0000)]
Add parens to suppress an MSVC 2012 << precedence warning

It doesn't seem to like instantiating the isUInt<unsigned N> template
with 6+3, and then doing <<N.

llvm-svn: 173507

11 years agoFileCheck-ify some grep tests
Reid Kleckner [Fri, 25 Jan 2013 22:11:46 +0000 (22:11 +0000)]
FileCheck-ify some grep tests

These tests in particular try to use escaped square brackets as an
argument to grep, which is failing for me with native win32 python.  It
appears the backslash is being lost near the CreateProcess*() call.

llvm-svn: 173506

11 years agoAdd an insert() method to MapVector. Adds the first MapVector unit test.
Nick Lewycky [Fri, 25 Jan 2013 22:11:02 +0000 (22:11 +0000)]
Add an insert() method to MapVector. Adds the first MapVector unit test.

llvm-svn: 173505

11 years agoThis test actually passes, just add the missing expected-error
Dmitri Gribenko [Fri, 25 Jan 2013 22:08:24 +0000 (22:08 +0000)]
This test actually passes, just add the missing expected-error

llvm-svn: 173504

11 years agoIn this patch, we teach X86_64TargetMachine that it has a ILP32
Eli Bendersky [Fri, 25 Jan 2013 22:07:43 +0000 (22:07 +0000)]
In this patch, we teach X86_64TargetMachine that it has a ILP32
(defined by the x32 ABI) mode, in which case its pointers are 32-bits
in size. This knowledge is also added to X86RegisterInfo that now
returns the appropriate registers in getPointerRegClass.

There are many outcomes to this change. In order to keep the patches
separate and manageable, we start by focusing on some simple testable
cases. The patch adds a test with passing a pointer to a function -
focusing on the difference between the two data models for x86-64.
Another test is added for handling of 'sret' arguments (and
functionality is added in X86ISelLowering to make it work).

A note on naming: the "x32 ABI" document refers to the AMD64
architecture (in LLVM it's distinguished by being is64Bits() in the
x86 subtarget) with two variations: the LP64 (default) data model, and
the ILP32 data model. This patch adds predicates to the subtarget
which are consistent with this naming scheme.

llvm-svn: 173503

11 years agoAdd back a RUN line removed by mistake by a previous commit
Eli Bendersky [Fri, 25 Jan 2013 21:58:09 +0000 (21:58 +0000)]
Add back a RUN line removed by mistake by a previous commit

llvm-svn: 173502