Simon Atanasyan [Sun, 29 Jun 2014 16:51:16 +0000 (16:51 +0000)]
[Mips] Fix MIPS ABI name in the test. The name "64" is accepted by both gcc
and Clang drivers but internally LLVM/Clang use the name "n64".
llvm-svn: 211999
NAKAMURA Takumi [Sun, 29 Jun 2014 16:00:11 +0000 (16:00 +0000)]
Revert r211866, r211895 and r211995, "Driver: use GNU::Link for the Generic_GCC toolchain". It broke users of Generic_GCC, cygwin and mingw32.
It reverts commits as follows:
r211866: "Driver: use GNU::Link for the Generic_GCC toolchain"
r211895: "Replace GetProgramPath("ld") with GetLinkerPath()."
r211995: "Driver: add a cygwin linker tool"
llvm-svn: 211998
NAKAMURA Takumi [Sun, 29 Jun 2014 11:07:48 +0000 (11:07 +0000)]
LibclangTest.cpp: s/uint/unsigned/. I think 'uint' is not a standard type.
llvm-svn: 211997
NAKAMURA Takumi [Sun, 29 Jun 2014 11:03:28 +0000 (11:03 +0000)]
clang/test/CodeGenCXX/windows-itanium-exceptions.cpp: Add REQUIRES:asserts for now.
llvm-svn: 211996
Saleem Abdulrasool [Sun, 29 Jun 2014 06:11:14 +0000 (06:11 +0000)]
Driver: add a cygwin linker tool
This adds a linker tool for the Windows cygwin environment. This linker
invocation is significantly different from the generic ld invocation. It
requires additional parameters as well as does not accept some normal
parameters. This should fix self-hosting on Cygwin.
llvm-svn: 211995
Saleem Abdulrasool [Sun, 29 Jun 2014 01:52:01 +0000 (01:52 +0000)]
MC: rename EmitWin64EH routines
Rename the routines to reflect the reality that they are more related to call
frame information than to Win64 EH. Although EH is implemented in an intertwined
manner by augmenting with an exception handler and an associated parameter, the
majority of these routines emit information required to unwind the frames. This
also helps identify that these routines are generic for most windows platforms
(they apply equally to nearly all architectures except x86) although the
encoding of the information is architecture dependent.
Unwinding data is emitted via EmitWinCFI* and exception handling information via
EmitWinEH*.
llvm-svn: 211994
Craig Topper [Sun, 29 Jun 2014 00:40:57 +0000 (00:40 +0000)]
Add ops() method to SDNode that returns an ArrayRef<SDUse>. Use it to simplify some code.
llvm-svn: 211993
Saleem Abdulrasool [Sat, 28 Jun 2014 23:34:15 +0000 (23:34 +0000)]
test: add a test for windows itanium exceptions
Some time ago, I noticed that try would get resolved incorrectly for Windows
Itanium targets. Add an explicit test to exsure that exceptions are handled
correctly for Windows Itanium environments.
llvm-svn: 211992
Saleem Abdulrasool [Sat, 28 Jun 2014 23:34:11 +0000 (23:34 +0000)]
Basic: fix handling for Windows Itanium environment
This corrects the handling for i686-windows-itanium. This environment is nearly
identical to Windows MSVC, except it uses the itanium ABI for C++.
llvm-svn: 211991
Saleem Abdulrasool [Sat, 28 Jun 2014 23:34:07 +0000 (23:34 +0000)]
Basic: whitespace cleanup
Remove unnecessary separation of anonymous namespace. NFC.
llvm-svn: 211990
Richard Trieu [Sat, 28 Jun 2014 23:25:37 +0000 (23:25 +0000)]
Extend -Wtautological-undefined-compare and -Wundefined-bool-conversion to
trigger on taking the address of a reference that is returned from a function
call.
llvm-svn: 211989
Craig Topper [Sat, 28 Jun 2014 23:22:33 +0000 (23:22 +0000)]
Import MutableArrayRef into clang namespace.
llvm-svn: 211988
Craig Topper [Sat, 28 Jun 2014 23:22:23 +0000 (23:22 +0000)]
Remove llvm:: from uses of ArrayRef.
llvm-svn: 211987
Rafael Espindola [Sat, 28 Jun 2014 18:44:59 +0000 (18:44 +0000)]
Use a range loop. No functionality change.
llvm-svn: 211986
Rafael Espindola [Sat, 28 Jun 2014 17:46:19 +0000 (17:46 +0000)]
Simplify code a bit, no functionality change.
llvm-svn: 211985
Simon Atanasyan [Sat, 28 Jun 2014 15:56:08 +0000 (15:56 +0000)]
[Driver][Mips] Fix else-after-return.
No functional changes.
llvm-svn: 211984
Simon Atanasyan [Sat, 28 Jun 2014 15:56:03 +0000 (15:56 +0000)]
[Driver][Mips] Remove redundant brackets.
No functional changes.
llvm-svn: 211983
Simon Atanasyan [Sat, 28 Jun 2014 15:55:55 +0000 (15:55 +0000)]
[Driver][Mips] Remove redundant abstract/override function.
No functional changes.
llvm-svn: 211982
Tobias Grosser [Sat, 28 Jun 2014 08:59:45 +0000 (08:59 +0000)]
[C++11] Use more range based fors
llvm-svn: 211981
Tobias Grosser [Sat, 28 Jun 2014 08:59:38 +0000 (08:59 +0000)]
Remove redundant code and use C++ range fors
llvm-svn: 211980
Alp Toker [Sat, 28 Jun 2014 06:51:27 +0000 (06:51 +0000)]
Get arm_acle tests from r211962 working
llvm-svn: 211979
Alp Toker [Sat, 28 Jun 2014 06:31:47 +0000 (06:31 +0000)]
Fix build following r211956
RuntimeDyld now uses MCInst::dump_pretty() which introduces a dependency on
'MC'.
llvm-svn: 211978
David Majnemer [Sat, 28 Jun 2014 06:24:49 +0000 (06:24 +0000)]
Verifier: Update assert message to reflect LangRef
No functionality change, just correcting the assertion message.
llvm-svn: 211977
Chandler Carruth [Sat, 28 Jun 2014 05:46:28 +0000 (05:46 +0000)]
[x86] Fix a bug in the v8i16 shuffling exposed by the new splat-like
lowering for v16i8.
ASan and some bots caught this bug with existing test cases. Fixing it
even fixed a miscompile with one of the test cases. I'm still a bit
suspicious of this test case as I've not taken a proper amount of time
to think about it, but the fix here is strict goodness.
llvm-svn: 211976
Chandler Carruth [Sat, 28 Jun 2014 05:18:49 +0000 (05:18 +0000)]
Fix this test to not write to the source tree, and instead to write to
a temporary file. This fixes the test in cases where the source tree is
mounted read-only.
llvm-svn: 211975
Chandler Carruth [Sat, 28 Jun 2014 05:16:40 +0000 (05:16 +0000)]
[x86] Add handling for splat-like widenings of v16i8 shuffles.
These show up really frequently, not the least with actual splats. =] We
lowered these quite badly before. The new code path tries to widen i8
shuffles to i16 shuffles in a splat-like way. There are still some
inefficiencies in our i16 splat logic though, so we aren't really done
here.
Also, for certain patterns (bit of a gather-and-splat) we still
generate pretty silly code, and I've left a fixme for addressing it.
However, I'm not actually worried about this code pattern as much. The
old shuffle lowering generates a 29 instruction monstrosity for it that
should execute much more slowly.
llvm-svn: 211974
David Majnemer [Sat, 28 Jun 2014 01:56:50 +0000 (01:56 +0000)]
This file wasn't supposed to be checked in
This was generated while trying to debug a test, it shouldn't have been
checked in.
Thanks to Alexander Kornienko for spotting this.
llvm-svn: 211973
Reid Kleckner [Fri, 27 Jun 2014 23:58:21 +0000 (23:58 +0000)]
Extend -Wdynamic-class-memaccess to records containing dynamic classes
Reviewers: rtrieu
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4325
llvm-svn: 211972
Lang Hames [Fri, 27 Jun 2014 23:29:18 +0000 (23:29 +0000)]
[RuntimeDyld] Make sure that RuntimeDyld regression tests only run for targets
that have been enabled.
Without this, testers will fail when llvm-rtdyld is invoked with triples for
unsupported targets.
llvm-svn: 211969
Zachary Turner [Fri, 27 Jun 2014 23:19:42 +0000 (23:19 +0000)]
Don't truncate the target triple when initializing clang.
Reviewed by: Sean Callanan
Differential Revision: http://reviews.llvm.org/D4282
llvm-svn: 211968
Matt Arsenault [Fri, 27 Jun 2014 23:11:26 +0000 (23:11 +0000)]
Revert "Temporary hack to try cleaning extra .s file from bots."
llvm-svn: 211967
Dmitry Vyukov [Fri, 27 Jun 2014 22:27:02 +0000 (22:27 +0000)]
tsan: fix and re-enable a test
llvm-svn: 211966
Todd Fiala [Fri, 27 Jun 2014 22:11:56 +0000 (22:11 +0000)]
Implemented gdb-remote protocol tests for vCont;s and vCont;s:{thread}
Also added tests for presence of vCont;c, vCont;C, vCont;s, vCont;S as
returned by vCont? query.
Broke out single step functionality from TestLldbGdbServer into base class.
Used by new TestGdbRemoteSingleStep (using $s) and TestGdbRemote_vCont.
Also part of llgs wrap-up, see:
https://github.com/tfiala/lldb/issues/12
llvm-svn: 211965
Johannes Doerfert [Fri, 27 Jun 2014 21:48:42 +0000 (21:48 +0000)]
[Fix] Deleted renamed test after r211957
llvm-svn: 211964
Matt Arsenault [Fri, 27 Jun 2014 21:43:50 +0000 (21:43 +0000)]
Temporary hack to try cleaning extra .s file from bots.
llvm-svn: 211963
Yi Kong [Fri, 27 Jun 2014 21:25:42 +0000 (21:25 +0000)]
Introduce arm_acle.h supporting existing LLVM builtin intrinsics
Summary: This patch introduces ACLE header file, implementing extensions that can be directly mapped to existing Clang intrinsics. It implements for both AArch32 and AArch64.
Reviewers: t.p.northover, compnerd, rengolin
Reviewed By: compnerd, rengolin
Subscribers: rnk, echristo, compnerd, aemerson, mroth, cfe-commits
Differential Revision: http://reviews.llvm.org/D4296
llvm-svn: 211962
Lang Hames [Fri, 27 Jun 2014 21:07:00 +0000 (21:07 +0000)]
[RuntimeDyld] Use a raw_ostream and llvm::format for int-to-string conversions.
Some users' C++11 standard libraries don't support std::to_string yet.
llvm-svn: 211961
Chad Rosier [Fri, 27 Jun 2014 21:05:09 +0000 (21:05 +0000)]
[AArch64] Fix memset ICE when memset value is f128.
llvm-svn: 211960
Justin Bogner [Fri, 27 Jun 2014 20:41:25 +0000 (20:41 +0000)]
llvm-cov: Support specifying multiple source files
Make llvm-cov compatible with gcov for cases where multiple files are
specified on the command line. That is, loop over each one and report
coverage, and report errors on stderr only rather than via return
code.
llvm-svn: 211959
Lang Hames [Fri, 27 Jun 2014 20:37:39 +0000 (20:37 +0000)]
[RuntimeDyld] #include <cctype> header in RuntimeDyldChecker.cpp.
Hopefully this will unbreak the windows bots.
llvm-svn: 211958
Johannes Doerfert [Fri, 27 Jun 2014 20:31:28 +0000 (20:31 +0000)]
Allow multiple reductions per statement
Iterate over all store memory accesses and check for valid binary reduction
candidate loads by following the operands of the stored value. For each
candidate pair we check if they have the same base address and there are no
other accesses which may overlap with them. This ensures that no intermediate
value can escape into other memory locations or is overwritten at some point.
+ 17 test cases for reduction detection and reduction dependency modeling
llvm-svn: 211957
Lang Hames [Fri, 27 Jun 2014 20:20:57 +0000 (20:20 +0000)]
[RuntimeDyld] Add a framework for testing relocation logic in RuntimeDyld.
This patch adds a "-verify" mode to the llvm-rtdyld utility. In verify mode,
llvm-rtdyld will test supplied expressions against the linked program images
that it creates in memory. This scheme can be used to verify the correctness
of the relocation logic applied by RuntimeDyld.
The expressions to test will be read out of files passed via the -check option
(there may be more than one of these). Expressions to check are extracted from
lines of the form:
# rtdyld-check: <expression>
This system is designed to fit the llvm-lit regression test workflow. It is
format and target agnostic, and supports verification of images linked for
remote targets. The expression language is defined in
llvm/include/llvm/RuntimeDyldChecker.h . Examples can be found in
test/ExecutionEngine/RuntimeDyld.
llvm-svn: 211956
Chandler Carruth [Fri, 27 Jun 2014 20:07:40 +0000 (20:07 +0000)]
[x86] Fix another bug hit when bootstrapping with the new shuffle
lowering.
For maximum irony, I had already discovered this bug, diagnosed it, and
left FIXMEs about it in the test cases. =[ I just failed to go back over
those until after i had reduced a bootstrap miscompile down to a single
TU, stared at the assembly for an hour, and figured out the bug. Again.
Oh well.
llvm-svn: 211955
Todd Fiala [Fri, 27 Jun 2014 20:07:03 +0000 (20:07 +0000)]
Updated ObjectFileELF tests to include more varaints.
Removed the distribution EXEs from FreeBSD and Ubuntu.
Added a hello-world .cpp file, and compiled it for
several platform/compiler variants:
Ubuntu 14.04 x86_64, clang 3.5 (the ubuntu1 3.5 pre variant)
Ubuntu 14.04 x86_64, gcc 4.8.2
FreeBSD 10.0 x86_64, clang 3.3
FreeBSD 10.0 x86_64, gcc 4.7.3
NetBSD 6.1 x86_64, gcc 4.5.3
I also added the NetBSD expected architecture and triple.
Note I have NetBSD not appending the version info to the
OS name, in contrast to FreeBSD.
llvm-svn: 211954
Aaron Ballman [Fri, 27 Jun 2014 19:52:34 +0000 (19:52 +0000)]
Reverting r211950 -- it did not help resolve the -Wcomment warnings triggered in GCC.
llvm-svn: 211953
Justin Holewinski [Fri, 27 Jun 2014 19:36:25 +0000 (19:36 +0000)]
[NVPTX] Use GreatestCommonDivisor64 from MathExtras instead of using our own. Thanks Hal!
llvm-svn: 211952
Nick Kledzik [Fri, 27 Jun 2014 19:08:56 +0000 (19:08 +0000)]
[mach-o] fix struct initialization to work with Windows compiler
llvm-svn: 211951
Aaron Ballman [Fri, 27 Jun 2014 19:05:17 +0000 (19:05 +0000)]
Adding some trailing whitespace after a comment previously ending with \ to ensure that it isn't lexed as a multiline comment. This silences some -Wcomment warnings.
llvm-svn: 211950
David Majnemer [Fri, 27 Jun 2014 18:38:12 +0000 (18:38 +0000)]
Include <tuple> to make buildbots happy
llvm-svn: 211949
Justin Holewinski [Fri, 27 Jun 2014 18:36:11 +0000 (18:36 +0000)]
[NVPTX] Add reflect intrinsic (better than matching by function name)
Also clean up some of the logic in NVVMReflect.cpp while we're messing around in there.
llvm-svn: 211948
Justin Holewinski [Fri, 27 Jun 2014 18:36:08 +0000 (18:36 +0000)]
[NVPTX] Handle all possible vector types in getSetCCResultType, not just the ones representable as MVTs
llvm-svn: 211947
Justin Holewinski [Fri, 27 Jun 2014 18:36:06 +0000 (18:36 +0000)]
[NVPTX] Add 'b' asm constraint
llvm-svn: 211946
Justin Holewinski [Fri, 27 Jun 2014 18:36:04 +0000 (18:36 +0000)]
[NVPTX] Simplify some argument lowering logic
llvm-svn: 211945
Justin Holewinski [Fri, 27 Jun 2014 18:36:02 +0000 (18:36 +0000)]
[NVPTX] Do not process samplers in GenericToNVVM
llvm-svn: 211944
Justin Holewinski [Fri, 27 Jun 2014 18:36:01 +0000 (18:36 +0000)]
[NVPTX] Error out if initializer is given for variable in an address space that does not support initialization
llvm-svn: 211943
Justin Holewinski [Fri, 27 Jun 2014 18:35:58 +0000 (18:35 +0000)]
[NVPTX] Add support for .managed variables for UVM
llvm-svn: 211942
Justin Holewinski [Fri, 27 Jun 2014 18:35:56 +0000 (18:35 +0000)]
[NVPTX] Emit .weak linkage for link_once, weak, available_externally, and common linkage
llvm-svn: 211941
Justin Holewinski [Fri, 27 Jun 2014 18:35:53 +0000 (18:35 +0000)]
[NVPTX] Variables that start with llvm. or nvvm. are reserved and should not be emitted
llvm-svn: 211940
Justin Holewinski [Fri, 27 Jun 2014 18:35:51 +0000 (18:35 +0000)]
[NVPTX] Fix handling of ldg/ldu intrinsics.
The address space of the pointer must be global (1) for these intrinsics. There must also be alignment metadata attached to the intrinsic calls, e.g.
%val = tail call i32 @llvm.nvvm.ldu.i.global.i32.p1i32(i32 addrspace(1)* %ptr), !align !0
!0 = metadata !{i32 4}
llvm-svn: 211939
Justin Holewinski [Fri, 27 Jun 2014 18:35:44 +0000 (18:35 +0000)]
[NVPTX] Clean up argument lowering code and properly handle alignment for structs and vectors
llvm-svn: 211938
Justin Holewinski [Fri, 27 Jun 2014 18:35:42 +0000 (18:35 +0000)]
[NVPTX] Add missing boolean vector contents flag
llvm-svn: 211937
Justin Holewinski [Fri, 27 Jun 2014 18:35:40 +0000 (18:35 +0000)]
[NVPTX] Add support for [SHL,SRA,SRL]_PARTS
llvm-svn: 211936
Justin Holewinski [Fri, 27 Jun 2014 18:35:37 +0000 (18:35 +0000)]
[NVPTX] Implement fma and imad contraction as target DAGCombiner patterns
This also introduces DAGCombiner patterns for mul.wide to multiply two smaller integers and produce a larger integer
llvm-svn: 211935
Justin Holewinski [Fri, 27 Jun 2014 18:35:33 +0000 (18:35 +0000)]
[NVPTX] Add support for efficient rotate instructions on SM 3.2+
llvm-svn: 211934
Justin Holewinski [Fri, 27 Jun 2014 18:35:30 +0000 (18:35 +0000)]
[NVPTX] Add missing isel patterns for 64-bit atomics
llvm-svn: 211933
Justin Holewinski [Fri, 27 Jun 2014 18:35:27 +0000 (18:35 +0000)]
[NVPTX] Add isel patterns for bit-field extract (bfe)
llvm-svn: 211932
Justin Holewinski [Fri, 27 Jun 2014 18:35:24 +0000 (18:35 +0000)]
[NVPTX] Add support for isspacep instruction
llvm-svn: 211931
Justin Holewinski [Fri, 27 Jun 2014 18:35:21 +0000 (18:35 +0000)]
[NVPTX] Add support for envreg reads
llvm-svn: 211930
Justin Holewinski [Fri, 27 Jun 2014 18:35:18 +0000 (18:35 +0000)]
[NVPTX] Add target options for PTX 3.2/4.0 and SM 5.0 (Maxwell)
Default PTX version is set to PTX 3.2
llvm-svn: 211929
Justin Holewinski [Fri, 27 Jun 2014 18:35:16 +0000 (18:35 +0000)]
[NVPTX] Update sub-target feature detection
llvm-svn: 211928
Justin Holewinski [Fri, 27 Jun 2014 18:35:14 +0000 (18:35 +0000)]
[NVPTX] Directly control the Machine SSA passes that are invoked for NVPTX.
NVPTX is a bit special in the optimizations it requires, so this gives
us better control over the backend optimization pipeline.
llvm-svn: 211927
Justin Holewinski [Fri, 27 Jun 2014 18:35:10 +0000 (18:35 +0000)]
[NVPTX] Emit .weak when linkage is not external, internal, or private
llvm-svn: 211926
Justin Holewinski [Fri, 27 Jun 2014 18:35:08 +0000 (18:35 +0000)]
[NVPTX] Just use getTypeAllocSize() when computing return value size for structures and vectors
llvm-svn: 211925
Tyler Nowicki [Fri, 27 Jun 2014 18:30:08 +0000 (18:30 +0000)]
Vectorization documentation for loop hint pragmas and Rpass diagnostics.
llvm-svn: 211924
Aaron Ballman [Fri, 27 Jun 2014 18:25:49 +0000 (18:25 +0000)]
Silencing some -Wcast-qual warnings. No functional changes intended.
llvm-svn: 211923
Chandler Carruth [Fri, 27 Jun 2014 18:25:23 +0000 (18:25 +0000)]
[x86] Fix a miscompile in the new shuffle lowering uncovered by
a bootstrap.
I managed to mis-remember how PACKUS worked on x86, and was using undef
for the high bytes instead of zero. The fix is fairly obvious.
llvm-svn: 211922
Nick Kledzik [Fri, 27 Jun 2014 18:25:01 +0000 (18:25 +0000)]
[mach-o] refactor x86_64 relocation handling.
This is first step in reworking how mach-o relocations are processed.
The existing KindHandler is going to become a delgate/helper object for
processing architecture specific references. The KindHandler knows how
to convert mach-o relocations into References and back, as well, as fixing
up the content the relocation is on.
One of the messy things about mach-o relocations is that they sometime
come in pairs, but the pairs still convert to one lld::Reference. So, the
conversion has to detect pairs (arch specific) and change the stride.
llvm-svn: 211921
David Majnemer [Fri, 27 Jun 2014 18:19:56 +0000 (18:19 +0000)]
IR: Add COMDATs to the IR
This new IR facility allows us to represent the object-file semantic of
a COMDAT group.
COMDATs allow us to tie together sections and make the inclusion of one
dependent on another. This is required to implement features like MS
ABI VFTables and optimizing away certain kinds of initialization in C++.
This functionality is only representable in COFF and ELF, Mach-O has no
similar mechanism.
Differential Revision: http://reviews.llvm.org/D4178
llvm-svn: 211920
Reid Kleckner [Fri, 27 Jun 2014 18:17:30 +0000 (18:17 +0000)]
cmake: Don't do anything for LLVM_ENABLE_ASSERTIONS=OFF
By default, CMake will set NDEBUG in Rel* builds and leave it off in
debug builds, so we shouldn't need to do anything ourselves.
Before this change, it was possible to a Debug build without assertions
(aka Debug-Asserts in the autoconf system) by configuring with
-DLLVM_ENABLE_ASSERTIONS=OFF, but this configuration isn't very useful.
You can still get the same effect by explicitly adding -DNDEBUG to
CFLAGS.
Differential Revision: http://reviews.llvm.org/D4257
Patch by Janusz Sobczak!
llvm-svn: 211919
Julien Lerouge [Fri, 27 Jun 2014 18:02:54 +0000 (18:02 +0000)]
lldb can interrupt waitpid, so EINTR shouldn't be an error. This fixes the case
where there is no timeout. In the case where there is a timeout though, the
code is still wrong since it doesn't check that the alarm really went off.
Without this patch, I cannot debug a program that forks itself using
sys::ExecuteAndWait with lldb.
llvm-svn: 211918
Matt Arsenault [Fri, 27 Jun 2014 17:57:00 +0000 (17:57 +0000)]
R600: Move trivial getters into header, use initializer list
llvm-svn: 211917
David Blaikie [Fri, 27 Jun 2014 17:45:43 +0000 (17:45 +0000)]
Fix test so it doesn't try to write out temporary files into the test tree.
llvm-svn: 211916
David Blaikie [Fri, 27 Jun 2014 17:40:03 +0000 (17:40 +0000)]
Remove 'const' from MemoryBuffers used through the SourceManager
This removes a const_cast added in r211884 that occurred due to an
inconsistency in how MemoryBuffers are handled between some parts of
clang and LLVM.
MemoryBuffers are immutable and the general convention in the LLVM
project is to omit const from immutable types as it's simply
redundant/verbose (see llvm::Type, for example). While this change
doesn't remove "const" from /every/ MemoryBuffer, it at least makes this
chain of ownership/usage consistent.
llvm-svn: 211915
Logan Chien [Fri, 27 Jun 2014 17:25:54 +0000 (17:25 +0000)]
Avoid non-ascii character in the source code.
llvm-svn: 211914
David Majnemer [Fri, 27 Jun 2014 17:19:44 +0000 (17:19 +0000)]
MC: Fix associative sections on COFF
COFF sections in MC were represented by a tuple of section-name and
COMDAT-name. This is not sufficient to represent a .text section
associated with another .text section; we need a way to distinguish
between the key section and the one marked associative.
llvm-svn: 211913
Logan Chien [Fri, 27 Jun 2014 17:17:44 +0000 (17:17 +0000)]
Silence the implicit signed/unsigned conversion warning.
llvm-svn: 211912
Juergen Ributzka [Fri, 27 Jun 2014 17:16:34 +0000 (17:16 +0000)]
[FastISel][X86] Fix typos.
llvm-svn: 211911
Ben Langmuir [Fri, 27 Jun 2014 17:04:26 +0000 (17:04 +0000)]
Add reparse test for libclang
Adapted from a reproducer by Dan Schmidt, thanks!
llvm-svn: 211910
Reid Kleckner [Fri, 27 Jun 2014 17:02:02 +0000 (17:02 +0000)]
clang-cl: Map /EHs- to -fno-exceptions
This isn't 100% compatible with MSVC, but it's close enough. MSVC's /EH
flag doesn't really control exceptions so much as how to clean up after
an exception is thrown. The upshot is that cl.exe /EHs- will compile
try, throw, and catch statements with a warning, but clang-cl will
reject such constructs with a hard error. We can't compile such EH
constructs anyway, but this may matter to consumers of the AST.
Reviewers: hans
Differential Revision: http://reviews.llvm.org/D4317
llvm-svn: 211909
David Majnemer [Fri, 27 Jun 2014 16:56:27 +0000 (16:56 +0000)]
CodeGen: Fix a typo in getThreadLocalWrapperLinkage
The description had a misspelling. No functionality change.
llvm-svn: 211908
Todd Fiala [Fri, 27 Jun 2014 16:52:49 +0000 (16:52 +0000)]
Fix ObjectFileELF to determine architectures independent of host.
Previously ObjectFileELF was simplifying and assuming the object file it was
looking at was the same as the host architecture/triple. This would break
attempts to run, say, lldb on MacOSX against lldb-gdbserver on Linux since
the MacOSX lldb would say that the linux elf file was really an Apple MacOSX
architecture. Chaos would ensue.
This change allows the elf file to parse ELF notes for Linux, FreeBSD and
NetBSD, and determine the OS appropriately from them. It also initializes
the OS type from the ELF header OSABI if it is set (which it is for FreeBSD
but not for Linux).
Added a test with freebsd and linux images that verify that
'(lldb) image list -t -A' prints out the expected architecture for each.
llvm-svn: 211907
Matt Arsenault [Fri, 27 Jun 2014 16:52:49 +0000 (16:52 +0000)]
R600: Don't crash on unhandled instruction in promote alloca
llvm-svn: 211906
Chandler Carruth [Fri, 27 Jun 2014 16:37:27 +0000 (16:37 +0000)]
Fix a bug in my previous patch by restoring the behavior that the fatal
error handler is only registered once.
To avoid the use of std::call_once (the obvious way to do this) I've
wrapped everything up into a managed static and done the work in
a constructor. Silly, but it should be effective.
Some out-of-tree libclang users reported this to me, and I've asked them
to put together a test case which exhibits this behavior, but I wanted
to fix things ASAP since the nature of the fix is straight forward.
llvm-svn: 211905
Ed Maste [Fri, 27 Jun 2014 16:37:20 +0000 (16:37 +0000)]
llvm-objdump: don't assert if ELF file has no sections
FreeBSD core files, for example, have no sections (only program headers).
llvm.org/pr20139
Differential Revision: http://reviews.llvm.org/D4323
llvm-svn: 211904
Jim Ingham [Fri, 27 Jun 2014 16:02:55 +0000 (16:02 +0000)]
Revert the debugserver part of r211868. While formally a fine change, debugserver
doesn't depend on llvm (it really doesn't even depend on anything in lldb) and this
nicety isn't worth adding that dependence.
llvm-svn: 211903
Alexander Kornienko [Fri, 27 Jun 2014 15:30:55 +0000 (15:30 +0000)]
Clean up unused variable warning in release build.
llvm-svn: 211902
Chandler Carruth [Fri, 27 Jun 2014 15:14:39 +0000 (15:14 +0000)]
This fixes libclang to cope with the now compile-time multithreaded
selection re-enabled in r211900 in LLVM.
The approach (unlike r211121) doesn't rely on std::mutex or
std::call_once to avoid breaknig cygwin bots.
llvm-svn: 211901
Chandler Carruth [Fri, 27 Jun 2014 15:13:01 +0000 (15:13 +0000)]
Re-apply r211287: Remove support for LLVM runtime multi-threading.
I'll fix the problems in libclang and other projects in ways that don't
require <mutex> until we sort out the cygwin situation.
llvm-svn: 211900
Chandler Carruth [Fri, 27 Jun 2014 15:04:42 +0000 (15:04 +0000)]
[cmake] When Python is disabled for LLDB, don't try to install the
python bindings.
For example, this prevents errors on systems that disable python because
the system python isn't available. Without this, we still try to install
things and get install errors when that doesn't work.
llvm-svn: 211899
Oliver Stannard [Fri, 27 Jun 2014 13:59:27 +0000 (13:59 +0000)]
[ARM] Fix AAPCS non-compliance caused by very large structs
This is a fix to the code in clang which inserts padding arguments to
ensure that the ARM backend can emit AAPCS-VFP compliant code. This code
needs to track the number of registers which have been allocated in order
to do this. When passing a very large struct (>64 bytes) by value, clang
emits IR which takes a pointer to the struct, but the backend converts this
back to passing the struct in registers and on the stack. The bug was that
this was being considered by clang to only use one register, meaning that
there were situations in which padding arguments were incorrectly emitted
by clang.
llvm-svn: 211898