Jason Molenda [Sat, 29 Mar 2014 19:29:04 +0000 (19:29 +0000)]
Include string.h for memset() prototype. Thanks Dmitri.
llvm-svn: 205115
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
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
Benjamin Kramer [Sat, 29 Mar 2014 18:00:49 +0000 (18:00 +0000)]
ARM64: Remove unused helper function, make others static.
llvm-svn: 205112
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
Benjamin Kramer [Sat, 29 Mar 2014 17:17:15 +0000 (17:17 +0000)]
tblgen: Twinify PrintFatalError.
No functionality change.
llvm-svn: 205110
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
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
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
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
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
Tim Northover [Sat, 29 Mar 2014 15:26:07 +0000 (15:26 +0000)]
ARM64: Fix GCC warning in CGBuiltin.cpp
llvm-svn: 205104
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Argyrios Kyrtzidis [Sat, 29 Mar 2014 04:05:21 +0000 (04:05 +0000)]
[test] Add a triple to the test.
llvm-svn: 205073
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Rui Ueyama [Fri, 28 Mar 2014 21:36:33 +0000 (21:36 +0000)]
[MachO] Remove "virtual" and add "override".
llvm-svn: 205057
Rui Ueyama [Fri, 28 Mar 2014 21:26:13 +0000 (21:26 +0000)]
[ELF] Add "override" and remove "virtual".
llvm-svn: 205056
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
Tom Stellard [Fri, 28 Mar 2014 21:19:00 +0000 (21:19 +0000)]
Replace tabs by spaces
Patch by: Jeroen Ketema
llvm-svn: 205054
David Blaikie [Fri, 28 Mar 2014 21:00:25 +0000 (21:00 +0000)]
Add missing include (for r205050)
llvm-svn: 205053
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
Hans Wennborg [Fri, 28 Mar 2014 20:49:28 +0000 (20:49 +0000)]
Simplify clang-cl's target triple setting
llvm-svn: 205051
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
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
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
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
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
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
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
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
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
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
Rafael Espindola [Fri, 28 Mar 2014 19:41:33 +0000 (19:41 +0000)]
Convert llc -filetype=obj test.
llvm-svn: 205040
Rafael Espindola [Fri, 28 Mar 2014 19:38:20 +0000 (19:38 +0000)]
Convert llc -filetype=obj test.
llvm-svn: 205039
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
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
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
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
Rui Ueyama [Fri, 28 Mar 2014 19:23:13 +0000 (19:23 +0000)]
Attempt to unbreak buildbots.
llvm-svn: 205034
Rafael Espindola [Fri, 28 Mar 2014 19:19:28 +0000 (19:19 +0000)]
Convert another llc -filetype=obj test.
llvm-svn: 205033
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
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
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
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
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
Rafael Espindola [Fri, 28 Mar 2014 18:34:31 +0000 (18:34 +0000)]
convert another llc -filetype=obj test.
llvm-svn: 205027
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
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 18:22:26 +0000 (18:22 +0000)]
InstrProf: Fix MSVC after r205023
llvm-svn: 205025
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
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
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
Richard Smith [Fri, 28 Mar 2014 17:31:23 +0000 (17:31 +0000)]
Fix a FIXME, use std::move.
llvm-svn: 205021
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
Arnold Schwaighofer [Fri, 28 Mar 2014 17:21:27 +0000 (17:21 +0000)]
SLPVectorizer: Fix typos
Patch by Arch D. Robison!
llvm-svn: 205019
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
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
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
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