platform/upstream/llvm.git
11 years agoImplement DR136
David Majnemer [Tue, 25 Jun 2013 23:09:30 +0000 (23:09 +0000)]
Implement DR136

Friend declarations that specify a default argument must be a definition
and the only declaration in the translation unit.

llvm-svn: 184889

11 years agoSLPVectorizer: support slp-vectorization of PHINodes between basic blocks
Nadav Rotem [Tue, 25 Jun 2013 23:04:09 +0000 (23:04 +0000)]
SLPVectorizer: support slp-vectorization of PHINodes between basic blocks

llvm-svn: 184888

11 years agoMake this test properly test both things it's trying to test.
Richard Smith [Tue, 25 Jun 2013 22:37:05 +0000 (22:37 +0000)]
Make this test properly test both things it's trying to test.

llvm-svn: 184887

11 years agoFixed a bug in ClangASTSource where we would return
Sean Callanan [Tue, 25 Jun 2013 22:36:17 +0000 (22:36 +0000)]
Fixed a bug in ClangASTSource where we would return
the target of a typedef when asked for a typedef.

llvm-svn: 184886

11 years agoMissing test update from r184884.
Richard Smith [Tue, 25 Jun 2013 22:22:42 +0000 (22:22 +0000)]
Missing test update from r184884.

llvm-svn: 184885

11 years agoPR8302: Check for shadowing a template parameter when declaring a template
Richard Smith [Tue, 25 Jun 2013 22:21:36 +0000 (22:21 +0000)]
PR8302: Check for shadowing a template parameter when declaring a template
template parameter.

llvm-svn: 184884

11 years agoDon't try to get the layout of an invalid decl in getDeclAlign.
Matt Beaumont-Gay [Tue, 25 Jun 2013 22:19:15 +0000 (22:19 +0000)]
Don't try to get the layout of an invalid decl in getDeclAlign.

When the decl that we're getting alignment for is a FieldDecl, and the field's
parent record is invalid, skip the actual field alignment calculation (and
return 1-byte alignment in the general case).

Also, assert in in getASTRecordLayout that the decl is valid. This was
inspired by PR16292; see also r184581 and r184751.

llvm-svn: 184883

11 years agoImplement DR21
David Majnemer [Tue, 25 Jun 2013 22:08:55 +0000 (22:08 +0000)]
Implement DR21

A default template-argument shall not be specified in a friend template
declaration.

Interestingly, we properly handled default template arguments on friend
class members but not on just friend classes.

llvm-svn: 184882

11 years agoPrint block frequencies in decimal form.
Jakob Stoklund Olesen [Tue, 25 Jun 2013 21:57:38 +0000 (21:57 +0000)]
Print block frequencies in decimal form.

This is easier to read than the internal fixed-point representation.

If anybody knows the correct algorithm for converting fixed-point
numbers to base 10, feel free to fix it.

llvm-svn: 184881

11 years agoR600: Use new getNamedOperandIdx function generated by TableGen
Tom Stellard [Tue, 25 Jun 2013 21:22:18 +0000 (21:22 +0000)]
R600: Use new getNamedOperandIdx function generated by TableGen

llvm-svn: 184880

11 years agoTableGen: Generate a function for getting operand indices based on their defined...
Tom Stellard [Tue, 25 Jun 2013 21:22:09 +0000 (21:22 +0000)]
TableGen: Generate a function for getting operand indices based on their defined names

This patch modifies TableGen to generate a function in
${TARGET}GenInstrInfo.inc called getNamedOperandIdx(), which can be used
to look up indices for operands based on their names.

In order to activate this feature for an instruction, you must set the
UseNamedOperandTable bit.

For example, if you have an instruction like:

def ADD : TargetInstr <(outs GPR:$dst), (ins GPR:$src0, GPR:$src1)>;

You can look up the operand indices using the new function, like this:

Target::getNamedOperandIdx(Target::ADD, Target::OpName::dst)  => 0
Target::getNamedOperandIdx(Target::ADD, Target::OpName::src0) => 1
Target::getNamedOperandIdx(Target::ADD, Target::OpName::src1) => 2

The operand names are case sensitive, so $dst and $DST are considered
different operands.

This change is useful for R600 which has instructions with a large number
of operands, many of which model single bit instruction configuration
values.  These configuration bits are common across most instructions,
but may have a different operand index depending on the instruction type.
It is useful to have a convenient way to look up the operand indices,
so these bits can be generically set on any instruction.

llvm-svn: 184879

11 years agoDon't use 'errno.h' on Apple just yet. This breaks for some of our buildbots.
Bill Wendling [Tue, 25 Jun 2013 21:08:40 +0000 (21:08 +0000)]
Don't use 'errno.h' on Apple just yet. This breaks for some of our buildbots.

llvm-svn: 184878

11 years agoFix undefined behaviour in data formatter test -- ensure char* null-terminated
Daniel Malea [Tue, 25 Jun 2013 20:54:24 +0000 (20:54 +0000)]
Fix undefined behaviour in data formatter test -- ensure char* null-terminated
so LLDB does not read off the end of the array.

llvm-svn: 184877

11 years agoUpdate version sscanf to match FreeBSD release info
Ed Maste [Tue, 25 Jun 2013 20:50:07 +0000 (20:50 +0000)]
Update version sscanf to match FreeBSD release info

Release strings are of the form 9.1-RELEASE-p3 or 10.0-CURRENT.

llvm-svn: 184876

11 years agoFix null pointer dereference if we redeclare an unprototyped function. Patch by
Richard Smith [Tue, 25 Jun 2013 20:34:17 +0000 (20:34 +0000)]
Fix null pointer dereference if we redeclare an unprototyped function. Patch by
WenHan Gu!

llvm-svn: 184875

11 years agoSkip dsym tests also on FreeBSD
Ed Maste [Tue, 25 Jun 2013 19:59:56 +0000 (19:59 +0000)]
Skip dsym tests also on FreeBSD

llvm-svn: 184874

11 years agoFix a comment.
Nico Weber [Tue, 25 Jun 2013 19:25:12 +0000 (19:25 +0000)]
Fix a comment.

llvm-svn: 184873

11 years agoX86 cost model: Vectorizing integer division is a bad idea
Arnold Schwaighofer [Tue, 25 Jun 2013 19:14:09 +0000 (19:14 +0000)]
X86 cost model: Vectorizing integer division is a bad idea

radar://14057959

llvm-svn: 184872

11 years agoSkip tests that hang on FreeBSD
Ed Maste [Tue, 25 Jun 2013 19:11:36 +0000 (19:11 +0000)]
Skip tests that hang on FreeBSD

There's still significant work to do in the FreeBSD port, so no point
in a pr for these yet.

llvm-svn: 184871

11 years agoFix SROA to avoid unnecessary scalar conversions for 1-element vectors.
Bob Wilson [Tue, 25 Jun 2013 19:09:50 +0000 (19:09 +0000)]
Fix SROA to avoid unnecessary scalar conversions for 1-element vectors.

When a 1-element vector alloca is promoted, a store instruction can often be
rewritten without converting the value to a scalar and using an insertelement
instruction to stuff it into the new alloca.  This patch just adds a check
to skip that conversion when it is unnecessary.  This turns out to be really
important for some ARM Neon operations where <1 x i64> is used to get around
the fact that i64 is not a legal type.

llvm-svn: 184870

11 years agocpp11-migrate: Really fixing doxygen warning
Edwin Vane [Tue, 25 Jun 2013 19:01:18 +0000 (19:01 +0000)]
cpp11-migrate: Really fixing doxygen warning

Last attempt at this fix was bogus.

llvm-svn: 184869

11 years agoCorrect use of __FreeBSD_kernel__
Ed Maste [Tue, 25 Jun 2013 18:58:11 +0000 (18:58 +0000)]
Correct use of __FreeBSD_kernel__

It is defined on recent FreeBSD versions, so must not be mutually
exclusive with an #elif FreeBSD block.

Patch submitted by Robert Millan.

Fixes PR#16447.

llvm-svn: 184867

11 years agoRemove unused code. No functionality change.
Manman Ren [Tue, 25 Jun 2013 18:49:55 +0000 (18:49 +0000)]
Remove unused code. No functionality change.

llvm-svn: 184866

11 years agoMore of N3652: don't add an implicit 'const' to 'constexpr' member functions when...
Richard Smith [Tue, 25 Jun 2013 18:46:26 +0000 (18:46 +0000)]
More of N3652: don't add an implicit 'const' to 'constexpr' member functions when checking for overloads in C++1y.

llvm-svn: 184865

11 years agoThe GCDA 402 format won't have a second checksum either.
Bill Wendling [Tue, 25 Jun 2013 18:13:52 +0000 (18:13 +0000)]
The GCDA 402 format won't have a second checksum either.

llvm-svn: 184864

11 years agoObjective-C: Warn when IBOutletCollection property
Fariborz Jahanian [Tue, 25 Jun 2013 17:34:50 +0000 (17:34 +0000)]
Objective-C: Warn when IBOutletCollection property
is declared to have 'assign' attribute.
// rdar://14212998

llvm-svn: 184863

11 years agoRemove misplaced comment
Eli Bendersky [Tue, 25 Jun 2013 17:07:56 +0000 (17:07 +0000)]
Remove misplaced comment

llvm-svn: 184862

11 years agoIn tooling, reenable freeing of datastructures in codegen, just as we do for
Nick Lewycky [Tue, 25 Jun 2013 17:01:21 +0000 (17:01 +0000)]
In tooling, reenable freeing of datastructures in codegen, just as we do for
the frontend. We don't want to respect the -disable-free flag here.

llvm-svn: 184861

11 years ago[PowerPC] Support @got modifier
Ulrich Weigand [Tue, 25 Jun 2013 16:49:50 +0000 (16:49 +0000)]
[PowerPC] Support @got modifier

Add VK_... values and relocation types necessary to support
the @got family of modifiers.  Used by the asm parser only.

llvm-svn: 184860

11 years agoImplement full support for non-pointer pointers in custom allocators for list.
Howard Hinnant [Tue, 25 Jun 2013 16:08:47 +0000 (16:08 +0000)]
Implement full support for non-pointer pointers in custom allocators for list.

llvm-svn: 184859

11 years agotsan: add missing __attribute__((visibility("default"))) to interface functions
Dmitry Vyukov [Tue, 25 Jun 2013 15:36:25 +0000 (15:36 +0000)]
tsan: add missing __attribute__((visibility("default"))) to interface functions

llvm-svn: 184858

11 years agoUse simpler version of llvm::sys::fs::exists.
Rafael Espindola [Tue, 25 Jun 2013 15:14:22 +0000 (15:14 +0000)]
Use simpler version of llvm::sys::fs::exists.

llvm-svn: 184857

11 years agoDon't use PathV1.h in Tools.cpp.
Rafael Espindola [Tue, 25 Jun 2013 15:03:59 +0000 (15:03 +0000)]
Don't use PathV1.h in Tools.cpp.

llvm-svn: 184856

11 years agoUse the simpler version of llvm::sys::fs::exists.
Rafael Espindola [Tue, 25 Jun 2013 14:48:00 +0000 (14:48 +0000)]
Use the simpler version of llvm::sys::fs::exists.

llvm-svn: 184855

11 years agoMatch printf format specifiers and arguments
Ed Maste [Tue, 25 Jun 2013 14:47:45 +0000 (14:47 +0000)]
Match printf format specifiers and arguments

llvm-svn: 184854

11 years agoMove GetEXESuffix to the one place it is used.
Rafael Espindola [Tue, 25 Jun 2013 14:42:30 +0000 (14:42 +0000)]
Move GetEXESuffix to the one place it is used.

llvm-svn: 184853

11 years agoRemove sys::PathSeparator.
Rafael Espindola [Tue, 25 Jun 2013 14:32:45 +0000 (14:32 +0000)]
Remove sys::PathSeparator.

llvm-svn: 184852

11 years agoUse the new llvm::sys::EnvPathSeparator.
Rafael Espindola [Tue, 25 Jun 2013 14:29:51 +0000 (14:29 +0000)]
Use the new llvm::sys::EnvPathSeparator.

llvm-svn: 184851

11 years agoUpdate comment after Linux->POSIX rename
Ed Maste [Tue, 25 Jun 2013 14:29:15 +0000 (14:29 +0000)]
Update comment after Linux->POSIX rename

llvm-svn: 184850

11 years ago[lsan] Define interceptors more correctly. Also, always clear allocated memory.
Sergey Matveev [Tue, 25 Jun 2013 14:05:52 +0000 (14:05 +0000)]
[lsan] Define interceptors more correctly. Also, always clear allocated memory.

llvm-svn: 184849

11 years agoR600: Consolidate expansion of v2i32/v4i32 ops for EG/SI
Aaron Watry [Tue, 25 Jun 2013 13:55:57 +0000 (13:55 +0000)]
R600: Consolidate expansion of v2i32/v4i32 ops for EG/SI

By default, we expand these operations for both EG and SI. Move the
duplicated code into a common space for now. If the targets ever actually
implement these operations as instructions, we can override that in the relevant
target.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184848

11 years agoR600: Add v2i32 test for vselect
Aaron Watry [Tue, 25 Jun 2013 13:55:54 +0000 (13:55 +0000)]
R600: Add v2i32 test for vselect

Note: Only adding test for evergreen, not SI yet.

When I attempted to expand vselect for SI, I got the following:
llc: /home/awatry/src/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:522:
llvm::SDValue llvm::DAGTypeLegalizer::PromoteIntRes_SETCC(llvm::SDNode*):
Assertion `SVT.isVector() == N->getOperand(0).getValueType().isVector() &&
"Vector compare must return a vector result!"' failed.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184847

11 years agoR600/SI: Expand xor v2i32/v4i32
Aaron Watry [Tue, 25 Jun 2013 13:55:52 +0000 (13:55 +0000)]
R600/SI: Expand xor v2i32/v4i32

Add test cases for both vector sizes on SI and also add v2i32 test for EG.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184846

11 years agoR600: Add v2i32 test for setcc on evergreen
Aaron Watry [Tue, 25 Jun 2013 13:55:49 +0000 (13:55 +0000)]
R600: Add v2i32 test for setcc on evergreen

No test/expansion for SI has been added yet. Attempts to expand this
operation for SI resulted in a stacktrace in (IIRC) LegalizeIntegerTypes
which was complaining about vector comparisons being required to return
a vector type.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184845

11 years agoR600/SI: Expand urem of v2i32/v4i32 for SI
Aaron Watry [Tue, 25 Jun 2013 13:55:46 +0000 (13:55 +0000)]
R600/SI: Expand urem of v2i32/v4i32 for SI

Also add lit test for both cases on SI, and v2i32 for evergreen.

Note: I followed the guidance of the v4i32 EG check... UREM produces really
complex code, so let's just check that the instruction was lowered
successfully.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184844

11 years agoR600/SI: Expand udiv v[24]i32 for SI and v2i32 for EG
Aaron Watry [Tue, 25 Jun 2013 13:55:43 +0000 (13:55 +0000)]
R600/SI: Expand udiv v[24]i32 for SI and v2i32 for EG

Also add lit test for both cases on SI, and v2i32 for evergreen.

Note: I followed the guidance of the v4i32 EG check... UDIV produces really
complex code, so let's just check that the instruction was lowered
successfully.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184843

11 years agoR600/SI: Expand ashr of v2i32/v4i32 for SI
Aaron Watry [Tue, 25 Jun 2013 13:55:40 +0000 (13:55 +0000)]
R600/SI: Expand ashr of v2i32/v4i32 for SI

Also add lit test for both cases on SI, and v2i32 for evergreen.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184842

11 years agoR600/SI: Expand srl of v2i32/v4i32 for SI
Aaron Watry [Tue, 25 Jun 2013 13:55:37 +0000 (13:55 +0000)]
R600/SI: Expand srl of v2i32/v4i32 for SI

Also add lit test for both cases on SI, and v2i32 for evergreen.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184841

11 years agoR600/SI: Expand shl of v2i32/v4i32 for SI
Aaron Watry [Tue, 25 Jun 2013 13:55:32 +0000 (13:55 +0000)]
R600/SI: Expand shl of v2i32/v4i32 for SI

Also add lit test for both cases on SI, and v2i32 for evergreen.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184840

11 years agoR600/SI: Expand or of v2i32/v4i32 for SI
Aaron Watry [Tue, 25 Jun 2013 13:55:29 +0000 (13:55 +0000)]
R600/SI: Expand or of v2i32/v4i32 for SI

Also add lit test for both cases on SI, and v2i32 for evergreen.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184839

11 years agoR600/SI: Expand mul of v2i32/v4i32 for SI
Aaron Watry [Tue, 25 Jun 2013 13:55:26 +0000 (13:55 +0000)]
R600/SI: Expand mul of v2i32/v4i32 for SI

Also add lit test for both cases on SI, and v2i32 for evergreen.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184838

11 years agoR600/SI: Expand and of v2i32/v4i32 for SI
Aaron Watry [Tue, 25 Jun 2013 13:55:23 +0000 (13:55 +0000)]
R600/SI: Expand and of v2i32/v4i32 for SI

Also add lit test for both cases on SI, and v2i32 for evergreen.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 184837

11 years ago[sanitizer] Move log_path to common flag and use it in MSan.
Evgeniy Stepanov [Tue, 25 Jun 2013 13:50:44 +0000 (13:50 +0000)]
[sanitizer] Move log_path to common flag and use it in MSan.

llvm-svn: 184836

11 years agoBlockFrequency: Bump up the entry frequency a bit.
Benjamin Kramer [Tue, 25 Jun 2013 13:34:40 +0000 (13:34 +0000)]
BlockFrequency: Bump up the entry frequency a bit.

This is a band-aid to fix the most severe regressions we're seeing from basing
spill decisions on block frequencies, until we have a better solution.

llvm-svn: 184835

11 years ago[PowerPC] Add extended rotate/shift mnemonics
Ulrich Weigand [Tue, 25 Jun 2013 13:17:41 +0000 (13:17 +0000)]
[PowerPC] Add extended rotate/shift mnemonics

This adds all missing extended rotate/shift mnemonics to the asm parser.

llvm-svn: 184834

11 years ago[PowerPC] Add rldcr/rldic instructions
Ulrich Weigand [Tue, 25 Jun 2013 13:17:10 +0000 (13:17 +0000)]
[PowerPC] Add rldcr/rldic instructions

This adds pattern for the rldcr and rldic instructions (the last instruction
from the rotate/shift family that were missing).  They are currently used
only by the asm parser.

llvm-svn: 184833

11 years ago[PowerPC] Add extended subtract mnemonics
Ulrich Weigand [Tue, 25 Jun 2013 13:16:48 +0000 (13:16 +0000)]
[PowerPC] Add extended subtract mnemonics

This adds support for the extended subtract mnemonics to the asm parser:
   subi
   subis
   subic
   subic.
   sub
   sub.
   subc
   subc.

llvm-svn: 184832

11 years ago[NVPTX] Default pointer type doesn't make sense for getParamSymbol()
Justin Holewinski [Tue, 25 Jun 2013 12:22:21 +0000 (12:22 +0000)]
[NVPTX] Default pointer type doesn't make sense for getParamSymbol()

llvm-svn: 184831

11 years agoFix a couple of PPC predefined macros that I spotted while driving by
Chandler Carruth [Tue, 25 Jun 2013 11:13:47 +0000 (11:13 +0000)]
Fix a couple of PPC predefined macros that I spotted while driving by
this code. These aren't technically standard predefines for the platform
but apparantly lots of folks use them as they show up within LLVM's own
codebase. ;] This may even fix some self host issues w/ the JIT!!!

llvm-svn: 184830

11 years agoIf debugserver fails to interrogate the inferior process CPU type
Jason Molenda [Tue, 25 Jun 2013 06:42:09 +0000 (06:42 +0000)]
If debugserver fails to interrogate the inferior process CPU type
for any reason, use debugserver own's cputype as a best guess when
we reply to the debugger's qProcessInfo packet or when initializing
our register tables.
<rdar://problem/13406879>

llvm-svn: 184829

11 years agoRemove some unnecessary uses of nub_break_t in the arm specific
Jason Molenda [Tue, 25 Jun 2013 06:01:20 +0000 (06:01 +0000)]
Remove some unnecessary uses of nub_break_t in the arm specific
support files for debugserver to fix a build failure for arm.  Also
remove some of the code used for software-driven single instruction
stepping; this is slowly being yanked out and these particular bits
overlap with the nub_break_t going away.

llvm-svn: 184828

11 years agoFix a typo in the code that collected the costs recursively.
Nadav Rotem [Tue, 25 Jun 2013 05:30:56 +0000 (05:30 +0000)]
Fix a typo in the code that collected the costs recursively.

llvm-svn: 184827

11 years agokeep only the StringRef version of getFileOrSTDIN.
Rafael Espindola [Tue, 25 Jun 2013 05:28:34 +0000 (05:28 +0000)]
keep only the StringRef version of getFileOrSTDIN.

llvm-svn: 184826

11 years agoAdd r184803 back now that the bug in unique_file has been fixed.
Rafael Espindola [Tue, 25 Jun 2013 04:26:55 +0000 (04:26 +0000)]
Add r184803 back now that the bug in unique_file has been fixed.

Original message:

Use the new PathV2 instead of implementing the logic in clang.

llvm-svn: 184825

11 years agoDon't assume ResultPath is null terminated.
Rafael Espindola [Tue, 25 Jun 2013 04:23:46 +0000 (04:23 +0000)]
Don't assume ResultPath is null terminated.

llvm-svn: 184824

11 years agoRevert "Temporarily enable MI-Sched on X86."
Andrew Trick [Tue, 25 Jun 2013 02:48:58 +0000 (02:48 +0000)]
Revert "Temporarily enable MI-Sched on X86."

This reverts commit 98a9b72e8c56dc13a2617de84503a3d78352789c.

llvm-svn: 184823

11 years agoR600/SI: Report unaligned memory accesses as legal for > 32-bit types
Tom Stellard [Tue, 25 Jun 2013 02:39:35 +0000 (02:39 +0000)]
R600/SI: Report unaligned memory accesses as legal for > 32-bit types

In reality, some unaligned memory accesses are legal for 32-bit types and
smaller too, but it all depends on the address space.  Allowing
unaligned loads/stores for > 32-bit types is mainly to prevent the
legalizer from splitting one load into multiple loads of smaller types.

https://bugs.freedesktop.org/show_bug.cgi?id=65873

llvm-svn: 184822

11 years agoR600: Add support for i32 loads from the constant address space on Cayman
Tom Stellard [Tue, 25 Jun 2013 02:39:30 +0000 (02:39 +0000)]
R600: Add support for i32 loads from the constant address space on Cayman

Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 184821

11 years agoR600/SI: Add support for v4i32 and v4f32 kernel args
Tom Stellard [Tue, 25 Jun 2013 02:39:25 +0000 (02:39 +0000)]
R600/SI: Add support for v4i32 and v4f32 kernel args

Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 184820

11 years agoR600: Fix typo in R600Schedule.td
Tom Stellard [Tue, 25 Jun 2013 02:39:20 +0000 (02:39 +0000)]
R600: Fix typo in R600Schedule.td

This should only make a difference in programs that use a lot of the
vector ALU instructions like BFI_INT and BIT_ALIGN.  There is a slight
improvement in the phatk bitcoin mining kernel with this patch on
Evergreen (vector size == 1):

Before:
1173 Instruction Groups / 9520 dwords

After:
1167 Instruction Groups / 9510 dwords

Reviewed-by: Reviewed-by: Vincent Lejeune<vljn at ovi.com>
llvm-svn: 184819

11 years agoRevert "Use the new PathV2 instead of implementing the logic in clang."
Rafael Espindola [Tue, 25 Jun 2013 02:35:32 +0000 (02:35 +0000)]
Revert "Use the new PathV2 instead of implementing the logic in clang."

This reverts commit 184803 while I debug the failures on the bots.

llvm-svn: 184818

11 years agoRevert r184787: "Added arm_neon intrinsic tests."
Chandler Carruth [Tue, 25 Jun 2013 02:18:39 +0000 (02:18 +0000)]
Revert r184787: "Added arm_neon intrinsic tests."

This test doesn't actually pass when run with llvm-lit for me or in
a bot that actually always tries to run it.

llvm-svn: 184817

11 years agoTemporarily disable building the armv7 variants of profile_ios on
Chandler Carruth [Tue, 25 Jun 2013 02:15:14 +0000 (02:15 +0000)]
Temporarily disable building the armv7 variants of profile_ios on
darwin.

After talking with Jim Grosbach pretty extensively, he was OK with me
punting on this to the Apple folks.

We agreed that the correct fix is either to extend the fake SDK headers
in compiler-rt to support the rest of libc needed by GCDAProfiling.c or
to teach the make build to test for the existence of a suitable SDK on
the system prior to building it. Both of these require someone with
access to the SDK which I don't have, and the latter (my preferred
solution) requires understanding the strange compiler-rt make build
system. Punting to Dan Dunbar or one of the others who support this
stuff on ios to write the appropriate fix, and we can let the build bots
proceed in the mean time.

llvm-svn: 184816

11 years ago[analyzer] Handle zeroing CXXConstructExprs.
Jordan Rose [Tue, 25 Jun 2013 01:56:08 +0000 (01:56 +0000)]
[analyzer] Handle zeroing CXXConstructExprs.

Re-apply r184511, reverted in r184561, with the trivial default constructor
fast path removed -- it turned out not to be necessary here.

Certain expressions can cause a constructor invocation to zero-initialize
its object even if the constructor itself does no initialization. The
analyzer now handles that before evaluating the call to the constructor,
using the same "default binding" mechanism that calloc() uses, rather
than simply ignoring the zero-initialization flag.

<rdar://problem/14212563>

llvm-svn: 184815

11 years ago[analyzer] Don't initialize virtual base classes more than once.
Jordan Rose [Tue, 25 Jun 2013 01:55:59 +0000 (01:55 +0000)]
[analyzer] Don't initialize virtual base classes more than once.

In order to make sure virtual base classes are always initialized once,
the AST contains initializers for the base class in /all/ of its
descendents, not just the immediate descendents. However, at runtime,
the most-derived object is responsible for initializing all the virtual
base classes; all the other initializers will be ignored.

The analyzer now checks to see if it's being called from another base
constructor, and if so does not perform virtual base initialization.

<rdar://problem/14236851>

llvm-svn: 184814

11 years agoFix regression from r184810.
Eli Friedman [Tue, 25 Jun 2013 01:55:41 +0000 (01:55 +0000)]
Fix regression from r184810.

Specifically, CallExpr::getCalleeDecl() can return null, so make sure to
handle that correctly.

llvm-svn: 184813

11 years agoMake -vectorize-... proper cc1 flags instead of abusing -backend-option. Fixes
Nick Lewycky [Tue, 25 Jun 2013 01:49:44 +0000 (01:49 +0000)]
Make -vectorize-... proper cc1 flags instead of abusing -backend-option. Fixes
usage of clang as a library.

llvm-svn: 184812

11 years agoFix deserializing of class template partial specializations. Assign sequence
Richard Smith [Tue, 25 Jun 2013 01:25:15 +0000 (01:25 +0000)]
Fix deserializing of class template partial specializations. Assign sequence
numbers as we deserialize class template partial specializations. We can't
assume that the old sequence numbers will work.

The sequence numbers are still deterministic, but are now a lot less
predictable for class template partial specializations in modules/PCH.

llvm-svn: 184811

11 years agoFix noexcept for delete expressions.
Eli Friedman [Tue, 25 Jun 2013 01:24:22 +0000 (01:24 +0000)]
Fix noexcept for delete expressions.

Using "delete" on a pointer to an incomplete type can't throw.
While I'm here, clean up the signature of the canCalleeThrow() helper.

llvm-svn: 184810

11 years agoPPCAsmParser.cpp: Quote "@l/@ha" in comments. [-Wdocumentation]
NAKAMURA Takumi [Tue, 25 Jun 2013 01:14:20 +0000 (01:14 +0000)]
PPCAsmParser.cpp: Quote "@l/@ha" in comments. [-Wdocumentation]

llvm-svn: 184809

11 years agoAdd an autoconf option for turning on -gsplit-dwarf by default
Eric Christopher [Tue, 25 Jun 2013 01:12:25 +0000 (01:12 +0000)]
Add an autoconf option for turning on -gsplit-dwarf by default
when building llvm. This saves quite a bit of time and space when
linking. Please report any problems via bugzilla.

Caveats:

a) This will only work on linux
b) This requires a fairly new binutils
c) This requires a fairly new gdb

llvm-svn: 184808

11 years agoRemove PathV1.h from Driver.cpp.
Rafael Espindola [Tue, 25 Jun 2013 01:11:59 +0000 (01:11 +0000)]
Remove PathV1.h from Driver.cpp.

llvm-svn: 184807

11 years agoCreate a replacement for sys::Path::PathSeparator.
Rafael Espindola [Tue, 25 Jun 2013 01:10:36 +0000 (01:10 +0000)]
Create a replacement for sys::Path::PathSeparator.

llvm-svn: 184806

11 years agoRemove the sysroot (or isysroot) restriction from the GCDAProfile.c
Chandler Carruth [Tue, 25 Jun 2013 00:57:06 +0000 (00:57 +0000)]
Remove the sysroot (or isysroot) restriction from the GCDAProfile.c
runtime in the Makefile build system as well. Sorry for the temporary
fallout, it took me a while to find these bits.

Bill, I'm not at all confident of the change for Darwin and iOS, but as
discussed we're completely blocked on fixing this. Anyways, please
review and let me know if this will work for you guys. If necessary,
I can work with you to rig up an errno.h stub for Darwin, but I expect
that to be... moderately challenging.

llvm-svn: 184805

11 years agoFormatter/ObjC: Correctly format casts in objc message send expressions.
Nico Weber [Tue, 25 Jun 2013 00:55:57 +0000 (00:55 +0000)]
Formatter/ObjC: Correctly format casts in objc message send expressions.

llvm-svn: 184804

11 years agoUse the new PathV2 instead of implementing the logic in clang.
Rafael Espindola [Tue, 25 Jun 2013 00:55:28 +0000 (00:55 +0000)]
Use the new PathV2 instead of implementing the logic in clang.

llvm-svn: 184803

11 years agoCleanup in unique_file when we only want the name.
Rafael Espindola [Tue, 25 Jun 2013 00:49:40 +0000 (00:49 +0000)]
Cleanup in unique_file when we only want the name.

This is really ugly, but it is no worse than what we have in clang right now and
it is better to get it working first and clean/optimize it afterwards.

Will be tested from clang in the next patch.

llvm-svn: 184802

11 years agoDelete a couple dead checks.
Eli Friedman [Tue, 25 Jun 2013 00:46:32 +0000 (00:46 +0000)]
Delete a couple dead checks.

Use castAs<> where appropriate. Don't check conditionals which are
always true. Delete a bit of dead code. Reindent a bunch of code which
is no longer guarded by an if statement.

llvm-svn: 184801

11 years agoAs far as I know no linker needs or wants the -g flag.
Eric Christopher [Tue, 25 Jun 2013 00:40:03 +0000 (00:40 +0000)]
As far as I know no linker needs or wants the -g flag.

llvm-svn: 184800

11 years agoAddress a few of the issues in GCDAProfiling I noted when looking
Chandler Carruth [Tue, 25 Jun 2013 00:37:32 +0000 (00:37 +0000)]
Address a few of the issues in GCDAProfiling I noted when looking
through Bill's patch:

1) Correctly test the file descriptor after the sceond attempt at
   creating the file.
2) Make the filename a global so that we can issue error messages from
   other routines.
3) Check errno in several places and print it out so that errors are
   easier to track down.

I don't really expect any of these to fix the current failures I'm
seeing, but I'm hopeful they'll at least let me debug them.

llvm-svn: 184799

11 years agoRemove the sysroot restriction from building GCDAProfiling.c.
Chandler Carruth [Tue, 25 Jun 2013 00:37:28 +0000 (00:37 +0000)]
Remove the sysroot restriction from building GCDAProfiling.c.

We really need the C standard library to be available to implement the
profiling runtime library reasonably, and replicating everything in the
SDKs tree really isn't addressing any problems we have. Notably, all of
the sanitizer runtimes take the same approach, and this isn't a library
which could end up in a bootstrapping problem where the system headers
aren't even available.

This will hopefully prevent subsequent changes which start using various
other bits of C standard library to make things more debuggable.

llvm-svn: 184798

11 years agoFixed the instruction emulation so that it doesn't
Sean Callanan [Tue, 25 Jun 2013 00:32:45 +0000 (00:32 +0000)]
Fixed the instruction emulation so that it doesn't
print to standard output as part of normal
operation.

<rdar://problem/14247606>

llvm-svn: 184797

11 years agoFormatter/Objc: Add a test that checks that @import is formatted correctly.
Nico Weber [Tue, 25 Jun 2013 00:25:40 +0000 (00:25 +0000)]
Formatter/Objc: Add a test that checks that @import is formatted correctly.

llvm-svn: 184796

11 years agoDelete dead code.
Eli Friedman [Tue, 25 Jun 2013 00:25:19 +0000 (00:25 +0000)]
Delete dead code.

llvm-svn: 184795

11 years agoReorder builds based by ordering.
Eric Christopher [Tue, 25 Jun 2013 00:21:29 +0000 (00:21 +0000)]
Reorder builds based by ordering.

llvm-svn: 184794

11 years agoRemove all non-linker oriented compile options from the linker
Eric Christopher [Mon, 24 Jun 2013 23:20:04 +0000 (23:20 +0000)]
Remove all non-linker oriented compile options from the linker
command line. Change the darwin universal binary options to
be TargetCommonOpts so that they'll be passed to the linker since
-arch at least is still needed.

Someone on darwin with a buildit based build should probably verify
that this doesn't break anything there.

llvm-svn: 184793

11 years ago80-column and tab character fixes.
Eric Christopher [Mon, 24 Jun 2013 23:20:02 +0000 (23:20 +0000)]
80-column and tab character fixes.

llvm-svn: 184792

11 years agoCheck for matching template-parameter-lists when merging template declarations.
Richard Smith [Mon, 24 Jun 2013 22:51:00 +0000 (22:51 +0000)]
Check for matching template-parameter-lists when merging template declarations.

llvm-svn: 184791

11 years agoAccept both / and \\ to fix the windows bots.
Rafael Espindola [Mon, 24 Jun 2013 22:07:15 +0000 (22:07 +0000)]
Accept both / and \\ to fix the windows bots.

llvm-svn: 184790

11 years agoTweak -Wdeprecated-objc-pointer-introspection to have a subgroup for results of using...
Ted Kremenek [Mon, 24 Jun 2013 21:35:39 +0000 (21:35 +0000)]
Tweak -Wdeprecated-objc-pointer-introspection to have a subgroup for results of using -performSelectorXXX.

-performSelector: and friends return a value that is boxed as an Objective-C
pointer.  Sometimes it is an Objective-C pointer, sometimes it isn't.
Some clients may wish to silence this warning based on calling
this method.

Fixes <rdar://problem/14147304>

llvm-svn: 184789