David Majnemer [Mon, 14 Jul 2014 16:27:53 +0000 (16:27 +0000)]
CodeGen: Let arrays be inputs to inline asm
An array showing up in an inline assembly input is accepted in ICC and
GCC 4.8
This fixes PR20201.
Differential Revision: http://reviews.llvm.org/D4382
llvm-svn: 212954
David Majnemer [Mon, 14 Jul 2014 16:20:14 +0000 (16:20 +0000)]
llvm-objdump: Handle BSS sections larger than the object file
The size of the uninitialized sections, like BSS, can exceed the size of
the object file.
Do not attempt to grab the contents of such sections.
llvm-svn: 212953
Kostya Serebryany [Mon, 14 Jul 2014 16:03:13 +0000 (16:03 +0000)]
[tsan] honour XFAIL in tsan/test_output.sh
llvm-svn: 212952
Kostya Serebryany [Mon, 14 Jul 2014 15:52:33 +0000 (15:52 +0000)]
[tsan] add a printf to a test
llvm-svn: 212951
Yi Kong [Mon, 14 Jul 2014 15:32:29 +0000 (15:32 +0000)]
ARM: Add NOP intrinsic mapping in arm_acle.h
llvm-svn: 212950
Simon Atanasyan [Mon, 14 Jul 2014 15:31:47 +0000 (15:31 +0000)]
[Mips] Fix test case expectations due the latest changes in the LLVM.
llvm-svn: 212949
Tim Northover [Mon, 14 Jul 2014 15:31:13 +0000 (15:31 +0000)]
X86: remove temporary atomicrmw used during lowering.
We construct a temporary "atomicrmw xchg" instruction when lowering atomic
stores for widths that aren't supported natively. This isn't on the top-level
worklist though, so it won't be removed automatically and we have to do it
ourselves once that itself has been lowered.
Thanks Saleem for pointing this out!
llvm-svn: 212948
Yi Kong [Mon, 14 Jul 2014 15:20:09 +0000 (15:20 +0000)]
ARM: Implement __builtin_arm_nop intrinsic
This patch implements __builtin_arm_nop intrinsic for AArch32 and AArch64,
which generates hint 0x0, the alias of NOP instruction.
This intrinsic is necessary to implement ACLE __nop intrinsic.
Differential Revision: http://reviews.llvm.org/D4495
llvm-svn: 212947
Daniel Sanders [Mon, 14 Jul 2014 15:05:51 +0000 (15:05 +0000)]
Re-commit: [mips] Correct section alignments and EntrySizes for .bss, .text, .data, .reginfo, .MIPS.options, and .MIPS.abiflags
The lld tests will temporarily fail again but Simon Atanasyan will commit a fix for those shortly.
llvm-svn: 212946
Daniel Sanders [Mon, 14 Jul 2014 14:43:45 +0000 (14:43 +0000)]
Revert: [mips] Correct section alignments and EntrySizes for .bss, .text, .data, .reginfo, .MIPS.options, and .MIPS.abiflags
This commit causes multiple lld tests to fail. Reverting while I investigate the issue.
llvm-svn: 212945
Kostya Serebryany [Mon, 14 Jul 2014 14:27:21 +0000 (14:27 +0000)]
[tsan] add a currently-failing test with a must-deadlock
llvm-svn: 212944
Timur Iskhodzhanov [Mon, 14 Jul 2014 14:26:35 +0000 (14:26 +0000)]
[ASan] Fix a couple of nits in NULL deref tests
This is a follow-up to r212807
llvm-svn: 212943
Benjamin Kramer [Mon, 14 Jul 2014 14:24:30 +0000 (14:24 +0000)]
[clang-tidy] Add a checker for swapped arguments.
This looks for swapped arguments by looking at implicit conversions of arguments
void Foo(int, double);
Foo(1.0, 3); // Most likely a bug
llvm-svn: 212942
Alexander Kornienko [Mon, 14 Jul 2014 14:10:03 +0000 (14:10 +0000)]
Set up clang-tidy diagnostic consumer to print types etc.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4494
llvm-svn: 212941
Benjamin Kramer [Mon, 14 Jul 2014 14:05:02 +0000 (14:05 +0000)]
[ASTMatchers] Make hasOverloadedOperatorName also match freestanding overloads.
Freestanding overloads are represented as FunctionDecls in the AST, make
the matcher also match them.
Differential Revision: http://reviews.llvm.org/D4493
llvm-svn: 212940
Daniel Sanders [Mon, 14 Jul 2014 14:02:14 +0000 (14:02 +0000)]
[mips] Correct section alignments and EntrySizes for .bss, .text, .data, .reginfo, .MIPS.options, and .MIPS.abiflags
Summary:
.bss, .text, and .data are at least 16-byte aligned.
.reginfo is 4-byte aligned and has a 24-byte EntrySize.
.MIPS.abiflags has an 24-byte EntrySize.
.MIPS.options is 8-byte aligned and has 1-byte EntrySize.
Using a 1-byte EntrySize for .MIPS.options seems strange because the
records are neither 1-byte long nor fixed-length but this matches the value
that GAS emits.
Differential Revision: http://reviews.llvm.org/D4487
llvm-svn: 212939
Daniel Sanders [Mon, 14 Jul 2014 13:08:14 +0000 (13:08 +0000)]
[mips] For the FP64A ABI, odd-numbered double-precision moves must not use mtc1/mfc1.
Summary:
This is because the FP64A the hardware will redirect 32-bit reads/writes
from/to odd-numbered registers to the upper 32-bits of the corresponding
even register. In effect, simulating FR=0 mode when FR=0 mode is not
available.
Unfortunately, we have to make the decision to avoid mfc1/mtc1 before
register allocation so we currently do this for even registers too.
FPXX has a similar requirement on 32-bit architectures that lack
mfhc1/mthc1 so this patch also handles the affected moves from the FPU for
FPXX too. Moves to the FPU were supported by an earlier commit.
Differential Revision: http://reviews.llvm.org/D4484
llvm-svn: 212938
Evgeniy Stepanov [Mon, 14 Jul 2014 13:07:51 +0000 (13:07 +0000)]
[sanitizer] Intercept getpass.
llvm-svn: 212937
Daniel Sanders [Mon, 14 Jul 2014 12:41:31 +0000 (12:41 +0000)]
[mips] Use MFHC1 when it is available (MIPS32r2 and later) for both FP32 and FP64 moves
Summary:
This is similar to r210771 which did the same thing for MTHC1.
Also corrected MTHC1_D32 and MTHC1_D64 which used AFGR64 and FGR64 on the
wrong definitions.
Differential Revision: http://reviews.llvm.org/D4483
llvm-svn: 212936
Daniel Jasper [Mon, 14 Jul 2014 12:38:38 +0000 (12:38 +0000)]
clang-format: Improve cast detection (fix false positive).
Before:
fn(a)(b)+1;
After:
fn(a)(b) + 1;
llvm-svn: 212935
NAKAMURA Takumi [Mon, 14 Jul 2014 12:26:15 +0000 (12:26 +0000)]
[CMake][Win32.DLL] Let llvm_add_library(SHARED) link dependent libraries as PRIVATE.
For example, c-index-test.exe requires just libclang.dll (its import library).
When libraries in libclang were not PRIVATE but PUBLIC, c-index-test required libraries transitive by libclang.
Note, on mingw with BUILD_SHARED_LIBS, library dependencies would become more strict.
In principle, required libraries should be "required in its source file".
This will help to detect missing dependencies.
llvm-svn: 212934
Tim Northover [Mon, 14 Jul 2014 11:16:02 +0000 (11:16 +0000)]
AArch64: remove unnecessary pseudo-instruction.
Sufficiently twisted use of TableGen lets us write patterns directly for f16
(as an i16 promoted to i32) -> f32 conversion.
llvm-svn: 212933
Daniel Sanders [Mon, 14 Jul 2014 10:26:15 +0000 (10:26 +0000)]
[mips] Correct the AFL_FLAGS1_ODDSPREG flag in .MIPS.abiflags when no '.module oddspreg' is used
Differential Revision: http://reviews.llvm.org/D4486
llvm-svn: 212932
Pavel Chupin [Mon, 14 Jul 2014 09:58:10 +0000 (09:58 +0000)]
[x32] Add __ILP32__ macro for ILP32 platforms
Summary:
Add __ILP32__ and _ILP32 macro for corresponding platforms.
Cover x86_64-*-*-gnux32 with test.
Test Plan: test added
Reviewers: chandlerc, atanasyan
Subscribers: cfe-commits, dschuff, zinovy.nis
Differential Revision: http://reviews.llvm.org/D4473
llvm-svn: 212931
Sasa Stankovic [Mon, 14 Jul 2014 09:40:29 +0000 (09:40 +0000)]
[mips] Expand BuildPairF64 to a spill and reload when the O32 FPXX ABI is
enabled and mthc1 and dmtc1 are not available (e.g. on MIPS32r1)
This prevents the upper 32-bits of a double precision value from being moved to
the FPU with mtc1 to an odd-numbered FPU register. This is necessary to ensure
that the code generated executes correctly regardless of the current FPU mode.
MIPS32r2 and above continues to use mtc1/mthc1, while MIPS-IV and above continue
to use dmtc1.
Differential Revision: http://reviews.llvm.org/D4465
llvm-svn: 212930
Evgeniy Stepanov [Mon, 14 Jul 2014 09:35:27 +0000 (09:35 +0000)]
[msan] Stop demangling function name in the stack origin report.
This was done by calling __cxa_demangle directly, which is bad
when c++abi library is instrumented. The following line always
contains the demangled name (when running with a symbolizer) anyway.
llvm-svn: 212929
Simon Atanasyan [Mon, 14 Jul 2014 09:01:40 +0000 (09:01 +0000)]
[Mips] Delete the empty directory.
llvm-svn: 212928
Simon Atanasyan [Mon, 14 Jul 2014 08:54:40 +0000 (08:54 +0000)]
[Mips] Remove unused test input file.
llvm-svn: 212927
Evgeniy Stepanov [Mon, 14 Jul 2014 08:54:10 +0000 (08:54 +0000)]
[asan] Remove XFAIL:android from 2 newly passing tests.
Fixed in r212872.
llvm-svn: 212926
Tobias Grosser [Mon, 14 Jul 2014 08:32:01 +0000 (08:32 +0000)]
DeadCodeElimination: Fix liveout computation
We move back to a simple approach where the liveout is the last must-write
statement for a data-location plus all may-write statements. The previous
approach did not work out. We would have to consider per-data-access
dependences, instead of per-statement dependences to correct it. As this adds
complexity and it seems we would not gain anything over the simpler approach
that we implement in this commit, I moved us back to the old approach of
computing the liveout, but enhanced it to also add may-write accesses.
We also fix the test case and explain why we can not perform dead code
elimination in this case.
llvm-svn: 212925
Alexander Kornienko [Mon, 14 Jul 2014 07:37:05 +0000 (07:37 +0000)]
Suggest automated replacements of C-style casts with C++ casts.
Summary:
This patch implements a subset of possible replacements of C-style
casts with const_cast/static_cast/reinterpret_cast. This should cover a large
portion of cases in real code. Handling of a few more cases may be implemented
eventually.
Reviewers: sbenza, djasper
Reviewed By: djasper
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4478
llvm-svn: 212924
Todd Fiala [Mon, 14 Jul 2014 06:24:44 +0000 (06:24 +0000)]
Modified gdb-remote tests to run with automatically-chosen ports.
Now that llgs supports communicating the 0-port choose-a-port
mechanism and can communicate that back to a caller via the
--named-pipe option (at parity with debugserver), we use this
mechanism to always start llgs and debugserver gdb-remote
protocol tests without needing to use some port arbitration
mechanism. This eliminates some potential intermittent failures vs. the
previous random port and collision-avoidance strategy used.
llvm-svn: 212923
Bill Wendling [Mon, 14 Jul 2014 06:22:36 +0000 (06:22 +0000)]
Support lowering of empty aggregates.
This crash was pretty common while compiling Rust for iOS (armv7). Reason -
SjLj preparation step was lowering aggregate arguments as ExtractValue +
InsertValue. ExtractValue has assertion which checks that there is some data in
value, which is not true in case of empty (no fields) structures. Rust uses
them quite extensively so this patch uses a 'select true, %val, undef'
instruction to lower the argument.
Patch by Valerii Hiora.
llvm-svn: 212922
NAKAMURA Takumi [Mon, 14 Jul 2014 05:07:07 +0000 (05:07 +0000)]
[CMake] LINK_COMPONENTS: Add also corresponding MCTargetDesc and TargetInfo as well, when target names or "nativecodegen" are specified.
llvm-svn: 212921
NAKAMURA Takumi [Mon, 14 Jul 2014 05:01:53 +0000 (05:01 +0000)]
[CMake] Update libdeps.
llvm-svn: 212920
NAKAMURA Takumi [Mon, 14 Jul 2014 04:59:27 +0000 (04:59 +0000)]
[CMake] Reorder libdeps by alphabetical order.
llvm-svn: 212919
NAKAMURA Takumi [Mon, 14 Jul 2014 02:52:19 +0000 (02:52 +0000)]
NVPTX/LLVMBuild.txt: Add "Scalar" to required_libraries. It is really referenced.
llvm-svn: 212918
NAKAMURA Takumi [Mon, 14 Jul 2014 02:52:08 +0000 (02:52 +0000)]
Object/LLVMBuild.txt: Sort required_libraries by alphabetical order.
llvm-svn: 212917
Richard Smith [Mon, 14 Jul 2014 02:28:44 +0000 (02:28 +0000)]
Superficial fix for PR20218: binding a function lvalue to a const reference to
a function pointer is neither better nor worse than binding a function lvalue
to a function rvalue reference. Don't get confused and think that both bindings
are binding to a function lvalue (which would make the lvalue form win); the
const reference is binding to an rvalue.
The "real" bug in PR20218 is still present: we're getting the wrong answer from
template argument deduction, and that's what leads us to this weird overload
set.
llvm-svn: 212916
Andrea Di Biagio [Sun, 13 Jul 2014 21:02:14 +0000 (21:02 +0000)]
[DAGCombiner] Fix a crash caused by a missing check for legal type when trying to fold shuffles.
Verify that DAGCombiner does not crash when trying to fold a pair of shuffles
according to rule (added at r212539):
(shuffle (shuffle A, Undef, M0), Undef, M1) -> (shuffle A, Undef, M2)
The DAGCombiner avoids folding shuffles if the resulting shuffle dag node
is not legal for the target. That means, the resulting shuffle must have
legal type and legal mask.
Before, the DAGCombiner only called method
'TargetLowering::isShuffleMaskLegal' to check if it was "safe" to fold according
to the above-mentioned rule. However, this caused a crash in the x86 backend
since method 'isShuffleMaskLegal' always expects to be called on a
legal vector type.
llvm-svn: 212915
Saleem Abdulrasool [Sun, 13 Jul 2014 19:03:45 +0000 (19:03 +0000)]
MC: make MCWin64EHInstruction a POD-like struct
This is the first of a number of changes designed to generalise
MCWin64EHInstruction to support different target architectures. An ordered set
(vector) of these instructions is saved per frame to permit the emission of
information for Windows NT style unwinding. The only bit of information which
is actually target specific here is the Opcode for the unwinding bytecode. The
remainder of the information is simply generic information that is relevant to
the Windows NT unwinding model.
Remove the accessors for the fields, making them const and public instead. Sink
the knowledge of the alias'ed name into the single source and sink a single-use
check method into the use.
llvm-svn: 212914
Saleem Abdulrasool [Sun, 13 Jul 2014 19:03:40 +0000 (19:03 +0000)]
MC: make helper function be more const-correct
Introduce const-ness on parameters, they are used as read-only and should not be
modified. NFC.
llvm-svn: 212913
Saleem Abdulrasool [Sun, 13 Jul 2014 19:03:36 +0000 (19:03 +0000)]
MC: make DWARF and Windows unwinding handling more similar
Rename member variables and functions for the MCStreamer for DWARF-like
unwinding management. Rename the Windows ones as well and make the naming and
handling similar across the two. No functional change intended.
llvm-svn: 212912
Pavel Chupin [Sun, 13 Jul 2014 17:11:45 +0000 (17:11 +0000)]
Remove trailing spaces
llvm-svn: 212911
Simon Atanasyan [Sun, 13 Jul 2014 16:18:56 +0000 (16:18 +0000)]
Add forgotten `break` statement.
llvm-svn: 212910
Yi Kong [Sun, 13 Jul 2014 16:17:30 +0000 (16:17 +0000)]
Add test cases for AArch64 hints codegen
llvm-svn: 212909
Simon Atanasyan [Sun, 13 Jul 2014 15:28:54 +0000 (15:28 +0000)]
[Mips] Support SHT_MIPS_ABIFLAGS section type flag in the llvm-readobj,
obj2yaml and yaml2obj tools.
llvm-svn: 212908
NAKAMURA Takumi [Sun, 13 Jul 2014 13:47:37 +0000 (13:47 +0000)]
[CMake] Enable loadable modules, aka plugins, with BUILD_SHARED_LIBS on cygming.
Loadable modules could be enabled without BUILD_SHARED_LIBS with tweaks in future.
llvm-svn: 212907
NAKAMURA Takumi [Sun, 13 Jul 2014 13:40:23 +0000 (13:40 +0000)]
[CMake] Give explicit dependencies to a couple of modules, PrintFunctionNames and SampleAnalyzerPlugin, for Win32.DLL.
llvm-svn: 212906
NAKAMURA Takumi [Sun, 13 Jul 2014 13:38:55 +0000 (13:38 +0000)]
PrintFunctionNames/CMakeLists.txt: Fix a comment.
llvm-svn: 212905
NAKAMURA Takumi [Sun, 13 Jul 2014 13:36:48 +0000 (13:36 +0000)]
[CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32.
llvm-svn: 212904
NAKAMURA Takumi [Sun, 13 Jul 2014 13:33:26 +0000 (13:33 +0000)]
[CMake] Introduce moddir for MODULE -- corresponding to LIBRARY_OUTPUT_DIRECTORY.
On Win32.DLL, it points not lib but bin.
LIBRARY_OUTPUT_DIRECTORY affects add_library(MODULE), especially Win32.DLL.
llvm-svn: 212903
NAKAMURA Takumi [Sun, 13 Jul 2014 13:28:18 +0000 (13:28 +0000)]
bugpoint/ToolRunner.cpp: ProcessFailure(): Close ErrorFD immediately, or it couldn't be reopened on Win32.
FIXME: We may have an option in openFileForWrite(), not to use ResultFD but to close it.
llvm-svn: 212902
David Majnemer [Sun, 13 Jul 2014 05:19:56 +0000 (05:19 +0000)]
MS ABI: Stick internal vftables in a comdat if they have RTTI data
Previously, we would have a private backing variable and an internal
alias pointing at it.
However, -fdata-sections only fires if a global variable has non-private
linkage. This means that an unreferenced vftable wouldn't get
discarded, bloating the object file.
Instead, stick the backing variable in a comdat even if the alias has
internal linkage. This will allow the linker to drop the vftable if it
is unused.
llvm-svn: 212901
David Majnemer [Sun, 13 Jul 2014 04:56:11 +0000 (04:56 +0000)]
IR: Allow comdats to be applied to globals with internal linkage
Our verifier check for checking if a global has local linkage was too
strict. Forbid private linkage but permit local linkage.
Object file formats permit this and forbidding it prevents elimination
of unused, internal, vftables under the MSVC ABI.
llvm-svn: 212900
David Majnemer [Sun, 13 Jul 2014 04:31:19 +0000 (04:31 +0000)]
MC: Let non-temporary COFF aliases be in symtab
MC was aping a binutils bug where aliases would default their linkage to
private instead of internal.
I've sent a patch to the binutils maintainers and they've recently
applied it to the GNU assembler sources.
This fixes PR20152.
Differential Revision: http://reviews.llvm.org/D4395
llvm-svn: 212899
Matt Arsenault [Sun, 13 Jul 2014 03:08:59 +0000 (03:08 +0000)]
Remove unused include
llvm-svn: 212898
Matt Arsenault [Sun, 13 Jul 2014 03:06:43 +0000 (03:06 +0000)]
R600: Use range for and fix missing consts.
llvm-svn: 212897
Matt Arsenault [Sun, 13 Jul 2014 03:06:39 +0000 (03:06 +0000)]
R600: Make ShaderType private
llvm-svn: 212896
Matt Arsenault [Sun, 13 Jul 2014 02:46:17 +0000 (02:46 +0000)]
R600: Run more tests with promote alloca disabled.
Re-run tests changed in r211110 to test both paths.
Also fix broken check line.
llvm-svn: 212895
Matt Arsenault [Sun, 13 Jul 2014 02:18:06 +0000 (02:18 +0000)]
R600: Run private-memory test with and without alloca promote
The unpromoted path still needs to be tested since we can't
always promote to using LDS.
llvm-svn: 212894
Matt Arsenault [Sun, 13 Jul 2014 02:08:26 +0000 (02:08 +0000)]
R600: Add option to disable promote alloca
This can make writing some tests harder, so add a flag
to disable it.
llvm-svn: 212893
Saleem Abdulrasool [Sat, 12 Jul 2014 23:40:53 +0000 (23:40 +0000)]
tests: use a more precise target for tests
llvm-svn: 212892
Saleem Abdulrasool [Sat, 12 Jul 2014 23:27:26 +0000 (23:27 +0000)]
Headers: add hint intrinsics to arm_acle.h
This adds the ARM ACLE hint intrinsic wrappers to arm_acle.h. These need to be
protected with a !defined(_MSC_VER) since MSVC (and thus clang in compatibility
mode) provide these wrappers as proper builtin intrinsics.
llvm-svn: 212891
Saleem Abdulrasool [Sat, 12 Jul 2014 23:27:22 +0000 (23:27 +0000)]
CodeGen: support hint intrinsics from ACLE on AArch64
This adds support for the ACLE hint intrinsics on AArch64 similar to ARM. This
is required to properly support ACLE on AArch64.
llvm-svn: 212890
Matt Arsenault [Sat, 12 Jul 2014 23:16:26 +0000 (23:16 +0000)]
Try to fix MSVC warning.
llvm-svn: 212889
Matt Arsenault [Sat, 12 Jul 2014 23:09:02 +0000 (23:09 +0000)]
Try to fix MSVC build
llvm-svn: 212888
Yi Kong [Sat, 12 Jul 2014 22:48:13 +0000 (22:48 +0000)]
Improve comments of ARM ACLE header file and tests
Include section number in ARM ACLE specification for easier navigation.
llvm-svn: 212887
Matt Arsenault [Sat, 12 Jul 2014 22:19:49 +0000 (22:19 +0000)]
Try to fix MSVC build
llvm-svn: 212886
Matt Arsenault [Sat, 12 Jul 2014 21:59:52 +0000 (21:59 +0000)]
Templatify DominanceFrontier.
Theoretically this should now work for MachineBasicBlocks.
llvm-svn: 212885
Ed Maste [Sat, 12 Jul 2014 21:46:39 +0000 (21:46 +0000)]
Fix lldb-gdbserver build
s_listen_thread had the wrong type.
llvm-svn: 212884
Saleem Abdulrasool [Sat, 12 Jul 2014 21:20:49 +0000 (21:20 +0000)]
AArch64: add support for llvm.aarch64.hint intrinsic
This adds a llvm.aarch64.hint intrinsic to mirror the llvm.arm.hint in order to
support the various hint intrinsic functions in the ACLE.
Add an optional pattern field that permits the subclass to specify the pattern
that matches the selection. The intrinsic pattern is set as mayLoad, mayStore,
so overload the value for the definition of the hint instruction.
llvm-svn: 212883
Saleem Abdulrasool [Sat, 12 Jul 2014 20:49:13 +0000 (20:49 +0000)]
MC: remove use of unnecessary variable
Due to the fact that the windows unwinding has the concept of chained frames, we
maintain a current frame info pointer that is adjusted on any push and pop of a
unwinding context. This just removes an unnecessary variable that was used to
mirror the DWARF unwinding code.
llvm-svn: 212882
Saleem Abdulrasool [Sat, 12 Jul 2014 20:49:09 +0000 (20:49 +0000)]
MC: rename MCW64UnwindInfo to MCWinFrameInfo
This structure contains information related to the call frame used to generate
unwinding information. Rename this to reflect the future use to represent the
shared state between various architectures for WinCFI information.
llvm-svn: 212881
Simon Atanasyan [Sat, 12 Jul 2014 18:25:08 +0000 (18:25 +0000)]
[ELFYAML] Group ELF section type flags to target specific blocks.
Recognize only flags which correspond to the current target.
llvm-svn: 212880
Todd Fiala [Sat, 12 Jul 2014 17:34:24 +0000 (17:34 +0000)]
llgs: modify to accept --native-regs flag.
This is the last flag sent by lldb-platform that was not accepted
by llgs and is accepted by debugserver.
Conditionalized out a bit more code in prep for Windows
support one day based on _WIN32 define.
Updated the lldb-gdbserver usage string to represent
recent updates to command line arguments (and some older
ones like --attach pid).
Implements https://github.com/tfiala/lldb/issues/37
llvm-svn: 212879
Ed Maste [Sat, 12 Jul 2014 15:41:03 +0000 (15:41 +0000)]
Add FreeBSD failure decorator for TestCallStopAndContinue
The testrun now completes successfully on my FreeBSD 11.0-CURRENT
laptop. There are some intermittent failures on the FreeBSD buildbot
still, which should be addressed in later commits.
llvm.org/pr20274
llvm-svn: 212878
Ed Maste [Sat, 12 Jul 2014 15:21:55 +0000 (15:21 +0000)]
Add FreeBSD decorator for TestMultipleDebuggers
llvm.org/pr20282
llvm-svn: 212877
Alexander Kornienko [Sat, 12 Jul 2014 13:16:58 +0000 (13:16 +0000)]
Fixed compilation errors in tests, enforce checking for errors in check_clang_tidy_fix.sh.
Reviewers: sbenza, djasper
Reviewed By: djasper
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4480
llvm-svn: 212876
Owen Anderson [Sat, 12 Jul 2014 07:12:47 +0000 (07:12 +0000)]
Fix an issue with the MergeBasicBlockIntoOnlyPred() helper function where it did
not properly handle the case where the predecessor block was the entry block to
the function. The only in-tree client of this is JumpThreading, which worked
around the issue in its own code. This patch moves the solution into the helper
so that JumpThreading (and other clients) do not have to replicate the same fix
everywhere.
llvm-svn: 212875
Hal Finkel [Sat, 12 Jul 2014 04:51:04 +0000 (04:51 +0000)]
Add nonnull in CodeGen for __attribute__((returns_nonnull))
As a follow-up to r212835, also add the LLVM nonnull function attribute when
__attribute__((returns_nonnull)) is provided.
llvm-svn: 212874
Todd Fiala [Sat, 12 Jul 2014 01:12:44 +0000 (01:12 +0000)]
llgs: implement --setsid.
The --setsid (-S) option changes the session id for the lldb-gdbserver process.
This is used by tools such as lldb-platform and allows the user to prevent
llgs from being in the same session as a calling terminal session.
This will prevents terminal group control signals from affecting
lldb-gdbserver.
See also:
https://github.com/tfiala/lldb/issues/38
llvm-svn: 212873
Alexey Samsonov [Sat, 12 Jul 2014 00:42:52 +0000 (00:42 +0000)]
[ASan] Collect unmangled names of global variables in Clang to print them in error reports.
Currently ASan instrumentation pass creates a string with global name
for each instrumented global (to include global names in the error report). Global
name is already mangled at this point, and we may not be able to demangle it
at runtime (e.g. there is no __cxa_demangle on Android).
Instead, create a string with fully qualified global name in Clang, and pass it
to ASan instrumentation pass in llvm.asan.globals metadata. If there is no metadata
for some global, ASan will use the original algorithm.
This fixes https://code.google.com/p/address-sanitizer/issues/detail?id=264.
llvm-svn: 212872
Reid Kleckner [Sat, 12 Jul 2014 00:40:59 +0000 (00:40 +0000)]
Require an x86 registered target for this test by splitting it out
This is a shot in the dark to fix the hexagon bot, so I'm not 100% sure
this is the issue.
llvm-svn: 212871
Matt Arsenault [Sat, 12 Jul 2014 00:36:19 +0000 (00:36 +0000)]
R600: Add missing tests for some intrinsics
llvm-svn: 212870
Reid Kleckner [Sat, 12 Jul 2014 00:29:05 +0000 (00:29 +0000)]
clang-cl: Make all x86 CPU feature flags available, such as -msse3
Ideally, we would use the /arch cl.exe flag for this stuff.
Unfortunately, MSVC supports only 5 /arch flag values, which isn't
nearly enough to cover all the CPU features that LLVM cares about. At
the very least, we need to know about SSE3 and SSE4.1 in addition to
SSE, SSE2, AVX, and AVX2.
In the future we should add the relevant /arch mappings in addition to
these gcc-style -m flags.
llvm-svn: 212869
Duncan P. N. Exon Smith [Sat, 12 Jul 2014 00:26:00 +0000 (00:26 +0000)]
BFI: Add constructor for Weight
llvm-svn: 212868
Greg Clayton [Sat, 12 Jul 2014 00:24:33 +0000 (00:24 +0000)]
lldb needs to support DW_op_piece masks for values in subregister and also to be able to piece together a value that is spread across multiple registers.
Patch from Adrian Prantl.
<rdar://problem/
16040521>
llvm-svn: 212867
Duncan P. N. Exon Smith [Sat, 12 Jul 2014 00:21:30 +0000 (00:21 +0000)]
BFI: Clean up BlockMass
Implementation is small now -- the interesting logic was moved to
`BranchProbability` a while ago. Move it into `bfi_detail` and get rid
of the related TODOs.
I was originally planning to define it within `BlockFrequencyInfoImpl`
(or `BFIIBase`), but it seems cleaner in a namespace. Besides,
`isPodLike` needs to be specialized before `BlockMass` can be used in
some of the other data structures, and there isn't a clear way to do
that.
llvm-svn: 212866
Reid Kleckner [Sat, 12 Jul 2014 00:18:58 +0000 (00:18 +0000)]
Option: Propagate flags from groups to options in each group
This should make it easy to set a flag for a whole group of clang driver
options.
llvm-svn: 212865
Lang Hames [Sat, 12 Jul 2014 00:16:47 +0000 (00:16 +0000)]
[RuntimeDyld] Fix stub size and offset for AArch64 in RuntimeDyldMachO.h.
<rdar://problem/
17648000>
llvm-svn: 212864
Greg Clayton [Sat, 12 Jul 2014 00:11:34 +0000 (00:11 +0000)]
Allow generic ARM cores to match any more specific ARM architecture.
<rdar://problem/
15932248>
llvm-svn: 212863
Reid Kleckner [Sat, 12 Jul 2014 00:06:46 +0000 (00:06 +0000)]
Avoid a warning from MSVC on "*/" in this code by inserting a space
llvm-svn: 212862
Duncan P. N. Exon Smith [Fri, 11 Jul 2014 23:56:50 +0000 (23:56 +0000)]
BFI: Mark the end of namespaces
llvm-svn: 212861
Reid Kleckner [Fri, 11 Jul 2014 23:54:29 +0000 (23:54 +0000)]
Form a CallExpr from __noop without parens
MSVC accepts __noop without any trailing parens and treats it like a
literal zero. We don't treat __noop as an integer literal, but now at
least we can parse a naked __noop expression.
Reviewers: rsmith
Differential Revision: http://reviews.llvm.org/D4476
llvm-svn: 212860
Lang Hames [Fri, 11 Jul 2014 23:52:07 +0000 (23:52 +0000)]
[RuntimeDyld] Add GOT support for AArch64 to RuntimeDyldMachO.
Test cases to follow once RuntimeDyldChecker supports introspection of stubs.
Fixes <rdar://problem/
17648000>
llvm-svn: 212859
Argyrios Kyrtzidis [Fri, 11 Jul 2014 23:47:48 +0000 (23:47 +0000)]
[Driver] clang::driver::getARMCPUForMArch() moved to llvm::Triple::getARMCPUForArch().
Depends on llvm r212846.
Suggested by Eric Christopher.
llvm-svn: 212858
Alexey Samsonov [Fri, 11 Jul 2014 23:34:26 +0000 (23:34 +0000)]
[ASan] Improve ODR-violation error reports.
Demangle names of involved globals. Print a more consistent summary line.
llvm-svn: 212857
Greg Clayton [Fri, 11 Jul 2014 23:15:11 +0000 (23:15 +0000)]
Remove assert now that we have a 'i' character that might come through as well as the 'q' character on the interrupt pipe.
<rdar://problem/
15840749>
llvm-svn: 212856
Juergen Ributzka [Fri, 11 Jul 2014 23:10:08 +0000 (23:10 +0000)]
Revert "[FastISel][X86] Implement the FastLowerIntrinsicCall hook."
This reverts commit r212851, because it broke the memset lowering.
llvm-svn: 212855