platform/upstream/llvm.git
10 years agoMC CFG: uint64_t -> size_t for vector size.
Ahmed Bougacha [Wed, 21 Aug 2013 07:27:44 +0000 (07:27 +0000)]
MC CFG: uint64_t -> size_t for vector size.

llvm-svn: 188872

10 years agoMC CFG: Add a getter for MCDataAtom's data array.
Ahmed Bougacha [Wed, 21 Aug 2013 07:27:40 +0000 (07:27 +0000)]
MC CFG: Add a getter for MCDataAtom's data array.

While there, switch to new-style documentation.

llvm-svn: 188871

10 years agoAbstract out virtual calls and virtual function prologue code generation; implement...
Timur Iskhodzhanov [Wed, 21 Aug 2013 06:25:03 +0000 (06:25 +0000)]
Abstract out virtual calls and virtual function prologue code generation; implement them for -cxx-abi microsoft

llvm-svn: 188870

10 years agoDebugInfo: Do not use the DWARF Version for the .debug_pubnames or .debug_pubtypes...
David Majnemer [Wed, 21 Aug 2013 06:13:34 +0000 (06:13 +0000)]
DebugInfo: Do not use the DWARF Version for the .debug_pubnames or .debug_pubtypes version field

Summary:
LLVM would generate DWARF with version 3 in the .debug_pubname and
.debug_pubtypes version fields.  This would lead SGI dwarfdump to fail
parsing the DWARF with (in the instance of .debug_pubnames) would exit
with:
dwarfdump ERROR:  dwarf_get_globals: DW_DLE_PUBNAMES_VERSION_ERROR (123)

This fixes PR16950.

Reviewers: echristo, dblaikie

Reviewed By: echristo

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1454

llvm-svn: 188869

10 years agoSynchronize VEX JIT encoding code with the MCJIT version. Fix a bug in the MCJIT...
Craig Topper [Wed, 21 Aug 2013 05:57:45 +0000 (05:57 +0000)]
Synchronize VEX JIT encoding code with the MCJIT version. Fix a bug in the MCJIT code where CurOp was being incremented even if the operand it was pointing at wasn't used. Maybe only matters if there are any EVEX_K instructions that aren't VEX_4V.

llvm-svn: 188868

10 years agoAdd avx512cd, avx512er, avx512pf feature flags and enable them on KNL CPU.
Craig Topper [Wed, 21 Aug 2013 05:29:10 +0000 (05:29 +0000)]
Add avx512cd, avx512er, avx512pf feature flags and enable them on KNL CPU.

llvm-svn: 188867

10 years agoIn LLVM FMA3 operands are dst, src1, src2, src3, however dst is not encoded as it...
Nadav Rotem [Wed, 21 Aug 2013 05:03:10 +0000 (05:03 +0000)]
In LLVM FMA3 operands are dst, src1, src2, src3, however dst is not encoded as it is always src1. This was causing the encoding of the operands to be off by one.

Patch by Chris Bieneman.

llvm-svn: 188866

10 years agoAdd the FMA3 feature in order to test FMA encoding using the old jit.
Nadav Rotem [Wed, 21 Aug 2013 05:02:12 +0000 (05:02 +0000)]
Add the FMA3 feature in order to test FMA encoding using the old jit.

Patch by Chris Bieneman!

llvm-svn: 188865

10 years agoFor Darwin builds, locate tools using xcrun when available.
Bob Wilson [Wed, 21 Aug 2013 04:42:56 +0000 (04:42 +0000)]
For Darwin builds, locate tools using xcrun when available.

The make/platform/darwin_bni.mk file already has similar code but we
apparently neglected to add it to the clang_darwin.mk file.

llvm-svn: 188864

10 years agoIssue fixits replacing invalid character literals with the equivalent \xNN
Nick Lewycky [Wed, 21 Aug 2013 04:10:58 +0000 (04:10 +0000)]
Issue fixits replacing invalid character literals with the equivalent \xNN
escape code.

llvm-svn: 188863

10 years agoRevert accidental commit.
Craig Topper [Wed, 21 Aug 2013 04:01:01 +0000 (04:01 +0000)]
Revert accidental commit.

llvm-svn: 188862

10 years agoRevert accidental commit.
Craig Topper [Wed, 21 Aug 2013 04:00:44 +0000 (04:00 +0000)]
Revert accidental commit.

llvm-svn: 188861

10 years agoReplace avx-512 with avx512f to match llvm side and what gcc patches appear to be...
Craig Topper [Wed, 21 Aug 2013 03:59:22 +0000 (03:59 +0000)]
Replace avx-512 with avx512f to match llvm side and what gcc patches appear to be using.

llvm-svn: 188860

10 years agoRename mattr names for AVX-512 to from avx-512 -> avx512f, avx-512-pfi -> av512pf...
Craig Topper [Wed, 21 Aug 2013 03:57:57 +0000 (03:57 +0000)]
Rename mattr names for AVX-512 to from avx-512 -> avx512f, avx-512-pfi -> av512pf, avx-512-cdi -> avx512cd, avx-512-eri->avx512er. This matches better with official docs and what gcc patches appearto be using. I didn't touch the has* functions or the feature flag names to avoid change the td and lowering file while commits are still happening.

llvm-svn: 188859

10 years agoLWG 2145 - mark constructor for std::error_category as inline and constexpr. Leave...
Marshall Clow [Wed, 21 Aug 2013 02:57:19 +0000 (02:57 +0000)]
LWG 2145 - mark constructor for std::error_category as inline and constexpr. Leave the (existing, out-of-line, non-constexpr) in the dylib for compatibility with existing programs)

llvm-svn: 188858

10 years agoNo functionality change. Adjust a bunch of formatting issues in this code and
Nick Lewycky [Wed, 21 Aug 2013 02:40:19 +0000 (02:40 +0000)]
No functionality change. Adjust a bunch of formatting issues in this code and
fix a typo in a comment.

llvm-svn: 188857

10 years agoX86TargetMachine.cpp: Clarify to emit GOT in i686-{cygming|win32}-elf for mcjit.
NAKAMURA Takumi [Wed, 21 Aug 2013 02:37:25 +0000 (02:37 +0000)]
X86TargetMachine.cpp: Clarify to emit GOT in i686-{cygming|win32}-elf for mcjit.

I suppose all "lli -use-mcjit i686-*" should require GOT, (and to fail.)

llvm-svn: 188856

10 years agolli/RecordingMemoryManager.cpp: Make it complain if _GLOBAL_OFFSET_TABLE_ were not...
NAKAMURA Takumi [Wed, 21 Aug 2013 02:37:14 +0000 (02:37 +0000)]
lli/RecordingMemoryManager.cpp: Make it complain if _GLOBAL_OFFSET_TABLE_ were not provided.

FIXME: Would it be responsible to provide GOT?
llvm-svn: 188855

10 years agoRemove more uses of 'index' as namespace scope.
Argyrios Kyrtzidis [Wed, 21 Aug 2013 01:51:19 +0000 (01:51 +0000)]
Remove more uses of 'index' as namespace scope.

Follow up to r188850.

llvm-svn: 188854

10 years agoIf we find an error in the range expression in a range-based for loop, and the
Richard Smith [Wed, 21 Aug 2013 01:40:36 +0000 (01:40 +0000)]
If we find an error in the range expression in a range-based for loop, and the
loop variable has a type containing 'auto', set the declaration to be invalid
(because we couldn't deduce its type) to prevent follow-on errors.

llvm-svn: 188853

10 years agoMove #includes from .h to .cpp file.
Jakub Staszak [Wed, 21 Aug 2013 01:20:11 +0000 (01:20 +0000)]
Move #includes from .h to .cpp file.

llvm-svn: 188852

10 years ago[micromips] Print instruction alias "not" if the last operand of a nor is zero.
Akira Hatanaka [Wed, 21 Aug 2013 01:18:46 +0000 (01:18 +0000)]
[micromips] Print instruction alias "not" if the last operand of a nor is zero.

llvm-svn: 188851

10 years agoAvoid using the 'index' namespace as scope.
Argyrios Kyrtzidis [Wed, 21 Aug 2013 00:49:25 +0000 (00:49 +0000)]
Avoid using the 'index' namespace as scope.

This should fix the bogus ambiguous reference errors reported by gcc 4.2.1 that the FreeBSD bot is using.

llvm-svn: 188850

10 years agoMove registering the execution of a basic block to the beginning rather than the...
Bill Wendling [Tue, 20 Aug 2013 23:52:00 +0000 (23:52 +0000)]
Move registering the execution of a basic block to the beginning rather than the end.

There are situations which can affect the correctness (or at least expectation)
of the gcov output. For instance, if a call to __gcov_flush() occurs within a
block before the execution count is registered and then the program aborts in
some way, then that block will not be marked as executed. This is not normally
what the user expects.

If we move the code that's registering when a block is executed to the
beginning, we can catch these types of situations.

PR16893

llvm-svn: 188849

10 years ago[mips] Add support for mfhc1 and mthc1.
Akira Hatanaka [Tue, 20 Aug 2013 23:47:25 +0000 (23:47 +0000)]
[mips] Add support for mfhc1 and mthc1.

llvm-svn: 188848

10 years ago[mips] Add support for calling convention CC_MipsO32_FP64, which is used when the
Akira Hatanaka [Tue, 20 Aug 2013 23:38:40 +0000 (23:38 +0000)]
[mips] Add support for calling convention CC_MipsO32_FP64, which is used when the
size of floating point registers is 64-bit.

Test case will be added when support for mfhc1 and mthc1 is added.

llvm-svn: 188847

10 years agoObjectiveC migrator. make sure to embed audited
Fariborz Jahanian [Tue, 20 Aug 2013 23:35:26 +0000 (23:35 +0000)]
ObjectiveC migrator. make sure to embed audited
candidate functions in their CF_IMPLICIT_BRIDGING_ENABLED
pragma before exiting the header file.

llvm-svn: 188846

10 years ago[mips] Remove predicates that were incorrectly or unnecessarily added.
Akira Hatanaka [Tue, 20 Aug 2013 23:21:55 +0000 (23:21 +0000)]
[mips] Remove predicates that were incorrectly or unnecessarily added.

llvm-svn: 188845

10 years agoAdd some constantness.
Jakub Staszak [Tue, 20 Aug 2013 23:04:15 +0000 (23:04 +0000)]
Add some constantness.

llvm-svn: 188844

10 years agoUse -disable-output and to suppress output and don't use a temporary file unless...
Bill Wendling [Tue, 20 Aug 2013 23:00:25 +0000 (23:00 +0000)]
Use -disable-output and to suppress output and don't use a temporary file unless we need one.

llvm-svn: 188843

10 years ago[mips] Define register class FGRH32 for the high half of the 64-bit floating
Akira Hatanaka [Tue, 20 Aug 2013 22:58:56 +0000 (22:58 +0000)]
[mips] Define register class FGRH32 for the high half of the 64-bit floating
point registers. We will need this register class later when we add
definitions for instructions mfhc1 and mthc1. Also, remove sub-register indices
sub_fpeven and sub_fpodd and use sub_lo and sub_hi instead.

llvm-svn: 188842

10 years agoFix include guards.
Jakub Staszak [Tue, 20 Aug 2013 22:52:02 +0000 (22:52 +0000)]
Fix include guards.

llvm-svn: 188841

10 years agoRemove Extension warning for GNU local labels.
Eli Friedman [Tue, 20 Aug 2013 22:44:32 +0000 (22:44 +0000)]
Remove Extension warning for GNU local labels.

We generally don't warn about extensions involving keywords reserved
for the implementation, so we shouldn't warn here either: the
standard doesn't require it, and it doesn't provide useful information
to the user.

llvm-svn: 188840

10 years agoAdd more specific flags for misc GNU extensions.
Eli Friedman [Tue, 20 Aug 2013 22:44:28 +0000 (22:44 +0000)]
Add more specific flags for misc GNU extensions.

This adds the following as subgroups of -Wgnu: -Wgnu-alignof-expression,
-Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-conditional-omitted-operand,
-Wgnu-empty-initializer, -Wgnu-label-as-value, -Wgnu-local-label,
and -Wgnu-statement-expression,

Patch by Peter Lewis.

llvm-svn: 188839

10 years agoObjectiveC migrator: make sure audited pragams are
Fariborz Jahanian [Tue, 20 Aug 2013 22:42:13 +0000 (22:42 +0000)]
ObjectiveC migrator: make sure audited pragams are
dumped for last declarations in the current TU. wip.

llvm-svn: 188838

10 years agoCentralize the handling of -target-cpu (-cc1, -cc1as) and -mcpu (gold plugin).
Rafael Espindola [Tue, 20 Aug 2013 22:12:08 +0000 (22:12 +0000)]
Centralize the handling of -target-cpu (-cc1, -cc1as) and -mcpu (gold plugin).

llvm-svn: 188837

10 years agoTest case for PR16933/r188707.
David Blaikie [Tue, 20 Aug 2013 22:01:44 +0000 (22:01 +0000)]
Test case for PR16933/r188707.

llvm-svn: 188836

10 years agoFix iterator invalidation. PR16935.
Eli Friedman [Tue, 20 Aug 2013 22:01:43 +0000 (22:01 +0000)]
Fix iterator invalidation. PR16935.

llvm-svn: 188835

10 years agoDebugInfo: comment/inlining based on feedback from Eric & Adrian
David Blaikie [Tue, 20 Aug 2013 21:49:21 +0000 (21:49 +0000)]
DebugInfo: comment/inlining based on feedback from Eric & Adrian

llvm-svn: 188834

10 years agoLook at lowercase version of argv[0] when determining driver mode
Hans Wennborg [Tue, 20 Aug 2013 21:47:50 +0000 (21:47 +0000)]
Look at lowercase version of argv[0] when determining driver mode

llvm-svn: 188833

10 years agoSLPVectorizer: Fix invalid iterator errors
Arnold Schwaighofer [Tue, 20 Aug 2013 21:21:45 +0000 (21:21 +0000)]
SLPVectorizer: Fix invalid iterator errors

Update iterator when the SLP vectorizer changes the instructions in the basic
block by restarting the traversal of the basic block.

Patch by Yi Jiang!

Fixes PR 16899.

llvm-svn: 188832

10 years agoTeach ConstantFolding about pointer address spaces
Matt Arsenault [Tue, 20 Aug 2013 21:20:04 +0000 (21:20 +0000)]
Teach ConstantFolding about pointer address spaces

llvm-svn: 188831

10 years ago[mips] Resolve register classes dynamically using ptr_rc to reduce the number of
Akira Hatanaka [Tue, 20 Aug 2013 21:08:22 +0000 (21:08 +0000)]
[mips] Resolve register classes dynamically using ptr_rc to reduce the number of
load/store instructions defined. Previously, we were defining load/store
instructions for each pointer size (32 and 64-bit), but now we need just one
definition.

llvm-svn: 188830

10 years agoDebugInfo: Simplify/clarify propagation of typemembers between declaration and definition
David Blaikie [Tue, 20 Aug 2013 21:03:29 +0000 (21:03 +0000)]
DebugInfo: Simplify/clarify propagation of typemembers between declaration and definition

Based on code review feedback from Eric Christopher (on r188739) and
Adrian Prantl (r188642).

llvm-svn: 188829

10 years agoAdd an option which permits the user to specify using a bitmask, that various
Reed Kotler [Tue, 20 Aug 2013 20:53:09 +0000 (20:53 +0000)]
Add an option which permits the user to specify using a bitmask, that various
functions be compiled as mips32, without having to add attributes. This
is useful in certain situations where you don't want to have to edit the
function attributes in the source. For now it's only an option used for
the compiler developers when debugging the mips16 port.

llvm-svn: 188826

10 years ago[mips] Guard micromips instructions with predicate InMicroMips. Also, fix
Akira Hatanaka [Tue, 20 Aug 2013 20:46:51 +0000 (20:46 +0000)]
[mips] Guard micromips instructions with predicate InMicroMips. Also, fix
assembler predicate HasStdEnd so that it is false when the target is micromips.

llvm-svn: 188824

10 years agoObjectiveC migrator: More tweaking of heuristics
Fariborz Jahanian [Tue, 20 Aug 2013 20:45:28 +0000 (20:45 +0000)]
ObjectiveC migrator: More tweaking of heuristics
for an audited cf function to not include those
which are annotated by user.

llvm-svn: 188823

10 years agoDuring typo correction, check for an exact match in an unimported module. If we
Richard Smith [Tue, 20 Aug 2013 20:35:18 +0000 (20:35 +0000)]
During typo correction, check for an exact match in an unimported module. If we
find one, then report the error as a missing import instead of as a typo.

llvm-svn: 188821

10 years agocpp11-migrate: Use Replacement serialization from clang::tooling
Edwin Vane [Tue, 20 Aug 2013 19:20:52 +0000 (19:20 +0000)]
cpp11-migrate: Use Replacement serialization from clang::tooling

Serialization of replacements has been moved to clang::tooling.

Differential Revision: http://llvm-reviews.chandlerc.com/D1423

llvm-svn: 188820

10 years agoARM: Fix fast-isel copy/paste-o.
Jim Grosbach [Tue, 20 Aug 2013 19:12:42 +0000 (19:12 +0000)]
ARM: Fix fast-isel copy/paste-o.

Update testcase to be more careful about checking register
values. While regexes are general goodness for these sorts of
testcases, in this example, the registers are constrained by
the calling convention, so we can and should check their
explicit values.

rdar://14779513

llvm-svn: 188819

10 years agoAdding Replacement serialization support
Edwin Vane [Tue, 20 Aug 2013 19:07:21 +0000 (19:07 +0000)]
Adding Replacement serialization support

Adding a new data structure for storing the Replacements generated for a single
translation unit. Structure contains a vector of Replacements as well a field
indicating the main source file of the translation unit. An optional 'Context'
field allows for tools to provide any information they want about the context
the Replacements were generated in. This context is printed, for example, when
detecting conflicts during Replacement deduplication.

YAML serialization for this data structure is implemented in this patch. Tests
are included.

Differential Revision: http://llvm-reviews.chandlerc.com/D1422

llvm-svn: 188818

10 years agoCentralize the logic for handling -m* options and fix pr16943.
Rafael Espindola [Tue, 20 Aug 2013 18:57:55 +0000 (18:57 +0000)]
Centralize the logic for handling -m* options and fix pr16943.

This moves the logic for handling -mfoo -mno-foo from the driver to -cc1. It
also changes -cc1 to apply the options in order, fixing pr16943.

The handling of -mno-mmx -msse is now an explicit special case.

llvm-svn: 188817

10 years agoObjectiveC migrator: More tweaking of heuristics
Fariborz Jahanian [Tue, 20 Aug 2013 18:54:39 +0000 (18:54 +0000)]
ObjectiveC migrator: More tweaking of heuristics
for an audited cf function and addition of
a test case.

llvm-svn: 188816

10 years agoStill more MCJIT PIC test XFAILs
Andrew Kaylor [Tue, 20 Aug 2013 18:13:48 +0000 (18:13 +0000)]
Still more MCJIT PIC test XFAILs

llvm-svn: 188815

10 years agoClarifying two MCJIT PIC tests as XFAIL on i686-pc-linux
Andrew Kaylor [Tue, 20 Aug 2013 17:01:35 +0000 (17:01 +0000)]
Clarifying two MCJIT PIC tests as XFAIL on i686-pc-linux

llvm-svn: 188814

10 years agoUpdated status of issues #2093, 2144, and 2185
Marshall Clow [Tue, 20 Aug 2013 16:59:06 +0000 (16:59 +0000)]
Updated status of issues #2093, 2144, and 2185

llvm-svn: 188813

10 years agoRemoving duplicate XFAIL markers
Andrew Kaylor [Tue, 20 Aug 2013 16:42:22 +0000 (16:42 +0000)]
Removing duplicate XFAIL markers

llvm-svn: 188812

10 years agoUpdated status and description of issues 2064, 2069 and 2096.
Marshall Clow [Tue, 20 Aug 2013 16:24:55 +0000 (16:24 +0000)]
Updated status and description of issues 2064, 2069 and 2096.

llvm-svn: 188811

10 years agoUpdated status of issues #2028, 2047, and 2053.
Marshall Clow [Tue, 20 Aug 2013 16:18:29 +0000 (16:18 +0000)]
Updated status of issues #2028, 2047, and 2053.

llvm-svn: 188810

10 years agoTo test commit access.
Hafiz Abid Qadeer [Tue, 20 Aug 2013 16:07:44 +0000 (16:07 +0000)]
To test commit access.

llvm-svn: 188809

10 years agoMarking two more MCJIT PIC tests as XFAIL on i686
Andrew Kaylor [Tue, 20 Aug 2013 15:47:04 +0000 (15:47 +0000)]
Marking two more MCJIT PIC tests as XFAIL on i686

llvm-svn: 188808

10 years agoMarking MCJIT PIC tests as XFAIL on arm
Andrew Kaylor [Tue, 20 Aug 2013 15:36:04 +0000 (15:36 +0000)]
Marking MCJIT PIC tests as XFAIL on arm

llvm-svn: 188807

10 years agoRemove duplicated error checking.
Rafael Espindola [Tue, 20 Aug 2013 15:30:32 +0000 (15:30 +0000)]
Remove duplicated error checking.

The driver validates its options, so we don't need to redo the work in
"clang -cc1".

llvm-svn: 188806

10 years ago[LSan] Add support for building standalone LSan runtime to Make build (clang part)
Alexey Samsonov [Tue, 20 Aug 2013 14:49:36 +0000 (14:49 +0000)]
[LSan] Add support for building standalone LSan runtime to Make build (clang part)

llvm-svn: 188805

10 years ago[LSan] Add support for building standalone LSan runtime to Make build (compiler-rt...
Alexey Samsonov [Tue, 20 Aug 2013 14:49:01 +0000 (14:49 +0000)]
[LSan] Add support for building standalone LSan runtime to Make build (compiler-rt part)

llvm-svn: 188804

10 years agoUpdated status of issues #1214, 2207 and 2209. They were already implemented, so...
Marshall Clow [Tue, 20 Aug 2013 14:21:16 +0000 (14:21 +0000)]
Updated status of issues #1214, 2207 and 2209. They were already implemented, so no functionality change was needed.

llvm-svn: 188803

10 years agoRemove dead code.
Rafael Espindola [Tue, 20 Aug 2013 14:18:24 +0000 (14:18 +0000)]
Remove dead code.

llvm-svn: 188802

10 years agoInclude checksum in non-ack mode
Ed Maste [Tue, 20 Aug 2013 14:12:58 +0000 (14:12 +0000)]
Include checksum in non-ack mode

Patch from Abid, Hafiz.

llvm-svn: 188801

10 years agoUniqueHeaderNameTest.cpp: Appease valgrind.
NAKAMURA Takumi [Tue, 20 Aug 2013 14:02:38 +0000 (14:02 +0000)]
UniqueHeaderNameTest.cpp: Appease valgrind.

llvm::sys::path::native(dst, dst) might be overridden-safe in most cases, though.

llvm-svn: 188800

10 years agoRefactor the x86 feature handling.
Rafael Espindola [Tue, 20 Aug 2013 13:44:29 +0000 (13:44 +0000)]
Refactor the x86 feature handling.

This removes the very long chains of
Feature["avx"] = Feature["sse42"] = ... = true;

llvm-svn: 188799

10 years agoFix style issues in AsmParser.cpp
Vladimir Medic [Tue, 20 Aug 2013 13:33:18 +0000 (13:33 +0000)]
Fix style issues in AsmParser.cpp

llvm-svn: 188798

10 years agoARM: add test for last commit
Tim Northover [Tue, 20 Aug 2013 13:19:43 +0000 (13:19 +0000)]
ARM: add test for last commit

This time I managed to forget the test.

Patch still by Stephen Kelly.

llvm-svn: 188797

10 years agoARM: default to arm1176jzf-s for hard-float platforms.
Tim Northover [Tue, 20 Aug 2013 13:13:38 +0000 (13:13 +0000)]
ARM: default to arm1176jzf-s for hard-float platforms.

It makes no sense to try and compile for arm7tdmi when we're targeting
something like gnueabihf. Although not strictly the most basic hardware
conceivable, I believe arm1176jzf-s is a reasonable compromise (that can always
be overridden explicitly if needed) since it's still in reasonably common use
unlike earlier cores.

Patch by Stephen Kelly.

llvm-svn: 188796

10 years agoRevert "cpp11-migrate: Add a class to support include directives modifications"
Guillaume Papin [Tue, 20 Aug 2013 13:05:57 +0000 (13:05 +0000)]
Revert "cpp11-migrate: Add a class to support include directives modifications"

This reverts commit r188791.

The Windows bots are still broken.

llvm-svn: 188795

10 years agoclang-format: Format enum struct/class like enum.
Daniel Jasper [Tue, 20 Aug 2013 12:42:50 +0000 (12:42 +0000)]
clang-format: Format enum struct/class like enum.

Patch by Joe Hermaszewski. Thank you!

llvm-svn: 188794

10 years agoclang-format: Additional options for spaces around parentheses.
Daniel Jasper [Tue, 20 Aug 2013 12:36:34 +0000 (12:36 +0000)]
clang-format: Additional options for spaces around parentheses.

This patch adds four new options to control:
- Spaces after control keyworks (if(..) vs if (..))
- Spaces in empty parentheses (f( ) vs f())
- Spaces in c-style casts (( int )1.0 vs (int)1.0)
- Spaces in other parentheses (f(a) vs f( a ))

Patch by Joe Hermaszewski. Thank you for working on this!

llvm-svn: 188793

10 years agoARCMigrate depends on the static analyzer.
Benjamin Kramer [Tue, 20 Aug 2013 12:33:59 +0000 (12:33 +0000)]
ARCMigrate depends on the static analyzer.

llvm-svn: 188792

10 years agocpp11-migrate: Add a class to support include directives modifications
Guillaume Papin [Tue, 20 Aug 2013 12:30:26 +0000 (12:30 +0000)]
cpp11-migrate: Add a class to support include directives modifications

The IncludeDirectives class helps with detecting and modifying #include
directives. For now it allows the users to add angled-includes in a source file.
This is a start for this class that will evolve in the future to add more
functionality.

This should fix the reverted commit r188610 (buildbot failures on Windows).

llvm-svn: 188791

10 years agoclang/test/Driver/cl-options.c: Remove the feature "clang-driver". It has been workin...
NAKAMURA Takumi [Tue, 20 Aug 2013 12:16:48 +0000 (12:16 +0000)]
clang/test/Driver/cl-options.c: Remove the feature "clang-driver". It has been working since r188331.

llvm-svn: 188790

10 years agoclang/test/Driver: Remove the feature "clang-driver" since gcc-as has not been used...
NAKAMURA Takumi [Tue, 20 Aug 2013 12:16:42 +0000 (12:16 +0000)]
clang/test/Driver: Remove the feature "clang-driver" since gcc-as has not been used with -integrated-as since r177360.

llvm-svn: 188789

10 years agoclang/test/Driver: Remove the feature "clang-driver" in three tests since they might...
NAKAMURA Takumi [Tue, 20 Aug 2013 12:16:35 +0000 (12:16 +0000)]
clang/test/Driver: Remove the feature "clang-driver" in three tests since they might work as expected since their first commit.

llvm-svn: 188788

10 years agoAVX-512: Added more patterns for VMOVSS, VMOVSD, VMOVD, VMOVQ
Elena Demikhovsky [Tue, 20 Aug 2013 11:00:29 +0000 (11:00 +0000)]
AVX-512: Added more patterns for VMOVSS, VMOVSD, VMOVD, VMOVQ

llvm-svn: 188786

10 years ago[mips][msa] Added fexdo, fexup[lr] builtins
Daniel Sanders [Tue, 20 Aug 2013 09:47:12 +0000 (09:47 +0000)]
[mips][msa] Added fexdo, fexup[lr] builtins

llvm-svn: 188784

10 years ago[mips][msa] Removed fcge, fcgt, fsge, fsgt
Daniel Sanders [Tue, 20 Aug 2013 09:41:47 +0000 (09:41 +0000)]
[mips][msa] Removed fcge, fcgt, fsge, fsgt

These instructions were present in a draft spec but were removed before
publication.

llvm-svn: 188782

10 years ago[SystemZ] Update README
Richard Sandiford [Tue, 20 Aug 2013 09:40:35 +0000 (09:40 +0000)]
[SystemZ] Update README

We now use MVST, CLST and SRST for the obvious cases.

llvm-svn: 188781

10 years ago[SystemZ] Use SRST to optimize memchr
Richard Sandiford [Tue, 20 Aug 2013 09:38:48 +0000 (09:38 +0000)]
[SystemZ] Use SRST to optimize memchr

SystemZTargetLowering::emitStringWrapper() previously loaded the character
into R0 before the loop and made R0 live on entry.  I'd forgotten that
allocatable registers weren't allowed to be live across blocks at this stage,
and it confused LiveVariables enough to cause a miscompilation of f3 in
memchr-02.ll.

This patch instead loads R0 in the loop and leaves LICM to hoist it
after RA.  This is actually what I'd tried originally, but I went for
the manual optimisation after noticing that R0 often wasn't being hoisted.
This bug forced me to go back and look at why, now fixed as r188774.

We should also try to optimize null checks so that they test the CC result
of the SRST directly.  The select between null and the SRST GPR result could
then usually be deleted as dead.

llvm-svn: 188779

10 years agomemcmp is not a valid way to compare structs with padding in them.
Benjamin Kramer [Tue, 20 Aug 2013 09:27:31 +0000 (09:27 +0000)]
memcmp is not a valid way to compare structs with padding in them.

llvm-svn: 188778

10 years ago[mips][msa] Added insve
Daniel Sanders [Tue, 20 Aug 2013 09:22:54 +0000 (09:22 +0000)]
[mips][msa] Added insve

llvm-svn: 188777

10 years agoFix crash when connecting to gdbserver without loading a file first.
Ed Maste [Tue, 20 Aug 2013 09:17:13 +0000 (09:17 +0000)]
Fix crash when connecting to gdbserver without loading a file first.

Patch from Abid, Hafiz.

llvm-svn: 188776

10 years agoFix test typo and add usual "br %r14" test
Richard Sandiford [Tue, 20 Aug 2013 09:14:46 +0000 (09:14 +0000)]
Fix test typo and add usual "br %r14" test

llvm-svn: 188775

10 years agoFix overly pessimistic shortcut in post-RA MachineLICM
Richard Sandiford [Tue, 20 Aug 2013 09:11:13 +0000 (09:11 +0000)]
Fix overly pessimistic shortcut in post-RA MachineLICM

Post-RA LICM keeps three sets of registers: PhysRegDefs, PhysRegClobbers
and TermRegs.  When it sees a definition of R it adds all aliases of R
to the corresponding set, so that when it needs to test for membership
it only needs to test a single register, rather than worrying about
aliases there too.  E.g. the final candidate loop just has:

    unsigned Def = Candidates[i].Def;
    if (!PhysRegClobbers.test(Def) && ...) {

to test whether register Def is multiply defined.

However, there was also a shortcut in ProcessMI to make sure we didn't
add candidates if we already knew that they would fail the final test.
This shortcut was more pessimistic than the final one because it
checked whether _any alias_ of the defined register was multiply defined.
This is too conservative for targets that define register pairs.
E.g. on z, R0 and R1 are sometimes used as a pair, so there is a
128-bit register that aliases both R0 and R1.  If a loop used
R0 and R1 independently, and the definition of R0 came first,
we would be able to hoist the R0 assignment (because that used
the final test quoted above) but not the R1 assignment (because
that meant we had two definitions of the paired R0/R1 register
and would fail the shortcut in ProcessMI).

This patch just uses the same check for the ProcessMI shortcut as
we use in the final candidate loop.

llvm-svn: 188774

10 years agoARM: implement some simple f64 materializations.
Tim Northover [Tue, 20 Aug 2013 08:57:11 +0000 (08:57 +0000)]
ARM: implement some simple f64 materializations.

Previously we used a const-pool load for virtually all 64-bit floating values.
Actually, we can get quite a few common values (including 0.0, 1.0) via "vmov"
instructions of one stripe or another.

llvm-svn: 188773

10 years ago[stackprotector] Small cleanup.
Michael Gottesman [Tue, 20 Aug 2013 08:56:28 +0000 (08:56 +0000)]
[stackprotector] Small cleanup.

llvm-svn: 188772

10 years ago[stackprotector] Small Bit of computation hoisting.
Michael Gottesman [Tue, 20 Aug 2013 08:56:26 +0000 (08:56 +0000)]
[stackprotector] Small Bit of computation hoisting.

llvm-svn: 188771

10 years ago[stackprotector] Added significantly longer comment to FindPotentialTailCall to make...
Michael Gottesman [Tue, 20 Aug 2013 08:56:23 +0000 (08:56 +0000)]
[stackprotector] Added significantly longer comment to FindPotentialTailCall to make clear its relationship to llvm::isInTailCallPosition.

llvm-svn: 188770

10 years agoRemoved trailing whitespace.
Michael Gottesman [Tue, 20 Aug 2013 08:46:16 +0000 (08:46 +0000)]
Removed trailing whitespace.

llvm-svn: 188769

10 years ago[stackprotector] Removed stale TODO.
Michael Gottesman [Tue, 20 Aug 2013 08:46:13 +0000 (08:46 +0000)]
[stackprotector] Removed stale TODO.

llvm-svn: 188768

10 years ago[mips][msa] Added and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v
Daniel Sanders [Tue, 20 Aug 2013 08:38:21 +0000 (08:38 +0000)]
[mips][msa] Added and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v

llvm-svn: 188767

10 years ago[stackprotector] Added support for emitting the llvm intrinsic stack protector check.
Michael Gottesman [Tue, 20 Aug 2013 08:36:53 +0000 (08:36 +0000)]
[stackprotector] Added support for emitting the llvm intrinsic stack protector check.

rdar://13935163

llvm-svn: 188766

10 years ago[stackprotector] Refactor out the end of isInTailCallPosition into the function retur...
Michael Gottesman [Tue, 20 Aug 2013 08:36:50 +0000 (08:36 +0000)]
[stackprotector] Refactor out the end of isInTailCallPosition into the function returnTypeIsEligibleForTailCall.

This allows me to use returnTypeIsEligibleForTailCall in the stack protector pass.

rdar://13935163

llvm-svn: 188765