Adrian McCarthy [Thu, 23 Mar 2017 17:18:50 +0000 (17:18 +0000)]
Somehow this still breaks because of ANSI color codes in test output on Linux.
Reverting until I can figure out the root cause.
Revert "Re-land: Make NativeExeSymbol a concrete subclass of NativeRawSymbol [PDB]"
This reverts commit
f461a70cc376f0f91c8b4917be79479cc86330a5.
llvm-svn: 298626
Adrian McCarthy [Thu, 23 Mar 2017 16:57:53 +0000 (16:57 +0000)]
Fix build break after r298623
Use the -color-output option explicitly to eliminate the ANSI color codes in
pdb-native-summary.test. (The default should have done this.)
llvm-svn: 298625
Pirama Arumuga Nainar [Thu, 23 Mar 2017 16:47:47 +0000 (16:47 +0000)]
[ARM] Fix computeKnownBits for ARMISD::CMOV
Summary:
The true and false operands for the CMOV are operands 0 and 1.
ARMISelLowering.cpp::computeKnownBits was looking at operands 1 and 2
instead. This can cause CMOV instructions to be incorrectly folded into
BFI if value set by the CMOV is another CMOV, whose known bits are
computed incorrectly.
This patch fixes the issue and adds a test case.
Reviewers: kristof.beyls, jmolloy
Subscribers: llvm-commits, aemerson, srhines, rengolin
Differential Revision: https://reviews.llvm.org/D31265
llvm-svn: 298624
Adrian McCarthy [Thu, 23 Mar 2017 16:45:20 +0000 (16:45 +0000)]
Re-land: Make NativeExeSymbol a concrete subclass of NativeRawSymbol [PDB]
The new test should pass on all platforms now that llvm-pdbdump has the
`-color-output` option.
This moves exe symbol-specific method implementations out of NativeRawSymbol
into a concrete subclass. Also adds implementations for hasCTypes and
hasPrivateSymbols and a simple test to ensure the native reader can access
the summary information for the executable from the PDB.
Original Differential Revision: https://reviews.llvm.org/D31059
llvm-svn: 298623
Argyrios Kyrtzidis [Thu, 23 Mar 2017 16:34:47 +0000 (16:34 +0000)]
[index] When indexing system headers make sure to report important reference relations
Even if we exclude plain reference occurrences, we should include relation-based references, like the 'base' one.
rdar://
31010737
llvm-svn: 298622
Marek Kurdej [Thu, 23 Mar 2017 16:32:06 +0000 (16:32 +0000)]
[clang-tidy] Fix treating non-space whitespaces in checks list.
Summary:
This furtherly improves r295303: [clang-tidy] Ignore spaces between globs in the Checks option.
Trims all whitespaces and not only spaces and correctly computes the offset of the checks list (taking the size before trimming).
Reviewers: alexfh
Reviewed By: alexfh
Subscribers: cfe-commits, JDevlieghere
Differential Revision: https://reviews.llvm.org/D30567
llvm-svn: 298621
Matthew Simpson [Thu, 23 Mar 2017 16:29:58 +0000 (16:29 +0000)]
[LV] Vectorize GEPs
This patch adds support for vectorizing GEPs. Previously, we only generated
vector GEPs on-demand when creating gather or scatter operations. All GEPs from
the original loop were scalarized by default, and if a pointer was to be stored
to memory, we would have to build up the pointer vector with insertelement
instructions.
With this patch, we will vectorize all GEPs that haven't already been marked
for scalarization.
The patch refines collectLoopScalars to more exactly identify the scalar GEPs.
The function now more closely resembles collectLoopUniforms. And the patch
moves vector GEP creation out of vectorizeMemoryInstruction and into the main
vectorization loop. The vector GEPs needed for gather and scatter operations
will have already been generated before vectoring the memory accesses.
Differential Revision: https://reviews.llvm.org/D30710
llvm-svn: 298620
Alexander Kornienko [Thu, 23 Mar 2017 16:29:39 +0000 (16:29 +0000)]
[clang-tidy] Don't use groups in the big regexy filter
Fixes https://bugs.llvm.org/show_bug.cgi?id=27641.
llvm-svn: 298619
Marshall Clow [Thu, 23 Mar 2017 16:13:50 +0000 (16:13 +0000)]
Update the algorithm tests to not use the (deprecated) function binders. No functional change.
llvm-svn: 298618
Michael Kruse [Thu, 23 Mar 2017 16:12:21 +0000 (16:12 +0000)]
[ScopInfo] Introduce ScopStmt::contains(BB*). NFC.
Provide an common way for testing if a statement contains something
for region and block statements. First user is
RegionGenerator::addOperandToPHI.
Suggested-by: Tobias Grosser <tobias@grosser.es>
llvm-svn: 298617
Simon Pilgrim [Thu, 23 Mar 2017 16:09:34 +0000 (16:09 +0000)]
[X86][SSE] Extract elements from narrower shuffle masks.
Add support for widening narrow shuffle masks so we can directly extract from the relevant input vector of the shuffle.
llvm-svn: 298616
Matthew Simpson [Thu, 23 Mar 2017 16:07:21 +0000 (16:07 +0000)]
[LV] Delete unneeded scalar GEP creation code
The code for generating scalar base pointers in vectorizeMemoryInstruction is
not needed. We currently scalarize all GEPs and maintain the scalarized values
in VectorLoopValueMap. The GEP cloning in this unneeded code is the same as
that in scalarizeInstruction. The test cases that changed as a result of this
patch changed because we were able to reuse the scalarized GEP that we
previously generated instead of cloning a new one.
Differential Revision: https://reviews.llvm.org/D30587
llvm-svn: 298615
Tim Shen [Thu, 23 Mar 2017 16:02:47 +0000 (16:02 +0000)]
[PPC] Add generated tests for all atomic operations
Summary: Add tests for all atomic operations for powerpc64le, so that all changes can be easily examined.
Reviewers: kbarton, hfinkel, echristo
Subscribers: mehdi_amini, nemanjai, llvm-commits
Differential Revision: https://reviews.llvm.org/D31285
llvm-svn: 298614
Alex Shlyapnikov [Thu, 23 Mar 2017 15:57:58 +0000 (15:57 +0000)]
Bypass potential libc's sysconf interceptors
Summary:
sysconf(_SC_PAGESIZE) is called very early during sanitizer init and
any instrumented code (sysconf() wrapper/interceptor will likely be
instrumented) calling back to sanitizer before init is done will
most surely crash.
2nd attempt, now with glibc version checks (D31092 was reverted).
Reviewers: eugenis
Subscribers: kubamracek, llvm-commits
Differential Revision: https://reviews.llvm.org/D31221
llvm-svn: 298613
Derek Schuff [Thu, 23 Mar 2017 15:46:47 +0000 (15:46 +0000)]
[WebAssembly] Fix import type to be signed LEBs
This fix is a follow up a previous change with stored
value types as signed integers in memory.
In future, once the yaml<->wasm binary patche lands we
can add test coverage for this kind of thing.
Differential Revision: https://reviews.llvm.org/D31227
Patch by Sam Clegg
llvm-svn: 298612
Sanjay Patel [Thu, 23 Mar 2017 15:38:22 +0000 (15:38 +0000)]
[x86] add memcmp tests, remove run
Add tests for vector lengths that could be handled without a libcall.
There's an explicit test for 'nobuiltin', so there's not much value
in a separate run that checks that same behavior over and over again.
llvm-svn: 298611
Adrian McCarthy [Thu, 23 Mar 2017 15:28:15 +0000 (15:28 +0000)]
Add option to control whether llvm-pdbdump outputs in color
Adds -color-output option to llvm-pdbdump pretty commands that lets the user
specify whether the output should have color. The default depends on whether
the output is going to a TTY (per prior discussion in
https://reviews.llvm.org/D31246).
This will enable tests that pipe llvm-pdbdump output to FileCheck to work
across platforms without regard to the differences in ANSI codes.
Differential Revision: https://reviews.llvm.org/D31263
llvm-svn: 298610
Igor Breger [Thu, 23 Mar 2017 15:25:57 +0000 (15:25 +0000)]
[GlobalISel][X86] Support G_STORE/G_LOAD operation
Summary:
1. Support pointer type as function argumnet and return value
2. G_STORE/G_LOAD - set legal action for i8/i16/i32/i64/f32/f64/vec128
3. RegisterBank - support typeless operations like G_STORE/G_LOAD, for scalar use GPR bank.
4. Support instruction selection for G_LOAD/G_STORE
Reviewers: zvi, rovka, ab, qcolombet
Reviewed By: rovka
Subscribers: llvm-commits, dberris, kristof.beyls, eladcohen, guyblank
Differential Revision: https://reviews.llvm.org/D30973
llvm-svn: 298609
Alexander Kornienko [Thu, 23 Mar 2017 15:17:44 +0000 (15:17 +0000)]
[clang-tidy] Fix diag message for catch-by-value
Summary:
```
catch (std::exception ex)
{
}
```
Was flagged with "catch handler catches a pointer value".
Reviewers: alexfh, aaron.ballman
Reviewed By: aaron.ballman
Subscribers: cfe-commits, JDevlieghere
Patch by Florian Gross!
Differential Revision: https://reviews.llvm.org/D30592
llvm-svn: 298608
Alexander Kornienko [Thu, 23 Mar 2017 15:13:54 +0000 (15:13 +0000)]
[clang-tidy] Catch trivially true statements like a != 1 || a != 3
Catch trivially true statements of the form a != 1 || a != 3. Statements like
these are likely errors. They are particularly easy to miss when handling enums:
enum State {
RUNNING,
STOPPED,
STARTING,
ENDING
}
...
if (state != RUNNING || state != STARTING)
...
Patch by Blaise Watson!
Differential revision: https://reviews.llvm.org/D29858
llvm-svn: 298607
Vassil Vassilev [Thu, 23 Mar 2017 15:11:07 +0000 (15:11 +0000)]
Publish RAIIObjectsForParser.h for external usage.
Some clients (eg the cling interpreter) need to recover their parser from
errors.
Patch by Axel Naumann (D31190)!
llvm-svn: 298606
Paul Osmialowski [Thu, 23 Mar 2017 15:03:17 +0000 (15:03 +0000)]
GOMP compatibility: add missing OpenMP4.0 task deps handling code
Differential Revision: https://reviews.llvm.org/D31071
llvm-svn: 298605
Nirav Dave [Thu, 23 Mar 2017 15:01:50 +0000 (15:01 +0000)]
[SDAG] Fix zeroExtend assertion error
Move CombineTo preventing deleted node from being returned in
visitZERO_EXTEND.
Fixes PR32284.
Reviewers: RKSimon, bogner
Reviewed By: RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D31254
llvm-svn: 298604
Vassil Vassilev [Thu, 23 Mar 2017 14:54:34 +0000 (14:54 +0000)]
Do not polute the source directory.
When a python script is run, by default it creates the bytecode file if the directory is writable, and this ‘pollutes’ source folders.
From python's help:
-B Don’t write .py[co] files on import. See also PYTHONDONTWRITEBYTECODE.
Patch by Pere Mato (D30604)!
llvm-svn: 298603
Dehao Chen [Thu, 23 Mar 2017 14:43:10 +0000 (14:43 +0000)]
Do not set branch weight if the branch weight annotation is present.
Summary: ThinLTO will annotate the CFG twice. If the branch weight is set by the first annotation, we should not set the branch weight again in the second annotation because the first annotation is more accurate as there is less optimization that could affect debug info accuracy.
Reviewers: tejohnson, davidxl
Reviewed By: tejohnson
Subscribers: mehdi_amini, aprantl, llvm-commits
Differential Revision: https://reviews.llvm.org/D31228
llvm-svn: 298602
Bruce Mitchener [Thu, 23 Mar 2017 14:39:23 +0000 (14:39 +0000)]
[libcxx] Improve code generation for vector::clear().
Summary:
By manipulating a local variable in the loop, when the loop can
be optimized away (due to no non-trivial destructors), this lets
it be fully optimized away and we modify the __end_ separately.
This results in a substantial improvement in the generated code.
Prior to this change, this would be generated (on x86_64):
movq (%rdi), %rdx
movq 8(%rdi), %rcx
cmpq %rdx, %rcx
je LBB2_2
leaq -12(%rcx), %rax
subq %rdx, %rax
movabsq $-
6148914691236517205, %rdx ## imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq $3, %rdx
notq %rdx
leaq (%rdx,%rdx,2), %rax
leaq (%rcx,%rax,4), %rax
movq %rax, 8(%rdi)
And after:
movq (%rdi), %rax
movq %rax, 8(%rdi)
This brings this in line with what other implementations do.
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25241
llvm-svn: 298601
Marshall Clow [Thu, 23 Mar 2017 14:20:43 +0000 (14:20 +0000)]
Use 'REQUIRES: c++98 || c++03 || c++11 || c++14' instead of the deprecated 'REQUIRES-ANY: c++98, c++03, c++11, c++14'
llvm-svn: 298600
Zvi Rackover [Thu, 23 Mar 2017 14:08:26 +0000 (14:08 +0000)]
X86FixupBWInsts: Minor cleanup. NFC
Summary: Cleanup some remnants of code from when the X86FixupBWInsts pass did both forward liveness analysis and backward liveness analysis.
Reviewers: MatzeB, myatsina, DavidKreitzer
Reviewed By: MatzeB
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D31264
llvm-svn: 298599
Marshall Clow [Thu, 23 Mar 2017 13:44:06 +0000 (13:44 +0000)]
One more file for the random_shuffle removal
llvm-svn: 298598
Marshall Clow [Thu, 23 Mar 2017 13:43:37 +0000 (13:43 +0000)]
Remove random_shuffle in C++17. Please use shuffle instead. If you have to, you cant get it back by defining _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE before including any libc++ headers.
llvm-svn: 298597
Strahinja Petrovic [Thu, 23 Mar 2017 13:40:07 +0000 (13:40 +0000)]
[Mips] Emit the correct DINS variant
This patch fixes emitting of correct variant of DINS instruction.
Differential Revision: https://reviews.llvm.org/D30988
llvm-svn: 298596
Tobias Grosser [Thu, 23 Mar 2017 13:38:24 +0000 (13:38 +0000)]
Update to isl-0.18-402-ga30c537
This is a regular maintenance update.
llvm-svn: 298595
Simon Pilgrim [Thu, 23 Mar 2017 13:33:03 +0000 (13:33 +0000)]
[X86][SSE] Tidyup canWidenShuffleElements. NFCI.
Pull out mask elements at the start, allowing us to make the widening pattern matching more readable.
llvm-svn: 298594
Strahinja Petrovic [Thu, 23 Mar 2017 13:19:04 +0000 (13:19 +0000)]
[Mips] Fix for decoding DINS instruction - disassembler
This patch fixes decoding of size and position for DINSM
and DINSU instructions.
Differential Revision: https://reviews.llvm.org/D31072
llvm-svn: 298593
Simon Pilgrim [Thu, 23 Mar 2017 13:18:09 +0000 (13:18 +0000)]
[X86][SSE] Add computeNumSignBits test for sitofp of (extended) i64 extracted element
llvm-svn: 298592
Simon Atanasyan [Thu, 23 Mar 2017 12:17:32 +0000 (12:17 +0000)]
[ELF] Print two more MIPS targets "supported" by LLD
These targets are related to MIPS N32 ABI.
llvm-svn: 298591
Igor Breger [Thu, 23 Mar 2017 12:13:29 +0000 (12:13 +0000)]
[GlobalISel][X86] clang-format. NFC
llvm-svn: 298590
Alex Lorenz [Thu, 23 Mar 2017 11:44:25 +0000 (11:44 +0000)]
Support attributes for Objective-C categories
rdar://
31095315
Differential Revision: https://reviews.llvm.org/D31179
llvm-svn: 298589
Alex Lorenz [Thu, 23 Mar 2017 11:14:27 +0000 (11:14 +0000)]
[CodeGen] Emit a CoreFoundation link guard when @available is used
After r297760, __isOSVersionAtLeast in compiler-rt loads the CoreFoundation
symbols at runtime. This means that `@available` will always fail when used in a
binary without a linked CoreFoundation.
This commit forces Clang to emit a reference to a CoreFoundation symbol when
`@available` is used to ensure that linking will fail when CoreFoundation isn't
linked with the build product.
rdar://
31039592
Differential Revision: https://reviews.llvm.org/D30977
llvm-svn: 298588
Alex Lorenz [Thu, 23 Mar 2017 10:46:05 +0000 (10:46 +0000)]
[ObjC][ARC] Avoid -Warc-performSelector-leaks for performSelector variations
that became supported after r297019
The commit r297019 expanded the performSelector ObjC method family heuristic
to ensure that -Wobjc-unsafe-perform-selector covers all performSelector
variations. However, this made the -Warc-performSelector-leaks too noisy, as
that warning produces mostly false positives since the selector is unknown.
This commit reverts the ObjC method family heuristics introduced in r297019.
This ensures that -Warc-performSelector-leaks isn't too noisy. The commit still
preserves the coverage of -Wobjc-unsafe-perform-selector.
rdar://
31124629
llvm-svn: 298587
Michael Zuckerman [Thu, 23 Mar 2017 09:57:01 +0000 (09:57 +0000)]
[X86][TD][vpmovm2 ] New TD pattern for the vpmovm2 instruction
Up until now, vpmovm2 instruction described its destination operand size
by the source operand size. This patch adds new pattern for the vpmovm2
instruction. The node describes new expansion of the destination (from
{128|256} to 512).
Differential Revision: https://reviews.llvm.org/D30654
llvm-svn: 298586
Bruce Mitchener [Thu, 23 Mar 2017 09:52:26 +0000 (09:52 +0000)]
Fix warnings from clang build on macOS.
Reviewers: lldb-commits
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D31279
llvm-svn: 298585
Craig Topper [Thu, 23 Mar 2017 07:06:42 +0000 (07:06 +0000)]
[ValueTracking] Use APInt::isNegative instead of using operator[BitWidth-1]. NFCI
llvm-svn: 298584
Craig Topper [Thu, 23 Mar 2017 07:06:39 +0000 (07:06 +0000)]
[ValueTracking] Use setAllBits/setSignBit/setLowBits/setHighBits. NFCI
llvm-svn: 298583
Marshall Clow [Thu, 23 Mar 2017 06:25:26 +0000 (06:25 +0000)]
Silence a couple of 'unused variable' warnings in c++03 tests. No functional change
llvm-svn: 298582
Michael Park [Thu, 23 Mar 2017 06:21:24 +0000 (06:21 +0000)]
Worked around GCC bug 56480. Explicit specialization in a different namespace.
Summary: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480
Reviewers: EricWF
Reviewed By: EricWF
Differential Revision: https://reviews.llvm.org/D31273
llvm-svn: 298581
Marshall Clow [Thu, 23 Mar 2017 06:20:18 +0000 (06:20 +0000)]
Can't test for noexcept on C++03; std::hash<nullptr_t> isn't available until C++17
llvm-svn: 298580
Craig Topper [Thu, 23 Mar 2017 06:15:56 +0000 (06:15 +0000)]
[IR] Use a binary search in DataLayout::getAlignmentInfo
Summary:
We currently do a linear scan through all of the Alignments array entries anytime getAlignmentInfo is called. I noticed while profiling compile time on a -O2 opt run that this function can be called quite frequently and was showing about as about 1% of the time in callgrind.
This patch puts the Alignments array into a sorted order by type and then by bitwidth. We can then do a binary search. And use the sorted nature to handle the special cases for INTEGER_ALIGN. Some of this is modeled after the sorting/searching we do for pointers already.
This reduced the time spent in this routine by about 2/3 in the one compilation I was looking at.
We could maybe improve this more by using a DenseMap to cache the results, but just sorting was easy and didn't require extra data structure. And I think it made the integer handling simpler.
Reviewers: sanjoy, davide, majnemer, resistor, arsenm, mehdi_amini
Reviewed By: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: https://reviews.llvm.org/D31232
llvm-svn: 298579
Craig Topper [Thu, 23 Mar 2017 05:25:25 +0000 (05:25 +0000)]
[IR] Mark Use::getUser and Use::getImpliedUse as LLVM_READONLY.
llvm-svn: 298578
Petr Hosek [Thu, 23 Mar 2017 03:52:34 +0000 (03:52 +0000)]
[ELF] Allow references to reserved symbols in linker scripts
This requires collectign all symbols referenced in the linker script
and adding them to symbol table as undefined symbol.
Differential Revision: https://reviews.llvm.org/D31147
llvm-svn: 298577
Rui Ueyama [Thu, 23 Mar 2017 03:44:08 +0000 (03:44 +0000)]
Simplify. No functionality change intended.
I honestly do not understand this part of code as it is too tangled.
What I'm trying now is to carefully disentangle it by transforming
code without changing meaining to see if I can improve overall
readability.
llvm-svn: 298576
Rui Ueyama [Thu, 23 Mar 2017 03:11:03 +0000 (03:11 +0000)]
Remove unnecessary local variable.
llvm-svn: 298575
Nikola Smiljanic [Thu, 23 Mar 2017 02:51:25 +0000 (02:51 +0000)]
Fix issues in clang-format's AlignConsecutive modes.
Patch by Ben Harper.
llvm-svn: 298574
Marshall Clow [Thu, 23 Mar 2017 02:40:28 +0000 (02:40 +0000)]
Implement P0599: 'noexcept for hash functions'. Fix a couple of hash functions (optional<T> and unique_ptr<T>) which were mistakenly marked as 'noexcept'. Reviewed as https://reviews.llvm.org/D31234
llvm-svn: 298573
Davide Italiano [Thu, 23 Mar 2017 01:34:45 +0000 (01:34 +0000)]
[ARM] Reduce code duplication by factoring out in a lambda. NFCI.
llvm-svn: 298572
Rui Ueyama [Thu, 23 Mar 2017 01:19:10 +0000 (01:19 +0000)]
Refine comment.
llvm-svn: 298571
Rui Ueyama [Thu, 23 Mar 2017 01:16:57 +0000 (01:16 +0000)]
Fix Windows buildbots.
llvm-svn: 298570
Rui Ueyama [Thu, 23 Mar 2017 01:00:41 +0000 (01:00 +0000)]
Force @{init,fini}_array if section name starts with ".{init,fini}_array.".
Fixes https://bugs.llvm.org/show_bug.cgi?id=32307.
Differential Revision: https://reviews.llvm.org/D31255
llvm-svn: 298569
Rui Ueyama [Thu, 23 Mar 2017 01:00:22 +0000 (01:00 +0000)]
Print out "suppoted targets".
This is to improve compatibility with GNU Libtool that expect
/supported targets:.* elf/ in a message for the -help option.
Differential Revision: https://reviews.llvm.org/D31208
llvm-svn: 298568
Davide Italiano [Thu, 23 Mar 2017 00:54:16 +0000 (00:54 +0000)]
[ELF] Add -z nodlopen option.
Patch by Mark Kettenis.
llvm-svn: 298567
Eric Fiselier [Thu, 23 Mar 2017 00:48:59 +0000 (00:48 +0000)]
Address post-commit review comments regarding test_workarounds.h
llvm-svn: 298566
Eric Fiselier [Thu, 23 Mar 2017 00:33:33 +0000 (00:33 +0000)]
[coroutines] Implement unhandled_exception changes.
Summary:
This patch adopts the recent changes that renamed `set_exception(exception_pointer)` to `unhandled_exception()`.
Additionally `unhandled_exception()` is now required, and so an error is emitted when exceptions are enabled but the promise type does not provide the member.
When exceptions are disabled a warning is emitted instead of an error, The warning notes that the `unhandled_exception()` function is required when exceptions are enabled.
Reviewers: rsmith, GorNishanov, aaron.ballman, majnemer
Reviewed By: GorNishanov
Subscribers: mehdi_amini, cfe-commits
Differential Revision: https://reviews.llvm.org/D30859
llvm-svn: 298565
Reid Kleckner [Thu, 23 Mar 2017 00:14:23 +0000 (00:14 +0000)]
[codeview] Move type index remapping logic to type merger
Summary:
This removes the 'remapTypeIndices' method on every TypeRecord class. My
original idea was that this would be the beginning of some kind of
generic entry point that would enumerate all of the TypeIndices inside
of a TypeRecord, so that we could write generic graph algorithms for
them without duplicating the knowledge of which fields are type index
fields everywhere. This never happened, and nothing else uses this
method. I need to change the API to deal with merging into IPI streams,
so let's move it into the file that uses it first.
Reviewers: zturner, ruiu
Reviewed By: zturner, ruiu
Subscribers: mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D31267
llvm-svn: 298564
Davide Italiano [Wed, 22 Mar 2017 23:37:58 +0000 (23:37 +0000)]
[AArch64] Drive-by cleanup, make this code shorter. NFCI.
llvm-svn: 298563
Artyom Skrobov [Wed, 22 Mar 2017 23:35:51 +0000 (23:35 +0000)]
Reapply r298417 "[ARM] Recommit the glueless lowering of addc/adde in Thumb1"
The UB in t2_so_imm_neg conversion has been addressed under D31242 / r298512
This reverts commit r298482.
llvm-svn: 298562
Zachary Turner [Wed, 22 Mar 2017 23:33:16 +0000 (23:33 +0000)]
Delete some more dead includes.
This breaks the cycle between Target and PluginLanguageC++, reducing
the overall cycle count from 43 to 42.
llvm-svn: 298561
Konstantin Zhuravlyov [Wed, 22 Mar 2017 23:27:09 +0000 (23:27 +0000)]
[AMDGPU] Do not emit isa info as code object metadata
- It was decided to expose this information through other means (rocr)
Differential Revision: https://reviews.llvm.org/D30970
llvm-svn: 298560
Artyom Skrobov [Wed, 22 Mar 2017 23:12:59 +0000 (23:12 +0000)]
[ARM] simplifying t2_so_imm_neg as suggested by Eli Friedman in D31242 (NFC)
llvm-svn: 298559
Konstantin Zhuravlyov [Wed, 22 Mar 2017 23:10:46 +0000 (23:10 +0000)]
[AMDGPU] Emit kernel debug properties as code object metadata
Differential Revision: https://reviews.llvm.org/D30969
llvm-svn: 298558
Rui Ueyama [Wed, 22 Mar 2017 23:03:35 +0000 (23:03 +0000)]
Rename forEach -> parallelForEach and forLoop -> parallelFor.
"Parallel" is the most important aspect of the functions,
so we shouldn't omit that.
llvm-svn: 298557
Konstantin Zhuravlyov [Wed, 22 Mar 2017 22:54:39 +0000 (22:54 +0000)]
[AMDGPU] Emit kernel code properties as code object metadata
- These are not required for low level runtime
Differential Revision: https://reviews.llvm.org/D29949
llvm-svn: 298556
Eric Christopher [Wed, 22 Mar 2017 22:44:52 +0000 (22:44 +0000)]
Clean up some Subtarget uses and casts in the X86 backend, removing unnecessary work or calls.
llvm-svn: 298555
Eric Fiselier [Wed, 22 Mar 2017 22:41:41 +0000 (22:41 +0000)]
[libc++] Work around C1XX bug which breaks poisoned hash tests.
Summary: This is my attempt to work around the C1XX bug described to me by @BillyONeal.
Reviewers: BillyONeal, STL_MSFT, CaseyCarter
Reviewed By: BillyONeal
Subscribers: cfe-commits, BillyONeal
Differential Revision: https://reviews.llvm.org/D31260
llvm-svn: 298554
Sanjay Patel [Wed, 22 Mar 2017 22:39:17 +0000 (22:39 +0000)]
[x86] improve tests, add tests, auto-generate checks; NFC
llvm-svn: 298553
Konstantin Zhuravlyov [Wed, 22 Mar 2017 22:32:22 +0000 (22:32 +0000)]
[AMDGPU] Restructure code object metadata creation
- Rename runtime metadata -> code object metadata
- Make metadata not flow
- Switch enums to use ScalarEnumerationTraits
- Cleanup and move AMDGPUCodeObjectMetadata.h to AMDGPU/MCTargetDesc
- Introduce in-memory representation for attributes
- Code object metadata streamer
- Create metadata for isa and printf during EmitStartOfAsmFile
- Create metadata for kernel during EmitFunctionBodyStart
- Finalize and emit metadata to .note during EmitEndOfAsmFile
- Other minor improvements/bug fixes
Differential Revision: https://reviews.llvm.org/D29948
llvm-svn: 298552
Konstantin Zhuravlyov [Wed, 22 Mar 2017 21:48:18 +0000 (21:48 +0000)]
[AMDGPU] Fix bug 31610
Differential Revision: https://reviews.llvm.org/D31258
llvm-svn: 298551
Saleem Abdulrasool [Wed, 22 Mar 2017 21:15:19 +0000 (21:15 +0000)]
c++filt: support COFF import thunks
The synthetic thunk for the import is prefixed with __imp_. Attempt to
undecorate the names when they begin with the __imp_ prefix.
llvm-svn: 298550
Jonathan Roelofs [Wed, 22 Mar 2017 21:13:49 +0000 (21:13 +0000)]
Actually install scan-build / ccc-analyzer / c++-analyzer on windows
Before, we were only installing the wrappers... oops.
llvm-svn: 298549
Kostya Serebryany [Wed, 22 Mar 2017 20:32:44 +0000 (20:32 +0000)]
[libFuzzer] add two experimental flags to make corpus merging more scalable: -save_coverage_summary/-load_coverage_summary. This is still WIP, the documentation will come later if these flags survive
llvm-svn: 298548
Tim Hammerquist [Wed, 22 Mar 2017 20:21:52 +0000 (20:21 +0000)]
Merge r298536 changes to Xcode
rdar://problem/
31202813
llvm-svn: 298547
Michael Kruse [Wed, 22 Mar 2017 20:09:58 +0000 (20:09 +0000)]
[DeLICM] Add const qualifiers. NFC.
llvm-svn: 298546
Reid Kleckner [Wed, 22 Mar 2017 19:49:29 +0000 (19:49 +0000)]
Use lld-link /nopdb to suppress PDB generation when DWARF is required
Fixes cfi/stats.cpp and asan/fuse-lld.cc on Windows.
llvm-svn: 298545
Reid Kleckner [Wed, 22 Mar 2017 19:49:12 +0000 (19:49 +0000)]
Add a /nopdb flag to disable PDB generation
This will be used in the sanitizer test suite, which wants to use DWARF
line tables.
At some point we should reconsider how LLD handles the long section
names required by DWARF debug sections.
llvm-svn: 298544
Michael Kruse [Wed, 22 Mar 2017 19:31:06 +0000 (19:31 +0000)]
[Support] Add functions to ISLTools.
Add shiftDim and convertZoneToTimepoints overloads for isl maps.
Add distributeDomain, liftDomains and applyDomainRange functions.
These are going to be used in https://reviews.llvm.org/D31247
(Add known array contents to Knowledge)
llvm-svn: 298543
Anna Thomas [Wed, 22 Mar 2017 19:27:12 +0000 (19:27 +0000)]
[LVI] Add an LVI printer pass to capture test LVI cache after transformations
Summary:
Adding a printer pass for printing the LVI cache values after transformations
that use LVI.
This will help us in identifying cases where LVI
invariants are violated, or transforms that leave LVI in an incorrect state.
Right now, I have added two test cases to show that the printer pass is working.
I will be adding more test cases in a later change, once this change is
checked in upstream.
Reviewers: reames, dberlin, sanjoy, apilipenko
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D30790
llvm-svn: 298542
Zachary Turner [Wed, 22 Mar 2017 19:24:17 +0000 (19:24 +0000)]
Remove dead include from GoASTContext.cpp.
This #include was the cause of a dependency from Symbol ->
DataFormatters. However, nothing from the header was being
used anyway, so we can just remove it with no adverse effects.
This reduces the overall cycle count from 44 to 43.
llvm-svn: 298541
Luqman Aden [Wed, 22 Mar 2017 19:16:39 +0000 (19:16 +0000)]
Preserve nonnull metadata on Loads through SROA & mem2reg.
Summary:
https://llvm.org/bugs/show_bug.cgi?id=31142 :
SROA was dropping the nonnull metadata on loads from allocas that got optimized out. This patch simply preserves nonnull metadata on loads through SROA and mem2reg.
Reviewers: chandlerc, efriedma
Reviewed By: efriedma
Subscribers: hfinkel, spatel, efriedma, arielb1, davide, llvm-commits
Differential Revision: https://reviews.llvm.org/D27114
llvm-svn: 298540
Nico Weber [Wed, 22 Mar 2017 19:15:24 +0000 (19:15 +0000)]
Make nullability test pass on Windows, which evaluates parameters right-to-left.
llvm-svn: 298539
Hans Wennborg [Wed, 22 Mar 2017 19:13:13 +0000 (19:13 +0000)]
[X86] Implement __readgsqword (and the rest) as builtins (PR32373)
It seems MS headers have started using __readgsqword, and since it's
used in a header that doesn't include intrin.h, we can't implement it as
an inline function anymore.
That was already the case for __readfsdword, which Saleem added support
for in r220859. This patch reuses that codegen to implement all of
__read[fg]s{byte,word,dword,qword}.
Differential Revision: https://reviews.llvm.org/D31248
llvm-svn: 298538
Francis Ricci [Wed, 22 Mar 2017 18:42:43 +0000 (18:42 +0000)]
Factor lsan allocator cache accesses into a function
Summary:
This patch is the first step towards allows us to move away from using
__thread for the allocator cache on darwin,
which is requiring for building lsan for darwin on ios version 7
and on iossim i386.
This will be followed by patches to move the function into OS-specific files.
Reviewers: kubamracek, kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D29994
llvm-svn: 298537
Zachary Turner [Wed, 22 Mar 2017 18:40:07 +0000 (18:40 +0000)]
Move FileSpec from Host -> Utility.
llvm-svn: 298536
Zachary Turner [Wed, 22 Mar 2017 18:23:14 +0000 (18:23 +0000)]
[analyze deps] Show incoming and outgoing counts on island members.
llvm-svn: 298535
Peter Collingbourne [Wed, 22 Mar 2017 18:22:59 +0000 (18:22 +0000)]
IPO: Const correctness for summaries passed into passes.
Pass const qualified summaries into importers and unqualified summaries into
exporters. This lets us const-qualify the summary argument to thinBackend.
Differential Revision: https://reviews.llvm.org/D31230
llvm-svn: 298534
Rui Ueyama [Wed, 22 Mar 2017 18:04:57 +0000 (18:04 +0000)]
Add "(compatible with GNU linkers)" to the -version output.
Previous output:
$ ld.lld -version
LLD 5.0.0
New output:
$ ld.lld -version
LLD 5.0.0 (compatible with GNU linkers)
Differential Revision: https://reviews.llvm.org/D31199
llvm-svn: 298532
Peter Collingbourne [Wed, 22 Mar 2017 18:04:39 +0000 (18:04 +0000)]
IR: Fix a race condition in type id clients of ModuleSummaryIndex.
Add a const version of the getTypeIdSummary accessor that avoids
mutating the TypeIdMap.
Differential Revision: https://reviews.llvm.org/D31226
llvm-svn: 298531
Zachary Turner [Wed, 22 Mar 2017 18:04:20 +0000 (18:04 +0000)]
[analyze deps] Also show cycle islands.
We currently display a list of all minimal cycles, but it's
useful to be able to see the big picture impact of these cycles
by merging them all together into groups of interconnected
components.
Because the cycle discovery algorithm only considers "minimal"
cycles, it discards all information for dependencies which are
not considered part of the minimal cycle. So all we know is that
the components of each island definitely all depend on each other
but it's still possible that there are hidden dependencies due
to transitive includes.
The cycle list should still be the authoritative reference for
deciding where the easiest places to break cycles are, though.
llvm-svn: 298530
Michael Kruse [Wed, 22 Mar 2017 18:01:23 +0000 (18:01 +0000)]
[DeLICM] Remove overloaded Knowledge constructor. NFC.
The isl C++ bindings now has implicit conversions from isl::set to
isl::union_set. Therefore the additional overload accepting isl::set
is not required anymore.
llvm-svn: 298529
Adrian Prantl [Wed, 22 Mar 2017 18:01:01 +0000 (18:01 +0000)]
Document the status quo of DIExpression semantics in LangRef.rst
llvm-svn: 298528
George Rokos [Wed, 22 Mar 2017 17:36:22 +0000 (17:36 +0000)]
[OpenMP] CUDA plugin: More descriptive error messages
Differential Revision: https://reviews.llvm.org/D31206
llvm-svn: 298527
Zachary Turner [Wed, 22 Mar 2017 17:33:23 +0000 (17:33 +0000)]
Resubmit "Delete the remainder of platform specific code in FileSpec."
This was causing a test failure in one of LLDB's tests which
specifically dealt with a limitation in LLVM's implementation
of home_directory() that LLDB's own implementation had worked
around.
This limitation has been addressed in r298513 on the LLVM side,
so the failing test (which is now unnecessary as the limitation
no longer exists) was removed in r298519, allowing this patch to
be re-submitted without modification.
llvm-svn: 298526