Ahmed Bougacha [Fri, 5 Dec 2014 18:04:40 +0000 (18:04 +0000)]
[CodeGenPrepare] Use variables for reused values. NFC.
llvm-svn: 223491
Matt Arsenault [Fri, 5 Dec 2014 18:03:58 +0000 (18:03 +0000)]
Workaround attribute ordering issue with kernel only attributes
Placing the attribute after the kernel keyword would incorrectly
reject the attribute, so use the smae workaround that other
kernel only attributes use.
Also add a FIXME because there are two different phrasings now
for the same error, althoug amdgpu_num_[sv]gpr uses a consistent one.
llvm-svn: 223490
Matt Arsenault [Fri, 5 Dec 2014 18:03:55 +0000 (18:03 +0000)]
Use else if when checking multiple attributes.
Only one of these can really match.
llvm-svn: 223489
Colin LeMahieu [Fri, 5 Dec 2014 17:58:06 +0000 (17:58 +0000)]
[Hexagon] [NFC] Rearranging patterns and mux instruction.
llvm-svn: 223488
Colin LeMahieu [Fri, 5 Dec 2014 17:55:51 +0000 (17:55 +0000)]
[Hexagon] [NFC] Rearranging def order.
llvm-svn: 223487
Rafael Espindola [Fri, 5 Dec 2014 17:53:15 +0000 (17:53 +0000)]
Refactor duplicated code. NFC.
llvm-svn: 223486
Colin LeMahieu [Fri, 5 Dec 2014 17:38:36 +0000 (17:38 +0000)]
[Hexagon] Adding combine reg-reg forms.
llvm-svn: 223485
Zachary Turner [Fri, 5 Dec 2014 17:38:20 +0000 (17:38 +0000)]
Fix compilation errors after clang modules checkin.
llvm-svn: 223484
Sergey Matveev [Fri, 5 Dec 2014 17:31:13 +0000 (17:31 +0000)]
[ASan] Refactor thread starting code.
Move thread context creation into AsanThread::Create().
llvm-svn: 223483
Colin LeMahieu [Fri, 5 Dec 2014 17:27:39 +0000 (17:27 +0000)]
[Hexagon] Marking several instructions as isCodeGenOnly=0 and adding direct disassembly tests for many instructions.
llvm-svn: 223482
Rafael Espindola [Fri, 5 Dec 2014 17:25:52 +0000 (17:25 +0000)]
Be less conservative about when we build the gold plugin.
It is only build if LLVM_BINUTILS_INCDIR is explicitly given, so there is
no point in having extra restrictions.
llvm-svn: 223481
Sergey Matveev [Fri, 5 Dec 2014 17:21:43 +0000 (17:21 +0000)]
[LSan] Rewrite the test from r223419 to not use C++11.
This was causing build failures on llvm-clang-lld-x86_64-centos-6.5 for some
reason. Anyway, the new way is better because we no longer rely on std::thread
implementation details.
llvm-svn: 223480
Aaron Ballman [Fri, 5 Dec 2014 17:11:49 +0000 (17:11 +0000)]
Amending r223468 with this documentation change.
llvm-svn: 223479
Benjamin Kramer [Fri, 5 Dec 2014 17:03:01 +0000 (17:03 +0000)]
LLVMContext: Store APInt/APFloat directly into the ConstantInt/FP DenseMaps.
Required some APInt massaging to get proper empty/tombstone values. Apart
from making the code a bit simpler this also reduces the bucket size of
the ConstantInt map from 32 to 24 bytes.
llvm-svn: 223478
Sergey Matveev [Fri, 5 Dec 2014 16:53:58 +0000 (16:53 +0000)]
[ASan] Fix Win build following r223419.
llvm-svn: 223477
Asiri Rathnayake [Fri, 5 Dec 2014 16:33:56 +0000 (16:33 +0000)]
Improvements to ARM assembler tests
No functional changes. Got myself bitten in r223113 when adding support for
modified immediate syntax (regressions reported by joerg@britannica.bec.de,
fixes in r223366 and r223381). Our assembler tests did not cover serveral
different syntax variants. This patch expands the test coverage to check for
the following cases:
1. Modified immediate operands may be expressed with expressions, as in #(4 * 2)
instead of #8.
2. Modified immediate operands may be _optionally_ prefixed by a '#' symbol or a
'$' symbol.
3. Certain instructions (e.g. ADD) support single input register variants;
[ADD r0, #mod_imm] is same as [ADD r0, r0, #mod_imm].
4. Certain instructions have aliases which convert plain immediates to modified
immediates. For an example, [ADD r0, -10] is not valid because -10 (in two's
complement) cannot be encoded as a modified immediate, but ARMInstrInfo.td
defines an alias which can transform this into a [SUB r0, 10].
llvm-svn: 223475
Rafael Espindola [Fri, 5 Dec 2014 16:05:19 +0000 (16:05 +0000)]
Small cleanup on how we clear constant variables. NFC.
llvm-svn: 223474
Chad Rosier [Fri, 5 Dec 2014 16:05:14 +0000 (16:05 +0000)]
Update TargetTriple format info.
Phabricator revision: http://reviews.llvm.org/D6543
llvm-svn: 223473
Chad Rosier [Fri, 5 Dec 2014 16:02:06 +0000 (16:02 +0000)]
Fix typos in llvm/IR/Module.h
Phabricator revision: http://reviews.llvm.org/D6535
llvm-svn: 223472
Chad Rosier [Fri, 5 Dec 2014 15:50:44 +0000 (15:50 +0000)]
Fix Typos in include/clang-c/Index.h
Phabricator revision: http://reviews.llvm.org/D6507
llvm-svn: 223471
Rafael Espindola [Fri, 5 Dec 2014 15:42:30 +0000 (15:42 +0000)]
Use an early return. NFC.
llvm-svn: 223470
Dmitry Vyukov [Fri, 5 Dec 2014 15:42:17 +0000 (15:42 +0000)]
tsan: fix test
this test is flaky because of ASLR
app memory is
7e8000000000-
800000000000,
there may or may not be a 1TB hole depending on
where ASLR will choose to map libraries
llvm-svn: 223469
Aaron Ballman [Fri, 5 Dec 2014 15:24:55 +0000 (15:24 +0000)]
Modify __has_attribute so that it only looks for GNU-style attributes. Removes the ability to look for generic attributes and keywords via this macro, which has the potential to be a breaking change. However, since there is __has_cpp_attribute and __has_declspec_attribute, and given the limited usefulness of querying a generic attribute name regardless of syntax, this seems like the correct path forward.
llvm-svn: 223468
Aaron Ballman [Fri, 5 Dec 2014 15:05:29 +0000 (15:05 +0000)]
Added a new preprocessor macro: __has_declspec_attribute. This can be used as a way to determine whether Clang supports a __declspec spelling for a given attribute, similar to __has_attribute and __has_cpp_attribute.
llvm-svn: 223467
Aaron Ballman [Fri, 5 Dec 2014 14:52:04 +0000 (14:52 +0000)]
Temporarily reverting r223443 due to bot breakage.
llvm-svn: 223465
Evgeniy Stepanov [Fri, 5 Dec 2014 14:34:03 +0000 (14:34 +0000)]
[msan] Avoid extra origin address realignment.
Do not realign origin address if the corresponding application
address is at least 4-byte-aligned.
Saves 2.5% code size in track-origins mode.
llvm-svn: 223464
Aaron Ballman [Fri, 5 Dec 2014 14:11:39 +0000 (14:11 +0000)]
Fix a warning with generating the attribute documentation; NFC.
llvm-svn: 223463
Will Newton [Fri, 5 Dec 2014 12:43:26 +0000 (12:43 +0000)]
ELF: Use ELF reloc .def files to reduce duplication
Tested with check-lld with no regressions.
llvm-svn: 223462
Andrea Di Biagio [Fri, 5 Dec 2014 12:13:30 +0000 (12:13 +0000)]
[X86] Avoid introducing extra shuffles when lowering packed vector shifts.
When lowering a vector shift node, the backend checks if the shift count is a
shuffle with a splat mask. If so, then it introduces an extra dag node to
extract the splat value from the shuffle. The splat value is then used
to generate a shift count of a target specific shift.
However, if we know that the shift count is a splat shuffle, we can use the
splat index 'I' to extract the I-th element from the first shuffle operand.
The advantage is that the splat shuffle may become dead since we no longer
use it.
Example:
;;
define <4 x i32> @example(<4 x i32> %a, <4 x i32> %b) {
%c = shufflevector <4 x i32> %b, <4 x i32> undef, <4 x i32> zeroinitializer
%shl = shl <4 x i32> %a, %c
ret <4 x i32> %shl
}
;;
Before this patch, llc generated the following code (-mattr=+avx):
vpshufd $0, %xmm1, %xmm1 # xmm1 = xmm1[0,0,0,0]
vpxor %xmm2, %xmm2
vpblendw $3, %xmm1, %xmm2, %xmm1 # xmm1 = xmm1[0,1],xmm2[2,3,4,5,6,7]
vpslld %xmm1, %xmm0, %xmm0
retq
With this patch, the redundant splat operation is removed from the code.
vpxor %xmm2, %xmm2
vpblendw $3, %xmm1, %xmm2, %xmm1 # xmm1 = xmm1[0,1],xmm2[2,3,4,5,6,7]
vpslld %xmm1, %xmm0, %xmm0
retq
llvm-svn: 223461
Alexander Kornienko [Fri, 5 Dec 2014 11:59:05 +0000 (11:59 +0000)]
[clang-tidy] Add clang-tidy check for unique_ptr's reset+release -> move
Replace x.reset(y.release()); with x = std::move(y);
If y is rvalue, replace with x = y; instead.
http://reviews.llvm.org/D6485
Patch by Alexey Sokolov!
llvm-svn: 223460
Daniel Jasper [Fri, 5 Dec 2014 10:42:21 +0000 (10:42 +0000)]
clang-format: Support NS_OPTIONS, CF_ENUM and CF_OPTIONS.
This fixes llvm.org/PR21756.
llvm-svn: 223458
Dmitry Vyukov [Fri, 5 Dec 2014 10:06:06 +0000 (10:06 +0000)]
tsan: protect trace memory range on startup
so that user does not map something there ahead of us
llvm-svn: 223456
David Majnemer [Fri, 5 Dec 2014 08:56:55 +0000 (08:56 +0000)]
Driver: Objective-C should respect -fno-exceptions
Clang attempted to replicate a GCC bug: -fobjc-exceptions forces
-fexceptions to be enabled. However, this has unintended effects and
other awkard side effects that Clang doesn't "correctly" ape (e.g. it's
impossible to turn off C++ exceptions in ObjC++ mode).
Instead, -f[no]objc-exceptions and -f[no]cxx-exceptions now have an
identical relationship with -f[no]exceptions.
llvm-svn: 223455
Charlie Turner [Fri, 5 Dec 2014 08:22:47 +0000 (08:22 +0000)]
Add missing FP build attribute tests.
The test file test/CodeGen/ARM/build-attributes.ll was missing several
floating-point build attribute tests. The intention of this commit is that for
each CPU / architecture currently tested, there are now tests that make sure
the following attributes are sufficiently checked,
* Tag_ABI_FP_rounding
* Tag_ABI_FP_denormal
* Tag_ABI_FP_exceptions
* Tag_ABI_FP_user_exceptions
* Tag_ABI_FP_number_model
Also in this commit, the -unsafe-fp-math flag has been augmented with the full
suite of flags Clang sends to LLVM when you pass -ffast-math to Clang. That is,
`-unsafe-fp-math' has been changed to `-enable-unsafe-fp-math -disable-fp-elim
-enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast'
Change-Id: I35d766076bcbbf09021021c0a534bf8bf9a32dfc
llvm-svn: 223454
David Majnemer [Fri, 5 Dec 2014 08:11:58 +0000 (08:11 +0000)]
Driver: Cleanup -fexceptions behavior
No functionality change is intended, just a cleanup of the logic clang
uses to determine what -fexceptions/-fno-exceptions ends up doing.
llvm-svn: 223453
Stephane Sezer [Fri, 5 Dec 2014 05:02:41 +0000 (05:02 +0000)]
Fix a crash in dotest.py when the lldb executable is not built.
Summary: If lldb is not built, dotest.py throws an exception because we are using an unset variable.
Reviewers: clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D6516
llvm-svn: 223446
Alexey Bataev [Fri, 5 Dec 2014 04:10:27 +0000 (04:10 +0000)]
[OPENMP] Test for 'omp barrier' directive
llvm-svn: 223445
Alexey Bataev [Fri, 5 Dec 2014 04:09:23 +0000 (04:09 +0000)]
[OPENMP] Codegen for 'omp barrier' directive.
Adds generation of call to "i32 kmpc_cancel_barrier(ident_t *, i32)" libcall for explicitly specified barriers (OMP_IDENT_BARRIER_EXPL flag is added to "flags" field of "ident_t" structure).
Also this patch replaces all calls to "kmpc_barrier" function by calls of "__kmpc_cancel_barrier" function which provides additional functionality for OpenMP 4.0.
Also, library specific enum OpenMPLocationFlags moved to private section of CGOpenMPRuntime class to make it more independent from library implementation.
Differential Revision: http://reviews.llvm.org/D6447
llvm-svn: 223444
Richard Smith [Fri, 5 Dec 2014 02:33:27 +0000 (02:33 +0000)]
[modules] Instead of storing absolute paths in a .pcm file, store the path to
the root of the module and use paths relative to that directory wherever
possible. This is a step towards allowing explicit modules to be relocated
without being rebuilt, which is important for some kinds of distributed builds,
for good paths in diagnostics, and for appropriate .d output.
llvm-svn: 223443
Hal Finkel [Fri, 5 Dec 2014 02:07:35 +0000 (02:07 +0000)]
Revert "r223440 - Consider subregs when calling MI::registerDefIsDead for phys deps"
Reverting this because, while it fixes the problem in the reduced test case, it
does not fix the problem in the full test case from the bug report.
llvm-svn: 223442
Vince Harron [Fri, 5 Dec 2014 02:06:03 +0000 (02:06 +0000)]
Reverting r223423, test timeout
Was causing dosep to hang in some cases.
llvm-svn: 223441
Hal Finkel [Fri, 5 Dec 2014 01:57:22 +0000 (01:57 +0000)]
Consider subregs when calling MI::registerDefIsDead for phys deps
The scheduling dependency graph is built bottom-up within each scheduling
region, and ScheduleDAGInstrs::addPhysRegDeps is called to add output/anti
dependencies, based on physical registers, to the SUs for instructions
based on those that come before them.
In the test case, we start before post-RA scheduling with a block that looks
like this:
...
INLINEASM <...
andc $0,$0,$2
stdcx. $0,0,$3
bne- 1b
> [sideeffect] [mayload] [maystore] [attdialect], $0:[regdef-ec:G8RC], %X6<earlyclobber,def,dead>, $1:[mem], %X3<kill>, $2:[reguse:G8RC], %X5<kill>, $3:[reguse:G8RC], %X3, $4:[mem], %X3, $5:[clobber], %CC<earlyclobber,imp-def,dead>, <<badref>>
...
%X4<def,dead> = ANDIo8 %X4<kill>, 1, %CR0<imp-def,dead>, %CR0GT<imp-def>
...
%R29<def> = ISEL %R3<undef>, %R4<kill>, %CR0GT<kill>
where it is relevant that %CC is an alias to %CR0, and that %CR0GT is a
subregister of %CR0. However, for post-RA scheduling, no dependency was added
to prevent the INLINEASM from being scheduled in between the ANDIo8 and the
ISEL (which communicate via the %CR0GT register).
In ScheduleDAGInstrs::addPhysRegDeps, when called for the %CC operand, we'd
iterate over all of its aliases (which include %CC itself and also %CR0), and
look for previously-encountered defs of those registers. We'd find the ANDIo8,
but decide not to add a dependency between the INLINEASM and the ANDIo8 because
both the INLINEASM's def of %CC is dead, and also the ANDIo8 def of %CR0 is
dead. This ignores, however, that ANDIo8 has a non-dead def of %CR0GT, a
subregister of %CR0, and thus a dependency still must exist.
To fix this problem, when calling registerDefIsDead on the SU with the def, we
also check all subregisters for possible non-dead defs, and add the dependency
if any are found.
Fixes PR21742.
llvm-svn: 223440
Duncan P. N. Exon Smith [Fri, 5 Dec 2014 01:41:36 +0000 (01:41 +0000)]
ADT: Remove GetStringMapEntryFromValue()
It relies on undefined behaviour, since `StringMapEntry<>` is not
a standard layout type. There are no users anyway.
llvm-svn: 223439
Duncan P. N. Exon Smith [Fri, 5 Dec 2014 01:41:34 +0000 (01:41 +0000)]
IR: Stop relying on GetStringMapEntryFromValue()
It relies on undefined behaviour.
llvm-svn: 223438
Sean Callanan [Fri, 5 Dec 2014 01:31:55 +0000 (01:31 +0000)]
Added CMake support so all the Clang modules code
will at least be built by non-OS X builders. This
should head off some build breakage at the pass.
llvm-svn: 223437
Sean Callanan [Fri, 5 Dec 2014 01:27:35 +0000 (01:27 +0000)]
Changes to the expression parser to actually use
the types that we find in Clang modules.
llvm-svn: 223436
Sean Callanan [Fri, 5 Dec 2014 01:26:42 +0000 (01:26 +0000)]
Additional changes required by r223433.
llvm-svn: 223435
Sean Callanan [Fri, 5 Dec 2014 01:22:25 +0000 (01:22 +0000)]
Removed a stray directory.
llvm-svn: 223434
Sean Callanan [Fri, 5 Dec 2014 01:21:59 +0000 (01:21 +0000)]
This is the meat of the code to add Clang modules
support to LLDB. It includes the following:
- Changed DeclVendor to TypeVendor.
- Made the ObjCLanguageRuntime provide a DeclVendor
rather than a TypeVendor.
- Changed the consumers of TypeVendors to use
DeclVendors instead.
- Provided a few convenience functions on
ClangASTContext to make that easier.
llvm-svn: 223433
Sean Callanan [Fri, 5 Dec 2014 01:17:47 +0000 (01:17 +0000)]
Added the LLDB enumeration necessary to find the
Clang headers directory. Needed by r223430.
llvm-svn: 223432
Sean Callanan [Fri, 5 Dec 2014 01:16:31 +0000 (01:16 +0000)]
Added support to Platform to indicate (1) whether the
current platform supports Clang modules, and (2) what
options to pass to Clang so it can load those Clang
modules.
llvm-svn: 223431
Sean Callanan [Fri, 5 Dec 2014 01:15:04 +0000 (01:15 +0000)]
Add support for embedding Clang compiler headers
like tgmath.h and stdarg.h into the LLDB installation,
and then finding them through the Host infrastructure.
Also add a script to actually do this on Mac OS X.
llvm-svn: 223430
Eric Christopher [Fri, 5 Dec 2014 01:06:59 +0000 (01:06 +0000)]
Have the driver and the target code agree on what the default ABI
is for each machine. Fix up darwin tests that were testing for
aapcs on armv7-ios when the actual ABI is apcs.
Should be no user visible change without -cc1.
llvm-svn: 223429
Adrian Prantl [Fri, 5 Dec 2014 01:02:46 +0000 (01:02 +0000)]
Cleanup: Calls to getDwarfRegNum() may actually fail, if there is
no DWARF register number mapping, or if the register was a virtual
register that was never materialized. Previously, we would just emit a
bogus location, after this patch we don't emit a location at all by
doing an early exit.
After my bugfix in r223401 today, this doesn't actually happen on any
target that I tested this with, but it's still preferable to make the
possibility of a failure explicit.
llvm-svn: 223428
Adrian Prantl [Fri, 5 Dec 2014 01:02:36 +0000 (01:02 +0000)]
Add a comment.
llvm-svn: 223427
Anton Yartsev [Fri, 5 Dec 2014 00:59:07 +0000 (00:59 +0000)]
[analyzer] Eliminated endless loop.
llvm-svn: 223426
Paul Robinson [Fri, 5 Dec 2014 00:50:15 +0000 (00:50 +0000)]
Make GetSVN.cmake do its VCS queries with native CMake code.
This lets the queries work on Windows as well as Linux.
This does mean make and cmake aren't using the same scripts to do the
queries (again), but at least GetSVN.cmake understands git and git-svn
as well as svn now.
llvm-svn: 223425
Rafael Espindola [Fri, 5 Dec 2014 00:30:47 +0000 (00:30 +0000)]
linkGlobalVariableProto never returns null. Simplify the caller. NFC.
llvm-svn: 223424
Vince Harron [Fri, 5 Dec 2014 00:23:03 +0000 (00:23 +0000)]
Kill any python test script that takes more than 5 minutes
There is at least one test that hangs on the Linux debian buildbot.
When that test hangs, the buildbot kills dosep which loses all test
results. This change kills just the hung test and should let us see
which test is hanging. This is useful for that test and any others
in the future which start hanging.
llvm-svn: 223423
Eric Christopher [Fri, 5 Dec 2014 00:22:48 +0000 (00:22 +0000)]
Use isOSBinFormatMachO() instead of comparing the object format
against an enum.
llvm-svn: 223422
Eric Christopher [Fri, 5 Dec 2014 00:22:38 +0000 (00:22 +0000)]
Rename the x86 isTargetMacho to isTargetMachO for uniformity.
llvm-svn: 223421
Eric Christopher [Fri, 5 Dec 2014 00:22:35 +0000 (00:22 +0000)]
Both of these subtargets have functions that check whether or
not the target is mach-o. Use them.
llvm-svn: 223420
Sergey Matveev [Fri, 5 Dec 2014 00:10:15 +0000 (00:10 +0000)]
[ASan, LSan] Improve tracking of thread creation.
In the current scheme of things, the call to ThreadStart() in the child
thread is not synchronized with the parent thread. So, if a pointer is passed to
pthread_create, there may be a window of time during which this pointer will not
be discoverable by LSan. I.e. the pthread_create interceptor has already
returneed and thus the pointer is no longer on the parent stack, but we don't
yet know the location of the child stack. This has caused bogus leak reports
(see http://llvm.org/bugs/show_bug.cgi?id=21621/).
This patch makes the pthread_create interceptor wait until the child thread is
properly registered before returning.
llvm-svn: 223419
Rafael Espindola [Fri, 5 Dec 2014 00:09:02 +0000 (00:09 +0000)]
Move merging of alignment to a central location. NFC.
llvm-svn: 223418
Rafael Espindola [Fri, 5 Dec 2014 00:02:42 +0000 (00:02 +0000)]
Add a few extra cases to the test. NFC.
llvm-svn: 223417
Kevin Enderby [Thu, 4 Dec 2014 23:56:27 +0000 (23:56 +0000)]
Re-add support to llvm-objdump for Mach-O universal files and archives with -macho
with fixes. Includes the move of tests for llvm-objdump for universal files to an X86
directory. And the fix where it was failing on linux Rafael tracked down with asan.
I had both Jim Grosbach and Adam Hemet look over the second fix since I could not
set up asan to reproduce with the old version but not with the fix.
llvm-svn: 223416
Ahmed Bougacha [Thu, 4 Dec 2014 23:52:15 +0000 (23:52 +0000)]
[X86] Delete dead code in fcopysign lowering. NFC.
r32900 introduced custom lowering for fcopysign, with two checks to
change the magnitude value's type if it's larger/smaller than the sign
value's type. r32932 replaced that code for the smaller case.
r43205 did the same for the larger case, but left the old code, now dead.
llvm-svn: 223415
Rafael Espindola [Thu, 4 Dec 2014 23:31:21 +0000 (23:31 +0000)]
Convert test to use an extra Input file. NFC.
llvm-svn: 223414
Nico Rieck [Thu, 4 Dec 2014 23:31:08 +0000 (23:31 +0000)]
Parse qualifiers after comma in declarator lists as a Microsoft extension
MSVC parses and ignores these with a warning.
llvm-svn: 223413
Nico Rieck [Thu, 4 Dec 2014 23:30:25 +0000 (23:30 +0000)]
Recognize __unaligned keyword after type specifier
The __unaligned keyword can appear after a struct definition:
struct foo {...} __unaligned *x;
llvm-svn: 223412
Rui Ueyama [Thu, 4 Dec 2014 23:26:11 +0000 (23:26 +0000)]
Remove extra semicolon.
llvm-svn: 223411
Alexey Samsonov [Thu, 4 Dec 2014 23:00:50 +0000 (23:00 +0000)]
Revert "Fix UBSan report in StringMap implementation."
This reverts commit r223402. Some bots fail with -Winvalid-offsetof
warning.
llvm-svn: 223407
Adrian Prantl [Thu, 4 Dec 2014 22:58:41 +0000 (22:58 +0000)]
Simplify implementation and testcase of r223401 based on feedback from dblaikie.
llvm-svn: 223405
Aaron Ballman [Thu, 4 Dec 2014 22:45:31 +0000 (22:45 +0000)]
Adding a FIXME to the code, based on a discussion in IRC; NFC.
llvm-svn: 223403
Alexey Samsonov [Thu, 4 Dec 2014 22:45:31 +0000 (22:45 +0000)]
Fix UBSan report in StringMap implementation.
Use offsetof() instead of a member access within null pointer.
llvm-svn: 223402
Adrian Prantl [Thu, 4 Dec 2014 22:29:04 +0000 (22:29 +0000)]
Debug info: If the RegisterCoalescer::reMaterializeTrivialDef() is
eliminating all uses of a vreg, update any DBG_VALUE describing that vreg
to point to the rematerialized register instead.
llvm-svn: 223401
Eric Christopher [Thu, 4 Dec 2014 22:26:07 +0000 (22:26 +0000)]
Fix a bunch of -Winconsistent-missing-override warnings.
llvm-svn: 223400
Hans Wennborg [Thu, 4 Dec 2014 22:19:28 +0000 (22:19 +0000)]
Add some tests for SimplifyCFG's TurnSwitchRangeIntoICmp(). NFC.
llvm-svn: 223396
Hans Wennborg [Thu, 4 Dec 2014 22:19:25 +0000 (22:19 +0000)]
Add some tests for SimplifyCFG's ConstantFoldTerminator(). NFC.
llvm-svn: 223395
Rafael Espindola [Thu, 4 Dec 2014 22:16:08 +0000 (22:16 +0000)]
Also use --icf=safe if we are being linked by gold.
llvm-svn: 223394
Zachary Turner [Thu, 4 Dec 2014 22:07:02 +0000 (22:07 +0000)]
Fix a minor error where I forgot to declare a variable.
llvm-svn: 223393
Zachary Turner [Thu, 4 Dec 2014 22:06:42 +0000 (22:06 +0000)]
Revert "Use timeout when reading debugserver's port from a named pipe."
This reverts commit
4a5ad2c077166cc3d6e7ab4cc6e3dcbbe922af86.
Windows doesn't support select() for pipe objects, and this also fails
to compile on Windows. Reverting this until we can get it sorted out
to keep the windows build working.
llvm-svn: 223392
Yaron Keren [Thu, 4 Dec 2014 21:46:50 +0000 (21:46 +0000)]
Silence warning: "NOMINMAX" redefined.
llvm-svn: 223391
Roman Divacky [Thu, 4 Dec 2014 21:39:24 +0000 (21:39 +0000)]
Add a FIXME as requested by Renato Golin.
llvm-svn: 223390
Yaron Keren [Thu, 4 Dec 2014 21:36:38 +0000 (21:36 +0000)]
Silence warning: variable 'buffer' set but not used.
llvm-svn: 223389
David Majnemer [Thu, 4 Dec 2014 21:26:25 +0000 (21:26 +0000)]
Revert "Fix a build breakage. Looks like the LLVM side of this change has been reverted"
This reverts commit r223375. We need to use unique_ptr to build with
LLVM r223183.
llvm-svn: 223388
Hans Wennborg [Thu, 4 Dec 2014 21:01:49 +0000 (21:01 +0000)]
CMake: build DLLs in the right directory and include them in the 'install' target (PR21719)
When CMake builds a dynamic library on Windows, the .dll file's location is
determined by the RUNTIME_OUTPUT_DIRECTORY, which we were previously not
setting.
This means for example that clang_rt.asan_dynamic-i386.dll will get built
and installed in the same directory as the corresponding .lib file,
instead of being built in the bin/ directory and not installed at all.
Differential Revision: http://reviews.llvm.org/D6508
llvm-svn: 223387
Peter Collingbourne [Thu, 4 Dec 2014 20:39:58 +0000 (20:39 +0000)]
Roll gofrontend to
2a85649c19e1.
llvm-svn: 223385
Matt Arsenault [Thu, 4 Dec 2014 20:38:18 +0000 (20:38 +0000)]
Add attributes for AMDGPU register limits.
This is a performance hint that can be applied to kernels
to attempt to limit the number of used registers.
llvm-svn: 223384
Bruno Cardoso Lopes [Thu, 4 Dec 2014 20:36:06 +0000 (20:36 +0000)]
[x86] Fix isOffsetSuitableForCodeModel kernel code model offset
Offset == 0 is a valid offset for kernel code model according to the
x86_64 System V ABI. Found by inspection, no testcase.
llvm-svn: 223383
Weiming Zhao [Thu, 4 Dec 2014 20:25:50 +0000 (20:25 +0000)]
[AArch64] Combining Load and IntToFp should check for neon availability
llvm-svn: 223382
Asiri Rathnayake [Thu, 4 Dec 2014 19:34:59 +0000 (19:34 +0000)]
Fix yet another unseen regression caused by r223113
r223113 added support for ARM modified immediate assembly syntax. Which
assumes all immediate operands are prefixed with a '#'. This assumption
is wrong as per the ARMARM - which recommends that all '#' characters be
treated optional. The current patch fixes this regression and adds a test
case. A follow-up patch will expand the test coverage to other instructions.
llvm-svn: 223381
Jonathan Roelofs [Thu, 4 Dec 2014 19:34:50 +0000 (19:34 +0000)]
Fix thumbv4t indirect calls
So there are a couple of issues with indirect calls on thumbv4t. First, the most
'obvious' instruction, 'blx' isn't available until v5t. And secondly, the
next-most-obvious sequence: 'mov lr, pc; bx rN' doesn't DTRT in thumb code
because the saved off pc has its thumb bit cleared, so when the callee returns
we end up in ARM mode.... yuck.
The solution is to 'bl' to a nearby landing pad with a 'bx rN' in it.
We could cut down on code size by sharing the landing pads between call sites
that are close enough, but for the moment let's do correctness first and look at
performance later.
Patch by: Iain Sandoe
http://reviews.llvm.org/D6519
llvm-svn: 223380
Enrico Granata [Thu, 4 Dec 2014 19:31:51 +0000 (19:31 +0000)]
We should not pretend that an int is a valid ObjC pointer. If your number truly is a pointer, po (id)myNumber is a better alternative. Fixes rdar://
16585032
llvm-svn: 223379
Philip Reames [Thu, 4 Dec 2014 19:13:45 +0000 (19:13 +0000)]
Add a test case for argument type coercion in an invoke of a vararg function
This would have caught the bug I fixed in 223370.
llvm-svn: 223378
Greg Clayton [Thu, 4 Dec 2014 18:49:24 +0000 (18:49 +0000)]
Remove dead code from SymbolFileDWARF:
lldb::TypeSP
SymbolFileDWARF::FindDefinitionTypeForDIE (
DWARFCompileUnit* dwarf_cu,
const DWARFDebugInfoEntry *die,
const lldb_private::ConstString &type_name);
This function isn't used as it has been replaced by:
lldb::TypeSP
SymbolFileDWARF::FindDefinitionTypeForDWARFDeclContext (
const DWARFDeclContext &die_decl_ctx);
I am about to change the way we resolve C/C++ class/struct/union types and want to clean up SymbolFileDWARF before I start.
llvm-svn: 223376
Enrico Granata [Thu, 4 Dec 2014 18:39:40 +0000 (18:39 +0000)]
Fix a build breakage. Looks like the LLVM side of this change has been reverted
llvm-svn: 223375
Philip Reames [Thu, 4 Dec 2014 18:33:28 +0000 (18:33 +0000)]
Add a section to Statepoint docs mentioning shared bugzilla search and standard mailing lists
llvm-svn: 223374
Rui Ueyama [Thu, 4 Dec 2014 18:29:03 +0000 (18:29 +0000)]
Revert "Rewrite InputGraph's Group"
This reverts commit r223330 because it broke Darwin and ELF
linkers in a way that we couldn't have caught with the existing
test cases.
llvm-svn: 223373
Rafael Espindola [Thu, 4 Dec 2014 17:54:35 +0000 (17:54 +0000)]
Detect if the linker is gold and if so always use --gc-sections.
llvm-svn: 223372