platform/upstream/llvm.git
10 years agoInclude string.h for memset() prototype. Thanks Dmitri.
Jason Molenda [Sat, 29 Mar 2014 19:29:04 +0000 (19:29 +0000)]
Include string.h for memset() prototype.  Thanks Dmitri.

llvm-svn: 205115

10 years agoDetemplatize LOHDirective.
Benjamin Kramer [Sat, 29 Mar 2014 19:21:20 +0000 (19:21 +0000)]
Detemplatize LOHDirective.

The ARM64 backend uses it only as a container to keep an MCLOHType and
Arguments around so give it its own little copy. The other functionality
isn't used and we had a crazy method specialization hack in place to
keep it working. Unfortunately that was incompatible with MSVC.

Also range-ify a couple of loops while at it.

llvm-svn: 205114

10 years agolldb arm64 import.
Jason Molenda [Sat, 29 Mar 2014 18:54:20 +0000 (18:54 +0000)]
lldb arm64 import.

These changes were written by Greg Clayton, Jim Ingham, Jason Molenda.

It builds cleanly against TOT llvm with xcodebuild.  I updated the
cmake files by visual inspection but did not try a build.  I haven't
built these sources on any non-Mac platforms - I don't think this
patch adds any code that requires darwin, but please let me know if
I missed something.

In debugserver, MachProcess.cpp and MachTask.cpp were renamed to
MachProcess.mm and MachTask.mm as they picked up some new Objective-C
code needed to launch processes when running on iOS.

llvm-svn: 205113

10 years agoARM64: Remove unused helper function, make others static.
Benjamin Kramer [Sat, 29 Mar 2014 18:00:49 +0000 (18:00 +0000)]
ARM64: Remove unused helper function, make others static.

llvm-svn: 205112

10 years agoInstall: add arm_neon.h header back
Tim Northover [Sat, 29 Mar 2014 17:35:34 +0000 (17:35 +0000)]
Install: add arm_neon.h header back

I'd gone too far pruning aarch64_simd.h this time and took out one
instance of arm_neon.h. This should restore us to the status quo.

llvm-svn: 205111

10 years agotblgen: Twinify PrintFatalError.
Benjamin Kramer [Sat, 29 Mar 2014 17:17:15 +0000 (17:17 +0000)]
tblgen: Twinify PrintFatalError.

No functionality change.

llvm-svn: 205110

10 years agoTableGen: don't save a StringRef to a local std::string.
Tim Northover [Sat, 29 Mar 2014 16:59:27 +0000 (16:59 +0000)]
TableGen: don't save a StringRef to a local std::string.

This caused a failure in some Windows builds.

llvm-svn: 205109

10 years agoAvoid storing Twines.
Benjamin Kramer [Sat, 29 Mar 2014 16:54:29 +0000 (16:54 +0000)]
Avoid storing Twines.

While there nested ifs into a helper function. No functionality change.

llvm-svn: 205108

10 years agoAvoid a local Twine variable.
Benjamin Kramer [Sat, 29 Mar 2014 16:54:24 +0000 (16:54 +0000)]
Avoid a local Twine variable.

Harmless in this case but potentially dangerous if it gets extended some day.

llvm-svn: 205107

10 years ago[PowerPC] Handle v2i64 comparisons
Hal Finkel [Sat, 29 Mar 2014 16:04:40 +0000 (16:04 +0000)]
[PowerPC] Handle v2i64 comparisons

v2i64 is a legal type under VSX, however we don't have native vector
comparisons. We can handle eq/ne by casting it to an Altivec type, but
everything else must be expanded.

llvm-svn: 205106

10 years agoARM64: format register strings without creating a local Twine.
Tim Northover [Sat, 29 Mar 2014 15:35:57 +0000 (15:35 +0000)]
ARM64: format register strings without creating a local Twine.

It was causing horrible failures on some build-bots.

llvm-svn: 205105

10 years agoARM64: Fix GCC warning in CGBuiltin.cpp
Tim Northover [Sat, 29 Mar 2014 15:26:07 +0000 (15:26 +0000)]
ARM64: Fix GCC warning in CGBuiltin.cpp

llvm-svn: 205104

10 years agoRemove stray references to aarch64_simd.h
Tim Northover [Sat, 29 Mar 2014 15:21:06 +0000 (15:21 +0000)]
Remove stray references to aarch64_simd.h

They were causing the autotools builds to fail.

llvm-svn: 205103

10 years agollvm-mc: Fix build breakage caused by r205050.
Logan Chien [Sat, 29 Mar 2014 15:10:22 +0000 (15:10 +0000)]
llvm-mc: Fix build breakage caused by r205050.

When LLVM is not built with zlib, nocompression.s will test
for the error message.  But this test case will cause breakage
because the exit code is non-zero.  This commit fix this issue
by adding "not" to the command.

llvm-svn: 205102

10 years agoCodeGen: Allow different RTTI emission strategies
Tim Northover [Sat, 29 Mar 2014 15:09:55 +0000 (15:09 +0000)]
CodeGen: Allow different RTTI emission strategies

Some ABIs and C++ libraries may make different trade-offs in how RTTI
is emitted (currently with respect to visibility and so on). This
implements one scheme, as used by ARM64.

llvm-svn: 205101

10 years agoARM64: initial clang support commit.
Tim Northover [Sat, 29 Mar 2014 15:09:45 +0000 (15:09 +0000)]
ARM64: initial clang support commit.

This adds Clang support for the ARM64 backend. There are definitely
still some rough edges, so please bring up any issues you see with
this patch.

As with the LLVM commit though, we think it'll be more useful for
merging with AArch64 from within the tree.

llvm-svn: 205100

10 years agoCodeGen: Don't crash when replacing functions
David Majnemer [Sat, 29 Mar 2014 14:19:55 +0000 (14:19 +0000)]
CodeGen: Don't crash when replacing functions

The peculiarities of C99 create scenario where an LLVM IR function
declaration may need to be replaced with a definition baring a different
type because the prototype and definition are not required to agree.

However, we were not properly deferring this when it occurred.

This fixes PR19280.

llvm-svn: 205099

10 years agoARM64: parametrise IVar offset type (long on ARM64, int elsewhere).
Tim Northover [Sat, 29 Mar 2014 13:42:40 +0000 (13:42 +0000)]
ARM64: parametrise IVar offset type (long on ARM64, int elsewhere).

This is part of the ARM64 patch, but can only be tested properly when
the full codegen gets committed.

llvm-svn: 205098

10 years agoObjC: allow targets to decide when to use stret for blocks.
Tim Northover [Sat, 29 Mar 2014 13:28:05 +0000 (13:28 +0000)]
ObjC: allow targets to decide when to use stret for blocks.

This was originally part of the ARM64 patch, but seems semantically
separate.

llvm-svn: 205097

10 years ago[PowerPC] VSX instruction latency corrections
Hal Finkel [Sat, 29 Mar 2014 13:20:31 +0000 (13:20 +0000)]
[PowerPC] VSX instruction latency corrections

The vector divide and sqrt instructions have high latencies, and the scalar
comparisons are like all of the others. On the P7, permutations take an extra
cycle over purely-simple vector ops.

llvm-svn: 205096

10 years agoDriver: implement addClangWarningOptions
Tim Northover [Sat, 29 Mar 2014 13:16:12 +0000 (13:16 +0000)]
Driver: implement addClangWarningOptions

This function allows certain platforms to enable or disable diagnostics
by default.

llvm-svn: 205095

10 years agoRecommitted fix for PR18931, with extended tests set.
Stepan Dyatkovskiy [Sat, 29 Mar 2014 13:12:40 +0000 (13:12 +0000)]
Recommitted fix for PR18931, with extended tests set.
Issue subject: Crash using integrated assembler with immediate arithmetic

Fix description:
Expressions like 'cmp r0, #(l1 - l2) >> 3' could not be evaluated on asm parsing stage,
since it is impossible to resolve labels on this stage. In the end of stage we still have
expression (MCExpr).
Then, when we want to encode it, we expect it to be an immediate, but it still an expression.
Patch introduces a Fixup (MCFixup instance), that is processed after main encoding stage.

llvm-svn: 205094

10 years agoARM64: use 64-bit constant even on 32-bit machines
Tim Northover [Sat, 29 Mar 2014 11:51:49 +0000 (11:51 +0000)]
ARM64: use 64-bit constant even on 32-bit machines

Another existing bot failure so no tests.

llvm-svn: 205093

10 years agoARM64: change format specifier to work on 32-bit targets
Tim Northover [Sat, 29 Mar 2014 11:47:07 +0000 (11:47 +0000)]
ARM64: change format specifier to work on 32-bit targets

Existing tests were failing.

llvm-svn: 205092

10 years ago[ARM64] Fix 'assert("...")' to be 'assert(0 && "...")'. Otherwise, it is
Chandler Carruth [Sat, 29 Mar 2014 11:07:40 +0000 (11:07 +0000)]
[ARM64] Fix 'assert("...")' to be 'assert(0 && "...")'. Otherwise, it is
no assert at all. ;] Some of these should probably be switched to
llvm_unreachable, but I didn't want to perturb the behavior in this
patch.

Found by -Wstring-conversion, which I'll try to turn on in CMake builds
at least as it is finding useful things.

llvm-svn: 205091

10 years agoARM64: initial backend import
Tim Northover [Sat, 29 Mar 2014 10:18:08 +0000 (10:18 +0000)]
ARM64: initial backend import

This adds a second implementation of the AArch64 architecture to LLVM,
accessible in parallel via the "arm64" triple. The plan over the
coming weeks & months is to merge the two into a single backend,
during which time thorough code review should naturally occur.

Everything will be easier with the target in-tree though, hence this
commit.

llvm-svn: 205090

10 years agoTableGen: avoid dereferencing nullptr variable
Tim Northover [Sat, 29 Mar 2014 09:03:22 +0000 (09:03 +0000)]
TableGen: avoid dereferencing nullptr variable

ARM64 ended up reaching odder parts of TableGen alias generation than
current backends and caused a segfault.

llvm-svn: 205089

10 years agoCodeGen: add sensible defaults for the ISD::FROUND operation
Tim Northover [Sat, 29 Mar 2014 09:03:18 +0000 (09:03 +0000)]
CodeGen: add sensible defaults for the ISD::FROUND operation

Some exotic types didn't know how to handle FROUND, which ARM64 uses.

llvm-svn: 205088

10 years agoMC-exceptions: add support for compact-unwind without .eh_frame
Tim Northover [Sat, 29 Mar 2014 09:03:13 +0000 (09:03 +0000)]
MC-exceptions: add support for compact-unwind without .eh_frame

ARM64 has compact-unwind information, but doesn't necessarily want to
emit .eh_frame directives as well. This teaches MC about such a
situation so that it will skip .eh_frame info when compact unwind has
been successfully produced.

For functions incompatible with compact unwind, the normal information
is still written.

llvm-svn: 205087

10 years agoCodeGenPrep: wrangle IR to exploit AArch64 tbz/tbnz inst.
Tim Northover [Sat, 29 Mar 2014 08:22:29 +0000 (08:22 +0000)]
CodeGenPrep: wrangle IR to exploit AArch64 tbz/tbnz inst.

Given IR like:
    %bit = and %val, #imm-with-1-bit-set
    %tst = icmp %bit, 0
    br i1 %tst, label %true, label %false

some targets can emit just a single instruction (tbz/tbnz in the
AArch64 case). However, with ISel acting at the basic-block level, all
three instructions need to be together for this to be possible.

This adds another transformation to CodeGenPrep to expose these
opportunities, if targets opt in via the hook.

llvm-svn: 205086

10 years agoMC: add a RefKind field to MCValue
Tim Northover [Sat, 29 Mar 2014 08:22:20 +0000 (08:22 +0000)]
MC: add a RefKind field to MCValue

This is principally to allow neater mapping of fixups to relocations
in ARM64 ELF. Without this, there isn't enough information available
to GetRelocType, leading to many more fixup_arm64_... enumerators.

llvm-svn: 205085

10 years agoMachO: Add linker-optimisation hint framework to MC.
Tim Northover [Sat, 29 Mar 2014 07:34:53 +0000 (07:34 +0000)]
MachO: Add linker-optimisation hint framework to MC.

Another part of the ARM64 backend (so tests will be following soon).
This is currently used by the linker to relax adrp/ldr pairs into nops
where possible, though could well be more broadly applicable.

llvm-svn: 205084

10 years agoMachO: actually set linker-private prefix at MC level.
Tim Northover [Sat, 29 Mar 2014 07:33:24 +0000 (07:33 +0000)]
MachO: actually set linker-private prefix at MC level.

This was accidentally omitted from r205081.

llvm-svn: 205083

10 years agoLink against the zlib solib, required to build against TOT llvm.
Jason Molenda [Sat, 29 Mar 2014 07:11:52 +0000 (07:11 +0000)]
Link against the zlib solib, required to build against TOT llvm.

llvm-svn: 205082

10 years agoMachO: allow each section to have a linker-private symbol
Tim Northover [Sat, 29 Mar 2014 07:05:06 +0000 (07:05 +0000)]
MachO: allow each section to have a linker-private symbol

The upcoming ARM64 backend doesn't have section-relative relocations,
so we give each section its own symbol to provide this functionality.
Of course, it doesn't need to appear in the final executable, so
linker-private is the best kind for this purpose.

llvm-svn: 205081

10 years agoMake GetCPISymbol a virtual method.
Tim Northover [Sat, 29 Mar 2014 07:04:59 +0000 (07:04 +0000)]
Make GetCPISymbol a virtual method.

ARM64 for iOS is going to want to emit these symbols in a
linker-private style for efficiency, but other targets probably don't
want that behaviour.

llvm-svn: 205080

10 years agoIntrinsics: add LLVMHalfElementsVectorType constraint
Tim Northover [Sat, 29 Mar 2014 07:04:54 +0000 (07:04 +0000)]
Intrinsics: add LLVMHalfElementsVectorType constraint

This is like the LLVMMatchType, except the verifier checks that the
second argument is a vector with the same base type and half the
number of elements.

This will be used by the ARM64 backend.

llvm-svn: 205079

10 years agoForgot to replace a %t1 in the previous commit.
Rafael Espindola [Sat, 29 Mar 2014 06:45:26 +0000 (06:45 +0000)]
Forgot to replace a %t1 in the previous commit.

llvm-svn: 205078

10 years agoCheck in binaries to avoid dependency on broken llvm-mc behavior.
Rafael Espindola [Sat, 29 Mar 2014 06:26:51 +0000 (06:26 +0000)]
Check in binaries to avoid dependency on broken llvm-mc behavior.

On these tests llvm-mc will convert got relocations with a symbol to section
relocations. This is invalid, since the relocation doesn't reference the symbol
itself, so its offset in a section in irrelevant.

Given the object files, these are still valid lld tests, so just run the
tests directly on the binaries.

Found by running check-lld after fixing the relocation handling in llvm-mc.

llvm-svn: 205077

10 years agoCompletely rewrite ELFObjectWriter::RecordRelocation.
Rafael Espindola [Sat, 29 Mar 2014 06:26:49 +0000 (06:26 +0000)]
Completely rewrite ELFObjectWriter::RecordRelocation.

I started trying to fix a small issue, but this code has seen a small fix too
many.

The old code was fairly convoluted. Some of the issues it had:

* It failed to check if a symbol difference was in the some section when
  converting a relocation to pcrel.
* It failed to check if the relocation was already pcrel.
* The pcrel value computation was wrong in some cases (relocation-pc.s)
* It was missing quiet a few cases where it should not convert symbol
  relocations to section relocations, leaving the backends to patch it up.
* It would not propagate the fact that it had changed a relocation to pcrel,
  requiring a quiet nasty work around in ARM.
* It was missing comments.

llvm-svn: 205076

10 years ago[PowerPC] Add subregister classes for f64 VSX values
Hal Finkel [Sat, 29 Mar 2014 05:29:01 +0000 (05:29 +0000)]
[PowerPC] Add subregister classes for f64 VSX values

We had stored both f64 values and v2f64, etc. values in the VSX registers. This
worked, but was suboptimal because we would always spill 16-byte values even
through we almost always had scalar 8-byte values. This resulted in an
increase in stack-size use, extra memory bandwidth, etc. To fix this, I've
added 64-bit subregisters of the Altivec registers, and combined those with the
existing scalar floating-point registers to form a class of VSX scalar
floating-point registers. The ABI code has also been enhanced to use this
register class and some other necessary improvements have been made.

llvm-svn: 205075

10 years ago[-Wunreachable-code] Expand paren-suppression heuristic to C++/ObjC bools.
Ted Kremenek [Sat, 29 Mar 2014 04:49:20 +0000 (04:49 +0000)]
[-Wunreachable-code] Expand paren-suppression heuristic to C++/ObjC bools.

llvm-svn: 205074

10 years ago[test] Add a triple to the test.
Argyrios Kyrtzidis [Sat, 29 Mar 2014 04:05:21 +0000 (04:05 +0000)]
[test] Add a triple to the test.

llvm-svn: 205073

10 years ago[test] Add a RUN line to get a hint on why the test is failing at the buildbots.
Argyrios Kyrtzidis [Sat, 29 Mar 2014 03:37:04 +0000 (03:37 +0000)]
[test] Add a RUN line to get a hint on why the test is failing at the buildbots.

llvm-svn: 205072

10 years ago[HeaderSearch] Make sure we clear the mapped name from the LookupFileCacheInfo when...
Argyrios Kyrtzidis [Sat, 29 Mar 2014 03:22:54 +0000 (03:22 +0000)]
[HeaderSearch] Make sure we clear the mapped name from the LookupFileCacheInfo when we reset the start point.

rdar://16462455

llvm-svn: 205071

10 years agoWindows: canonicalise the default windows triple
Saleem Abdulrasool [Sat, 29 Mar 2014 01:08:53 +0000 (01:08 +0000)]
Windows: canonicalise the default windows triple

Canonicalise the default triple that is used on Windows.  This should hopefully
fix the MSVC buildbots.

llvm-svn: 205070

10 years agoImprove -Wunreachable-code to provide a means to indicate code is intentionally marke...
Ted Kremenek [Sat, 29 Mar 2014 00:35:20 +0000 (00:35 +0000)]
Improve -Wunreachable-code to provide a means to indicate code is intentionally marked dead via if((0)).

Taking a hint from -Wparentheses, use an extra '()' as a sigil that
a dead condition is intentionally dead.  For example:

  if ((0)) { dead }

When this sigil is found, do not emit a dead code warning.  When the
analysis sees:

  if (0)

it suggests inserting '()' as a Fix-It.

llvm-svn: 205069

10 years agoPR19278: Align ASTTemplateArgumentListInfo to match its following dynamic array
Richard Smith [Fri, 28 Mar 2014 23:32:39 +0000 (23:32 +0000)]
PR19278: Align ASTTemplateArgumentListInfo to match its following dynamic array
of TemplateArgumentLocs. 'uint64_t' has higher alignment requirements than a
pointer on some platforms.

llvm-svn: 205068

10 years ago[x86] Fix printing of register operands with q modifier.
Akira Hatanaka [Fri, 28 Mar 2014 23:28:07 +0000 (23:28 +0000)]
[x86] Fix printing of register operands with q modifier.

Emit 32-bit register names instead of 64-bit register names if the target does
not have 64-bit general purpose registers.

<rdar://problem/14653996>

llvm-svn: 205067

10 years agoObjective-C. Make -Wselector-type-mismatch off by
Fariborz Jahanian [Fri, 28 Mar 2014 23:23:12 +0000 (23:23 +0000)]
Objective-C. Make -Wselector-type-mismatch off by
default until we provide a work-around for warning
suppression.

llvm-svn: 205066

10 years ago[SemaObjC] For the semantics of the designated-initializer attribute, consider that...
Argyrios Kyrtzidis [Fri, 28 Mar 2014 22:45:38 +0000 (22:45 +0000)]
[SemaObjC] For the semantics of the designated-initializer attribute, consider that the ObjC interface of the class
includes its class extensions.

This is follow-up for rdar://16305347

llvm-svn: 205065

10 years agolibclang/libIndex: USR generation: mangle source location into USRs for macros,
Dmitri Gribenko [Fri, 28 Mar 2014 22:21:26 +0000 (22:21 +0000)]
libclang/libIndex: USR generation: mangle source location into USRs for macros,
unless the macro comes from a system header

llvm-svn: 205064

10 years agoReapply "OnDiskHashTable: Use Endian.h to read little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 22:03:24 +0000 (22:03 +0000)]
Reapply "OnDiskHashTable: Use Endian.h to read little endian ostreams"

Committed this by accident before it was done last time.

Original message:

    Rather than rolling our own functions to read little endian data
    from a buffer, we can use the support in llvm's Endian.h.

    No functional change.

llvm-svn: 205062

10 years agoReapply "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 22:03:19 +0000 (22:03 +0000)]
Reapply "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"

Committed this by accident before it was done last time.

Original message:

    Rather than rolling our own functions to write little endian data
    to an ostream, we can use the support in llvm's EndianStream.h.

    No functional change.

llvm-svn: 205061

10 years agoAdd the ability from the SB API's to set the "one thread" timeout
Jim Ingham [Fri, 28 Mar 2014 21:58:28 +0000 (21:58 +0000)]
Add the ability from the SB API's to set the "one thread" timeout
for expression evaluations that try one and then all threads.

<rdar://problem/15598528>

llvm-svn: 205060

10 years agoDebug Compression: Avoid compression debug_frame for now
David Blaikie [Fri, 28 Mar 2014 21:48:31 +0000 (21:48 +0000)]
Debug Compression: Avoid compression debug_frame for now

Turns out debug_frame does use multiple fragments, so it doesn't
compress correctly with the current approach. Disable compressing it for
now while I figure out what's the best solution for it.

llvm-svn: 205059

10 years agoX86: Disable IsLegalToCallImmediateAddr for Win32
David Majnemer [Fri, 28 Mar 2014 21:40:47 +0000 (21:40 +0000)]
X86: Disable IsLegalToCallImmediateAddr for Win32

WinCOFF cannot form PC relative relocations to support absolute
MCValues.  We should reenable this once WinCOFF supports emission of
IMAGE_REL_I386_REL32 relocations.

This fixes PR19272.

llvm-svn: 205058

10 years ago[MachO] Remove "virtual" and add "override".
Rui Ueyama [Fri, 28 Mar 2014 21:36:33 +0000 (21:36 +0000)]
[MachO] Remove "virtual" and add "override".

llvm-svn: 205057

10 years ago[ELF] Add "override" and remove "virtual".
Rui Ueyama [Fri, 28 Mar 2014 21:26:13 +0000 (21:26 +0000)]
[ELF] Add "override" and remove "virtual".

llvm-svn: 205056

10 years agoIntroduce M_LOG2E_F and M_LOG2E
Tom Stellard [Fri, 28 Mar 2014 21:19:03 +0000 (21:19 +0000)]
Introduce M_LOG2E_F and M_LOG2E

Patch by: Jeroen Ketema

llvm-svn: 205055

10 years agoReplace tabs by spaces
Tom Stellard [Fri, 28 Mar 2014 21:19:00 +0000 (21:19 +0000)]
Replace tabs by spaces

Patch by: Jeroen Ketema

llvm-svn: 205054

10 years agoAdd missing include (for r205050)
David Blaikie [Fri, 28 Mar 2014 21:00:25 +0000 (21:00 +0000)]
Add missing include (for r205050)

llvm-svn: 205053

10 years ago[ELF] Terminate argv with nullptr.
Rui Ueyama [Fri, 28 Mar 2014 20:51:07 +0000 (20:51 +0000)]
[ELF] Terminate argv with nullptr.

Also remove unused vector.

llvm-svn: 205052

10 years agoSimplify clang-cl's target triple setting
Hans Wennborg [Fri, 28 Mar 2014 20:49:28 +0000 (20:49 +0000)]
Simplify clang-cl's target triple setting

llvm-svn: 205051

10 years agollvm-mc: error when -compress-debug-sections is requested and zlib is not linked
David Blaikie [Fri, 28 Mar 2014 20:45:24 +0000 (20:45 +0000)]
llvm-mc: error when -compress-debug-sections is requested and zlib is not linked

This is a bit of a stab in the dark, since I have zlib on my machine.
Just going to bounce it off the bots & see if it sticks.

Do we have some convention for negative REQUIRES: checks? Or do I just
need to add a feature like I've done here?

llvm-svn: 205050

10 years agoTry to fix the cl-options.c test on ARM bots
Hans Wennborg [Fri, 28 Mar 2014 20:45:05 +0000 (20:45 +0000)]
Try to fix the cl-options.c test on ARM bots

The test was failing because clang-cl changes the default triple
to target MSVC-style Win32. This is kind of wonky, but hasn't been
a problem until we started warning:

  warning: unknown platform, assuming -mfloat-abi=soft

Some of the tests in cl-options.c were running with -Werror, causing them
to fail.

Fixing this by FileCheck-ifying those tests instead of using -Werror.

llvm-svn: 205049

10 years agoRevert "OnDiskHashTable: Use Endian.h to read little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 20:32:17 +0000 (20:32 +0000)]
Revert "OnDiskHashTable: Use Endian.h to read little endian ostreams"

This reverts commit r205045.

llvm-svn: 205048

10 years agoRevert "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 20:32:11 +0000 (20:32 +0000)]
Revert "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"

This reverts commit r205044.

llvm-svn: 205047

10 years ago[PowerPC] Fix VSX permutation isel
Hal Finkel [Fri, 28 Mar 2014 20:24:55 +0000 (20:24 +0000)]
[PowerPC] Fix VSX permutation isel

Not only did I invert the indices when I wrote the code, but I also did the
same thing when I wrote the regression test. Oops.

llvm-svn: 205046

10 years agoOnDiskHashTable: Use Endian.h to read little endian ostreams
Justin Bogner [Fri, 28 Mar 2014 20:04:01 +0000 (20:04 +0000)]
OnDiskHashTable: Use Endian.h to read little endian ostreams

Rather than rolling our own functions to read little endian data from
a buffer, we can use the support in llvm's Endian.h.

No functional change.

llvm-svn: 205045

10 years agoOnDiskHashTable: Use EndianStream.h to write little endian ostreams
Justin Bogner [Fri, 28 Mar 2014 20:03:54 +0000 (20:03 +0000)]
OnDiskHashTable: Use EndianStream.h to write little endian ostreams

Rather than rolling our own functions to write little endian data to
an ostream, we can use the support in llvm's EndianStream.h.

No functional change.

llvm-svn: 205044

10 years agoWait for the reply from the 'D' detach packet before tearing down the debugger. ...
Jim Ingham [Fri, 28 Mar 2014 20:00:07 +0000 (20:00 +0000)]
Wait for the reply from the 'D' detach packet before tearing down the debugger.  Avoids a race
condition where we could end up killing debugserver (and thus the target) before it had a chance
to detach.
Also fix debugserver to send the OK AFTER it detaches to avoid the same race condition.

<rdar://problem/16202713>

llvm-svn: 205043

10 years agoConvert one last llc -filetype=obj test.
Rafael Espindola [Fri, 28 Mar 2014 19:58:24 +0000 (19:58 +0000)]
Convert one last llc -filetype=obj test.

Unfortunately this one fails deep inside the mips backend, so xfail it.

llvm-svn: 205042

10 years ago[PowerPC] v2[fi]64 need to be explicitly passed in VSX registers
Hal Finkel [Fri, 28 Mar 2014 19:58:11 +0000 (19:58 +0000)]
[PowerPC] v2[fi]64 need to be explicitly passed in VSX registers

v2[fi]64 values need to be explicitly passed in VSX registers. This is because
the code in TRI that finds the minimal register class given a register and a
value type will assert if given an Altivec register and a non-Altivec type.

llvm-svn: 205041

10 years agoConvert llc -filetype=obj test.
Rafael Espindola [Fri, 28 Mar 2014 19:41:33 +0000 (19:41 +0000)]
Convert llc -filetype=obj test.

llvm-svn: 205040

10 years agoConvert llc -filetype=obj test.
Rafael Espindola [Fri, 28 Mar 2014 19:38:20 +0000 (19:38 +0000)]
Convert llc -filetype=obj test.

llvm-svn: 205039

10 years ago[ELF] Support response file.
Rui Ueyama [Fri, 28 Mar 2014 19:34:34 +0000 (19:34 +0000)]
[ELF] Support response file.

Response file is a command line argument in the form of @file. The GNU-
compatible driver expands the file contents, replacing @file argument.

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

llvm-svn: 205038

10 years agoUse constexpr again, this time portably
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 19:27:37 +0000 (19:27 +0000)]
Use constexpr again, this time portably

Responding to Justin's review of r205025.

llvm-svn: 205037

10 years agoRemove bogus test.
Rafael Espindola [Fri, 28 Mar 2014 19:26:05 +0000 (19:26 +0000)]
Remove bogus test.

It was using "lc  -filetype=obj" just to pass the result to
"llvm-objdupm -disassemble" and then filecheck assembly.

The CHECK-NOT would never match anyway since it was missing $.

llvm-svn: 205036

10 years agoDocumentation: remove a spurious '1' and wrap to 80 columns
Dmitri Gribenko [Fri, 28 Mar 2014 19:25:09 +0000 (19:25 +0000)]
Documentation: remove a spurious '1' and wrap to 80 columns

llvm-svn: 205035

10 years agoAttempt to unbreak buildbots.
Rui Ueyama [Fri, 28 Mar 2014 19:23:13 +0000 (19:23 +0000)]
Attempt to unbreak buildbots.

llvm-svn: 205034

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Fri, 28 Mar 2014 19:19:28 +0000 (19:19 +0000)]
Convert another llc -filetype=obj test.

llvm-svn: 205033

10 years agoSupport: Functions for writing endian specific data to streams.
Justin Bogner [Fri, 28 Mar 2014 19:14:43 +0000 (19:14 +0000)]
Support: Functions for writing endian specific data to streams.

This adds a new header, EndianStream.h, which supplies an adaptor for
writing endian specific data to a raw_ostream.

llvm-svn: 205032

10 years agoMap ELf flags back to more specific section kinds.
Rafael Espindola [Fri, 28 Mar 2014 19:14:08 +0000 (19:14 +0000)]
Map ELf flags back to more specific section kinds.

With that, convert another llc -filetype=obj test.

llvm-svn: 205031

10 years agoDocument module.private.modulemap and module_private.map.
Douglas Gregor [Fri, 28 Mar 2014 19:05:18 +0000 (19:05 +0000)]
Document module.private.modulemap and module_private.map.

Requested in <rdar://problem/16188740>.

llvm-svn: 205030

10 years ago[ELF] Support --defsym option to define an absolute symbol.
Rui Ueyama [Fri, 28 Mar 2014 19:02:06 +0000 (19:02 +0000)]
[ELF] Support --defsym option to define an absolute symbol.

This patch is to support --defsym option for ELF file format/GNU-compatible
driver. Currently it takes a symbol name followed by '=' and a number. If such
option is given, the driver sets up an absolute symbol with the specified
address. You can specify multiple --defsym options to define multiple symbols.

GNU LD's --defsym provides many more features. For example, it allows users to
specify another symbol name instead of a number to define a symbol alias, or it
even allows a symbol plus an offset (e.g. --defsym=foo+3) to define symbol-
relative alias. This patch does not support that, but will be supported in
subsequent patches.

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

llvm-svn: 205029

10 years agoParse .gpdword and convert another llc -filetype=obj test.
Rafael Espindola [Fri, 28 Mar 2014 18:50:26 +0000 (18:50 +0000)]
Parse .gpdword and convert another llc -filetype=obj test.

llvm-svn: 205028

10 years agoconvert another llc -filetype=obj test.
Rafael Espindola [Fri, 28 Mar 2014 18:34:31 +0000 (18:34 +0000)]
convert another llc -filetype=obj test.

llvm-svn: 205027

10 years agoConvert "llc -filetype=obj" test into llvm-mc tests.
Rafael Espindola [Fri, 28 Mar 2014 18:30:07 +0000 (18:30 +0000)]
Convert "llc -filetype=obj" test into llvm-mc tests.

llvm-svn: 205026

10 years agoInstrProf: Fix MSVC after r205023
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 18:22:26 +0000 (18:22 +0000)]
InstrProf: Fix MSVC after r205023

llvm-svn: 205025

10 years agoObjective-C. revert r204965. This will make
Fariborz Jahanian [Fri, 28 Mar 2014 18:22:16 +0000 (18:22 +0000)]
Objective-C. revert r204965. This will make
-Wselector-type-mismatch default again. After
internal discussions, we think that in most cases
it has helped our developers find hard to detect
undefined behaviors. We are going to provide a syntax
(and fix-it) to suppress the warning in remaining of
false positive cases.

llvm-svn: 205024

10 years agoInstrProf: Emit runtime hook directly in IRGen
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 17:53:22 +0000 (17:53 +0000)]
InstrProf: Emit runtime hook directly in IRGen

-u behaviour is apparently not portable between linkers (see cfe-commits
discussions for r204379 and r205012).  I've moved the logic to IRGen,
where it should have been in the first place.

I don't have a Linux system to test this on, so it's possible this logic
*still* doesn't pull in the instrumented profiling runtime on Linux.

I'm in the process of getting tests going on the compiler-rt side
(llvm-commits "[PATCH] InstrProf: Add initial compiler-rt test").  Once
we have tests for the full flow there, the runtime logic should get a
whole lot less brittle.

<rdar://problem/16458307>

llvm-svn: 205023

10 years agoRevert "Link in profile library on Linux using --whole-archive"
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 17:53:17 +0000 (17:53 +0000)]
Revert "Link in profile library on Linux using --whole-archive"

This reverts commit r205012.

llvm-svn: 205022

10 years agoFix a FIXME, use std::move.
Richard Smith [Fri, 28 Mar 2014 17:31:23 +0000 (17:31 +0000)]
Fix a FIXME, use std::move.

llvm-svn: 205021

10 years agoSLPVectorizer: Take credit for free extractelement instructions
Arnold Schwaighofer [Fri, 28 Mar 2014 17:21:32 +0000 (17:21 +0000)]
SLPVectorizer: Take credit for free extractelement instructions

Extract element instructions that will be removed when vectorzing lower the
cost.

Patch by Arch D. Robison!

llvm-svn: 205020

10 years agoSLPVectorizer: Fix typos
Arnold Schwaighofer [Fri, 28 Mar 2014 17:21:27 +0000 (17:21 +0000)]
SLPVectorizer: Fix typos

Patch by Arch D. Robison!

llvm-svn: 205019

10 years agoSLPVectorizer: Ignore users that are insertelements we can reschedule them
Arnold Schwaighofer [Fri, 28 Mar 2014 17:21:22 +0000 (17:21 +0000)]
SLPVectorizer: Ignore users that are insertelements we can reschedule them

Patch by Arch D. Robison!

llvm-svn: 205018

10 years agoException handling docs: Clarify how the llvm.eh.* intrinsics are used
Mark Seaborn [Fri, 28 Mar 2014 17:08:57 +0000 (17:08 +0000)]
Exception handling docs: Clarify how the llvm.eh.* intrinsics are used

The non-SJLJ and SJLJ intrinsics are generated by the frontend and
backend respectively.

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

llvm-svn: 205017

10 years agoOnly test compression when linked with zlib.
David Blaikie [Fri, 28 Mar 2014 17:04:53 +0000 (17:04 +0000)]
Only test compression when linked with zlib.

I'll implement error handling and a negative test in both llvm-mc and
Clang soon.

llvm-svn: 205016

10 years ago[ELF] Add --allow-multiple-definition option.
Rui Ueyama [Fri, 28 Mar 2014 16:26:38 +0000 (16:26 +0000)]
[ELF] Add --allow-multiple-definition option.

If --allow-multiple-definition option is given, LLD does not treat duplicate
symbol error as a fatal error. GNU LD supports this option.

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

llvm-svn: 205015