OSDN Git Service
Davide Italiano [Mon, 21 Nov 2016 00:28:23 +0000 (00:28 +0000)]
[GlobalSplit] Port to the new pass manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287511
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Sun, 20 Nov 2016 21:23:08 +0000 (21:23 +0000)]
[mips] Restrict tail call optimization
The tail call optimization was being used without proper consideration of
ABI requirements for saving and restoring the GP. This patch restricts tail
call optimization to functions within the same translation unit.
Reviewers: vkalintiris
Differential Revision: https://reviews.llvm.org/D24763
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287505
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 21:12:49 +0000 (21:12 +0000)]
[X86][SSE] Add some initial combine tests that could (should?) use PACKSS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287504
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 20 Nov 2016 19:50:32 +0000 (19:50 +0000)]
[AVX-512] Add tests for masked palignr/valignd/valignq shuffles, many of which show failures to fold the masking into the operation.
Many of these problems are because shuffle lowering widens element size and reduces element count when possible. This causes the shuffle to become separated from the select by a bitcast. Future patches will work to improve these cases by rewriting the shuffle back to a narrow element type if we think it can result in folding the mask.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287503
91177308-0d34-0410-b5e6-
96231b3b80d8
Coby Tayree [Sun, 20 Nov 2016 17:19:55 +0000 (17:19 +0000)]
The 'vpmultishiftqb' instruction was implemented falsely, this patch amend it.
More specifically - (MS dialect) broadcasting variants were implemented falsely.
Differential Revision: https://reviews.llvm.org/D26257
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287501
91177308-0d34-0410-b5e6-
96231b3b80d8
Coby Tayree [Sun, 20 Nov 2016 17:09:56 +0000 (17:09 +0000)]
Some instructions were missing, other implemented falsely. this patch aims at amending those issues. full list:
vcvtps2pd
vcvtudq2pd
vcvtps2qq
vcvttps2qq
vcvtps2uqq
vcvttps2uqq
variants are:
[Dst]XMM(zero-masked/merge-masked/unmasked)
[Src]Mem64
Differential Revision: https://reviews.llvm.org/D26799
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287500
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 16:11:36 +0000 (16:11 +0000)]
[X86][AVX512] Combine unary + zero target shuffles to VPERMV3 with a zero vector where possible
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287497
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 15:24:38 +0000 (15:24 +0000)]
[X86][AVX512] Add support for VBMI VPERMV3 target shuffle combines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287496
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 15:05:45 +0000 (15:05 +0000)]
[X86][AVX512] Add support for VBMI VPERMV target shuffle combines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287495
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 14:45:46 +0000 (14:45 +0000)]
[X86][AVX512] Add some initial VBMI target shuffle combine tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287494
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 14:19:29 +0000 (14:19 +0000)]
[X86][AVX512VL] Removed duplicate operation action
Basic AVX512F already declared uint_to_fp v4i32 as legal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287493
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 14:05:23 +0000 (14:05 +0000)]
Strip trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287492
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 14:03:23 +0000 (14:03 +0000)]
[X86][AVX512F] Add support for uint_to_fp v2i32 to v2f64 on AVX512F-only targets
Use 512-bit instructions (we already do something similar for uint_to_fp v4i32 to v4f64)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287491
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 13:47:59 +0000 (13:47 +0000)]
Fix comment typos. NFC.
Identified by Pedro Giffuni in PR27636.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287490
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 13:31:13 +0000 (13:31 +0000)]
Fix spelling mistakes in Tools/Tests comments. NFC.
Identified by Pedro Giffuni in PR27636.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287489
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 13:19:49 +0000 (13:19 +0000)]
Fix spelling mistakes in Transforms comments. NFC.
Identified by Pedro Giffuni in PR27636.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287488
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 13:14:57 +0000 (13:14 +0000)]
Fix spelling mistakes in SelectionDAG comments. NFC.
Identified by Pedro Giffuni in PR27636.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287487
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 20 Nov 2016 13:10:51 +0000 (13:10 +0000)]
Fix comment typos. NFC.
Identified by Pedro Giffuni in PR27636.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287486
91177308-0d34-0410-b5e6-
96231b3b80d8
Oren Ben Simhon [Sun, 20 Nov 2016 11:06:07 +0000 (11:06 +0000)]
[X86] RegCall - Handling long double arguments
The change is part of RegCall calling convention support for LLVM.
Long double (f80) requires special treatment as the first f80 parameter is saved in FP0 (floating point stack).
This review present the change and the corresponding tests.
Differential Revision: https://reviews.llvm.org/D26151
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287485
91177308-0d34-0410-b5e6-
96231b3b80d8
Coby Tayree [Sun, 20 Nov 2016 09:31:11 +0000 (09:31 +0000)]
[X86][InlineAsm]Test commit.
Fixing a wrong comment on X86AsmParser.cpp::ParseZ: "true" --> "false"
Differential Revision: https://reviews.llvm.org/D26797
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287484
91177308-0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Sun, 20 Nov 2016 06:25:07 +0000 (06:25 +0000)]
Fix file name resolution in nested response files
If a response file in construct `@file` was specified by relative name,
constructs `@file` nested within it were resolved incorrectly if the
flag RelativeNames in call to ExpandResponseFile was set to true.
This feature is used in configuration files, tests for it are in
respective change (see D24933).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287482
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sun, 20 Nov 2016 02:36:38 +0000 (02:36 +0000)]
ExceptionDemo: remove some undefined behaviour
The casting based reading of the LSDA could attempt to read unsuitably aligned
data. Avoid that case by explicitly using a memcpy. A similar approach is used
in libc++abi to address the same UB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287479
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sun, 20 Nov 2016 02:36:36 +0000 (02:36 +0000)]
ExceptionDemo: prefer headers over redeclarations
Rather than redeclaring the interfaces for exceptions, prefer using the
`unwind.h` header. This is vended by at least gcc and clang, and can also be
found by an external unwinding library (e.g. libunwind). Doing this simplifies
the example to the exception handling itself. Minor tweaks are the result of
_Unwind_Context_t not being defined, which is just a typedef for struct
_Unwind_Context *. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287478
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexei Starovoitov [Sun, 20 Nov 2016 02:25:00 +0000 (02:25 +0000)]
[bpf] add BPF disassembler
add BPF disassembler, so tools like llvm-objdump can be used:
$ llvm-objdump -d -no-show-raw-insn ./sockex1_kern.o
./sockex1_kern.o: file format ELF64-BPF
Disassembly of section socket1:
bpf_prog1:
0: r6 = r1
8: r0 = *(u8 *)skb[23]
10: *(u32 *)(r10 - 4) = r0
18: r1 = *(u32 *)(r6 + 4)
20: if r1 != 4 goto 8
28: r2 = r10
30: r2 += -4
ld_imm64 (the only 16-byte insn) and special ld_abs/ld_ind instructions
had to be treated in a special way. The decoders for the rest of the insns
are automatically generated.
Add tests to cover new functionality.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287477
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Sun, 20 Nov 2016 01:41:28 +0000 (01:41 +0000)]
Attempt to fix big-endian buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287476
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Sun, 20 Nov 2016 01:15:56 +0000 (01:15 +0000)]
Style fix. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287475
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Sun, 20 Nov 2016 01:13:22 +0000 (01:13 +0000)]
Fix buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287474
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Sun, 20 Nov 2016 01:03:22 +0000 (01:03 +0000)]
SHA1: unroll loop in hashBlock.
This code is taken from public domain.
https://github.com/jsonn/src/blob/trunk/common/lib/libc/hash/sha1/sha1.c
I wrote a sha1 command and ran it on my Xeon E5-2680 v2 2.80GHz machine.
Here is a result. The new hash function is 37% faster than before.
Performance counter stats for './llvm-sha1-old /ssd/build/bin/lld' (10 runs):
6640.503687 task-clock (msec) # 1.001 CPUs utilized ( +- 0.03% )
54 context-switches # 0.008 K/sec ( +- 5.03% )
5 cpu-migrations # 0.001 K/sec ( +- 31.73% )
183,803 page-faults # 0.028 M/sec ( +- 0.00% )
18,527,954,113 cycles # 2.790 GHz ( +- 0.03% )
4,993,237,485 stalled-cycles-frontend # 26.95% frontend cycles idle ( +- 0.11% )
<not supported> stalled-cycles-backend
50,217,149,423 instructions # 2.71 insns per cycle
# 0.10 stalled cycles per insn ( +- 0.00% )
6,094,322,337 branches # 917.750 M/sec ( +- 0.00% )
11,778,239 branch-misses # 0.19% of all branches ( +- 0.01% )
6.
634017401 seconds time elapsed ( +- 0.03% )
Performance counter stats for './llvm-sha1-new /ssd/build/bin/lld' (10 runs):
4167.062720 task-clock (msec) # 1.001 CPUs utilized ( +- 0.02% )
52 context-switches # 0.012 K/sec ( +- 16.45% )
7 cpu-migrations # 0.002 K/sec ( +- 32.20% )
183,804 page-faults # 0.044 M/sec ( +- 0.00% )
11,626,611,958 cycles # 2.790 GHz ( +- 0.02% )
4,491,897,976 stalled-cycles-frontend # 38.63% frontend cycles idle ( +- 0.05% )
<not supported> stalled-cycles-backend
24,320,180,617 instructions # 2.09 insns per cycle
# 0.18 stalled cycles per insn ( +- 0.00% )
1,574,674,576 branches # 377.886 M/sec ( +- 0.00% )
11,769,693 branch-misses # 0.75% of all branches ( +- 0.00% )
4.
163251552 seconds time elapsed ( +- 0.02% )
Differential Revision: https://reviews.llvm.org/D26890
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287473
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sun, 20 Nov 2016 00:20:27 +0000 (00:20 +0000)]
Demangle: remove references to allocator for default allocator
The demangler had stopped using a custom allocator but had not been updated to
remove the use of the explicit allocator passing. This removes that as we do
not need to do anything special here anymore. This just makes the code more
compact. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287472
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sun, 20 Nov 2016 00:20:25 +0000 (00:20 +0000)]
Demangle: remove unnecessary typedef for std::vector
We could create a local typedef for std::vector called Vector. Inline the use
of std::vector rather than use the typedef. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287471
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sun, 20 Nov 2016 00:20:23 +0000 (00:20 +0000)]
Demangle: replace custom typedef for std::string with std::string
We created a local typedef for `std::basic_string<char, std::char_traits<char>>`
which is just `std::string`. Remove the local typedef and propagate the type
information through the rest of the demangler. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287470
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sun, 20 Nov 2016 00:20:20 +0000 (00:20 +0000)]
Demangle: use direct member initialization (NFC)
Prefer direct member initialization over the explicit out-of-line initialization
for the construction of the local type. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287469
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 19 Nov 2016 20:44:26 +0000 (20:44 +0000)]
Give some helper classes/functions internal linkage. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287462
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 19 Nov 2016 20:41:48 +0000 (20:41 +0000)]
[X86][SSE] Improve PSHUFB lowering from either input
Canonicalization may leave the zeroable vector in the first input.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287461
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 19 Nov 2016 20:12:34 +0000 (20:12 +0000)]
[X86][AVX512] Add VPERMV/VPERMV3 v64i8 byte shuffles on avx512vbmi targets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287459
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Sat, 19 Nov 2016 18:44:16 +0000 (18:44 +0000)]
[ThinLTO] Fix crash when importing an opaque type
It seems that because ThinLTO does not import the full module,
some invariant of the type mapper are broken.
In Monolithic LTO, we import every globals: when calling
IRLinker::copyFunctionProto() on @foo(), we end-up calling
TypeMapTy::get(FTy) on the type of @foo(), which will map
%0 and record the destination as opaque.
ThinLTO skips this because @foo is not imported and goes directly
to the next stage.
Next we call computeTypeMapping() that map the types for each
globals, and ends up checking for type isomorphism, and may add
type mapping. However it doesn't record if there was an opaque
destination type that was resolved.
Instead of lazily "discovering" opaque type in the destination
module on the go, we change the TypeFinder to eagerly record all
types and not only the named ones.
Differential Revision: https://reviews.llvm.org/D26840
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287453
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Sat, 19 Nov 2016 18:20:05 +0000 (18:20 +0000)]
[ThinLTO] Implement -pass-remarks-output in ThinLTOCodeGenerator
Summary:
This will also be added to the LTO API, right now this will
bring ThinLTO on par with Monolithic LTO on Darwin.
Reviewers: anemet
Subscribers: tejohnson, llvm-commits
Differential Revision: https://reviews.llvm.org/D26886
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287450
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Sat, 19 Nov 2016 18:19:41 +0000 (18:19 +0000)]
Change setDiagnosticsOutputFile to take a unique_ptr from a raw pointer (NFC)
Summary:
This makes it explicit that ownership is taken. Also replace all `new`
with make_unique<> at call sites.
Reviewers: anemet
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26884
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287449
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 19 Nov 2016 18:12:48 +0000 (18:12 +0000)]
[X86][AVX512] Add avx512vbmi tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287447
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 19 Nov 2016 17:50:14 +0000 (17:50 +0000)]
[X86][AVX512] Added some more complex v64i8 shuffles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287444
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 19 Nov 2016 17:33:17 +0000 (17:33 +0000)]
[X86] Simplify some code a little by removing a dulicate variable and combinining two if statements. NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287443
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Sat, 19 Nov 2016 14:47:41 +0000 (14:47 +0000)]
Try again to fix unused variable warning on lld-x86_64-darwin13 after r287439.
The previous attempt didn't work. I assume LLVM_ATTRIBUTE_UNUSED isn't
available on that machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287442
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Sat, 19 Nov 2016 13:50:32 +0000 (13:50 +0000)]
Try to fix unused variable warning on lld-x86_64-darwin13 after r287439.
Whether the variable is used or not depends on NDEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287440
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Sat, 19 Nov 2016 13:05:44 +0000 (13:05 +0000)]
Check that emitted instructions meet their predicates on all targets except ARM, Mips, and X86.
Summary:
* ARM is omitted from this patch because this check appears to expose bugs in this target.
* Mips is omitted from this patch because this check either detects bugs or deliberate
emission of instructions that don't satisfy their predicates. One deliberate
use is the SYNC instruction where the version with an operand is correctly
defined as requiring MIPS32 while the version without an operand is defined
as an alias of 'SYNC 0' and requires MIPS2.
* X86 is omitted from this patch because it doesn't use the tablegen-erated
MCCodeEmitter infrastructure.
Patches for ARM and Mips will follow.
Depends on D25617
Reviewers: tstellarAMD, jmolloy
Subscribers: wdng, jmolloy, aemerson, rengolin, arsenm, jyknight, nemanjai, nhaehnle, tstellarAMD, llvm-commits
Differential Revision: https://reviews.llvm.org/D25618
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287439
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Sat, 19 Nov 2016 12:21:34 +0000 (12:21 +0000)]
[tablegen] Merge duplicate definitions of getMinimalTypeForRange. NFC.
Summary: Depends on D25614
Reviewers: qcolombet
Subscribers: qcolombet, beanz, mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D25617
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287438
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 03:19:58 +0000 (03:19 +0000)]
[CMake] llvm-lto2 depends on intrinsics_gen
llvm-lto2.cpp has the following include chain:
llvm/LTO/Caching.h
llvm/LTO/LTO.h
llvm/CodeGen/Analysis.h
llvm/IR/CallSite.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-lto2 needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287434
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 03:18:50 +0000 (03:18 +0000)]
[CMake] opt depends on intrinsics_gen
AnalysisWrappers.cpp has the following include chain:
llvm/Analysis/CallGraph.h
llvm/IR/CallSite.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means opt needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287433
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 03:16:33 +0000 (03:16 +0000)]
[CMake] llvm-nm depends on intrinsics_gen
llvm-nm.cpp has the following include chain:
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-nm needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287432
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:36:28 +0000 (02:36 +0000)]
[CMake] llvm-link depends on intrinsics_gen
llvm-link.cpp has the following include chain:
llvm/Bitcode/BitcodeWriter.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-link needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287431
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:33:57 +0000 (02:33 +0000)]
[CMake] llvm-extract depends on intrinsics_gen
llvm-extract.cpp has the following include chain:
llvm/Bitcode/BitcodeWriterPass.h
llvm/IR/PassManager.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-extract needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287430
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:33:42 +0000 (02:33 +0000)]
[CMake] llvm-dwp depends on intrinsics_gen
llvm-dwp.cpp has the following include chain:
llvm/CodeGen/AsmPrinter.h
llvm/CodeGen/MachineFunctionPass.h
llvm/CodeGen/MachineFunction.h
llvm/CodeGen/MachineBasicBlock.h
llvm/CodeGen/MachineInstr.h
llvm/Analysis/AliasAnalysis.h
llvm/IR/CallSite.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-dwp needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287429
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:31:14 +0000 (02:31 +0000)]
[CMake] llvm-dis depends on intrinsics_gen
llvm-dis.cpp has the following include chain:
llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-dis needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287428
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:28:18 +0000 (02:28 +0000)]
[CMake] llvm-diff depends on intrinsics_gen
llvm-diff.cpp has the following include chain:
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-diff needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287427
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:25:54 +0000 (02:25 +0000)]
[CMake] llvm-stress depends on intrinsics_gen
llvm-stress.cpp has the following include chain:
llvm/Analysis/CallGraphSCCPass.h
llvm/Analysis/CallGraph.h
llvm/IR/CallSite.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-stress needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287426
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:20:59 +0000 (02:20 +0000)]
[CMake] bugpoint-passes depends on intrinsics_gen
TestPasses.cpp has the following include chain:
llvm/IR/InstVisitor.h
llvm/IR/CallSite.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means bugpoint-passes needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287425
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:17:12 +0000 (02:17 +0000)]
[CMake] llvm-bcanalyzer depends on intrinsics_gen
llvm-bcanalyzer.cpp has the following include chain:
llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-bcanalyzer needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287424
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:15:04 +0000 (02:15 +0000)]
[CMake] llvm-as depends on intrinsics_gen
llvm-as.cpp has the following include chain:
llvm/Bitcode/BitcodeWriter.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-as needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287423
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:12:03 +0000 (02:12 +0000)]
[CMake] llc depends on intrinsics_gen
llc.cpp has the following include chain:
llvm/Analysis/TargetLibraryInfo.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llc needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287422
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:09:51 +0000 (02:09 +0000)]
[CMake] lli-child-target depends on intrinsics gen
Messed up in r287420, it isn't just lli, but also but lli-child-target that need to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287421
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:05:19 +0000 (02:05 +0000)]
[CMake] lli depends on intrinsics_gen
ChildTarget.cpp has the following include chain:
llvm/ExecutionEngine/Orc/OrcABISupport.h
llvm/ExecutionEngine/Orc/IndirectionUtils.h
llvm/IR/IRBuilder.h
llvm/IR/ConstantFolder.h
llvm/IR/InstrTypes.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means lli needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287420
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 02:02:46 +0000 (02:02 +0000)]
[CMake] llvm-dsymutil depends on intrinsics_gen
DwarfLinker.cpp has the following include chain:
llvm/CodeGen/AsmPrinter.h
llvm/CodeGen/MachineFunctionPass.h
llvm/CodeGen/MachineFunction.h
llvm/CodeGen/MachineBasicBlock.h
llvm/CodeGen/MachineInstr.h
llvm/Analysis/AliasAnalysis.h
llvm/IR/CallSite.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-dsymutil needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287419
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan McKay [Sat, 19 Nov 2016 01:33:42 +0000 (01:33 +0000)]
[AVR] Remove a bunch of unused variables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287416
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Sat, 19 Nov 2016 01:32:09 +0000 (01:32 +0000)]
[CMake] Apply sandbox profile to target not directory
When LLVM_DEPENDENCY_DEBUGGING=On we should apply the sandbox only on the target, not the directory. This is important for directories that create more than one target, or for nested directories.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287415
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan McKay [Sat, 19 Nov 2016 01:14:44 +0000 (01:14 +0000)]
[AVR] Remove a variable which was unused in release mode
In release mode where assertions are not enabled, this caused an 'unused
variable' warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287414
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:30:58 +0000 (23:30 +0000)]
[CMake] verify-uselistorder depends on intrinsics_gen
verify-uselistorder.cpp has the following include chain:
llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means verify-uselistorder needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287405
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:30:39 +0000 (23:30 +0000)]
[CMake] sanstats depends on intrinsics_gen
sanstats.cpp has the following include chain:
llvm/Transforms/Utils/SanitizerStats.h
llvm/IR/IRBuilder.h
llvm/IR/ConstantFolder.h
llvm/IR/InstrTypes.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means sanstats needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287404
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Fri, 18 Nov 2016 23:25:57 +0000 (23:25 +0000)]
[lit] When setting SDKROOT on Darwin, use '--sdk macosx' to find the right SDK path.
This will make sure that we find an actual path in case you have Command Line Tools installed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287403
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:25:30 +0000 (23:25 +0000)]
[CMake] bugpoint depends on intrinsics_gen
CrashDebugger.cpp has the following include chain:
llvm/Analysis/TargetTransformInfo.h
llvm/IR/IntrinsicInst.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means bugpoint needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287402
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 18 Nov 2016 23:22:00 +0000 (23:22 +0000)]
[InstCombine] add tests to show likely unwanted select widening; NFC
This is a prerequisite patch for D26556:
https://reviews.llvm.org/D26556
...because there was no direct coverage for these folds (which in some cases are adding instructions).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287400
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:20:38 +0000 (23:20 +0000)]
[CMake] llvm-split depends on intrinsics_gen
llvm-split.cpp has the following include chain:
llvm/Bitcode/BitcodeWriter.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-split needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:20:35 +0000 (23:20 +0000)]
[CMake] llvm-lto depends on intrinsics_gen
llvm-lto.cpp has the following include chain:
llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-lto needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287398
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:04:27 +0000 (23:04 +0000)]
[CMake] llvm-ar depends on intrinsics_gen
llvm-ar.cpp has the following include chain:
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-ar needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287395
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:04:15 +0000 (23:04 +0000)]
[CMake] llvm-profdata depends on intrinsics_gen
llvm-profdata.cpp has the following include chain:
llvm/ProfileData/SampleProfReader.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means llvm-profdata needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287394
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 18 Nov 2016 23:03:51 +0000 (23:03 +0000)]
[CMake] LTO depends on intrinsics_gen
lto.cpp has the following include chain:
llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen
This means LTO needs to depend on intrinsics_gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287393
91177308-0d34-0410-b5e6-
96231b3b80d8
Konstantin Zhuravlyov [Fri, 18 Nov 2016 22:31:08 +0000 (22:31 +0000)]
[AMDGPU] Change frexp.exp intrinsic to return i16 for f16 input
Differential Revision: https://reviews.llvm.org/D26862
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287389
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 18 Nov 2016 22:21:22 +0000 (22:21 +0000)]
[SelectionDAG] Add knowbits support for CONCAT_VECTOR opcode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287387
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 18 Nov 2016 21:59:38 +0000 (21:59 +0000)]
[X86] Add knownbits concat_vector test
Support coming in a future patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287385
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Fri, 18 Nov 2016 21:57:58 +0000 (21:57 +0000)]
[Examples] Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes.
Differential revision: https://reviews.llvm.org/D26433
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287384
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Fri, 18 Nov 2016 21:01:12 +0000 (21:01 +0000)]
[LoopSimplify] Preserve LCSSA when removing edges from unreachable blocks.
This fixes PR30454.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287379
91177308-0d34-0410-b5e6-
96231b3b80d8
Geoff Berry [Fri, 18 Nov 2016 20:08:05 +0000 (20:08 +0000)]
[MIRPrinter] XFAIL test for powerpc
This test introduced in r287368 is failing on powerpc for reasons
unrelated to branch probabilities. See PR31062.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287375
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Fri, 18 Nov 2016 20:02:34 +0000 (20:02 +0000)]
Revert "Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch"
This reverts commit r287352, LLDB CI is broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287374
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 18 Nov 2016 19:43:24 +0000 (19:43 +0000)]
Statistic/Timer: Include timers in PrintStatisticsJSON().
Differential Revision: https://reviews.llvm.org/D25588
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287370
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 18 Nov 2016 19:43:18 +0000 (19:43 +0000)]
Timer: Track name and description.
The previously used "names" are rather descriptions (they use multiple
words and contain spaces), use short programming language identifier
like strings for the "names" which should be used when exporting to
machine parseable formats.
Also removed a unused TimerGroup from Hexxagon.
Differential Revision: https://reviews.llvm.org/D25583
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287369
91177308-0d34-0410-b5e6-
96231b3b80d8
Geoff Berry [Fri, 18 Nov 2016 19:37:24 +0000 (19:37 +0000)]
[MIRPrinter] Print raw branch probabilities as expected by MIRParser
Fixes PR28751.
Reviewers: MatzeB, qcolombet
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D26775
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287368
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 18 Nov 2016 18:33:36 +0000 (18:33 +0000)]
AMDGPU: Fix unused variable warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287362
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 18 Nov 2016 18:27:31 +0000 (18:27 +0000)]
Fix test from r287353: don't use /dev/null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287360
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Fri, 18 Nov 2016 18:06:28 +0000 (18:06 +0000)]
[LTO] Add option to generate optimization records
It is used to drive this from the clang driver via -mllvm.
Same option name is used as in opt.
Differential Revision: https://reviews.llvm.org/D26832
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287356
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Fri, 18 Nov 2016 18:00:19 +0000 (18:00 +0000)]
[DebugInfo] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete and Include What You Use warnings; other minor fixes (NFC).
Per Zachary Turner and Mehdi Amini suggestion to make only post-commit reviews.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287355
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 18 Nov 2016 17:33:05 +0000 (17:33 +0000)]
IRMover: Avoid accidentally mapping types from the destination module (PR30799)
During Module linking, it's possible for SrcM->getIdentifiedStructTypes();
to return types that are actually defined in the destination module
(DstM). Depending on how the bitcode file was read,
getIdentifiedStructTypes() might do a walk over all values, including
metadata nodes, looking for types. In my case, a debug info metadata
node was shared between the two modules, and it referred to a type
defined in the destination module (see test case).
Differential Revision: https://reviews.llvm.org/D26212
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287353
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Fri, 18 Nov 2016 17:28:10 +0000 (17:28 +0000)]
Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch
Summary:
LLVM will define a symbol, either EnableABIBreakingChecks or
DisableABIBreakingChecks depending on the configuration setting for
LLVM_ABI_BREAKING_CHECKS.
The llvm-config.h header will add weak references to these symbols in
every clients that includes this header. This should ensure that
a mismatch triggers a link failure (or a load time failure for DSO).
On MSVC, the pragma "detect_mismatch" is used instead.
Reviewers: rnk, jroelofs
Subscribers: llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D26841
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287352
91177308-0d34-0410-b5e6-
96231b3b80d8
Ehsan Amiri [Fri, 18 Nov 2016 16:24:27 +0000 (16:24 +0000)]
[PPC] limit line width to 80 characters
NFC. Forgot to fix this in the original commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287350
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 18 Nov 2016 16:17:44 +0000 (16:17 +0000)]
[mips][msa] Implement f16 support
The MIPS MSA ASE provides instructions to convert to and from half precision
floating point. This patch teaches the MIPS backend to treat f16 as a legal
type and how to promote such values to f32 for the usual set of operations.
As a result of this, the fexup[lr].w intrinsics no longer crash LLVM during
type legalization.
Reviewers: zoran.jovanvoic, vkalintiris
Differential Revision: https://reviews.llvm.org/D26398
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287349
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 18 Nov 2016 15:31:36 +0000 (15:31 +0000)]
[X86][AVX512] Split AVX512F/AVX512VL tests to demonstrate missed int2fp opportunities without AVX512VL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287348
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 18 Nov 2016 14:14:35 +0000 (14:14 +0000)]
GlobalISel: Fix unconditional fallback with global isel abort is disabled
Reviewers: t.p.northover, ab, qcolombet
Subscribers: mehdi_amini, vkalintiris, wdng, dberris, llvm-commits, rovka
Differential Revision: https://reviews.llvm.org/D26765
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287344
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 18 Nov 2016 13:53:34 +0000 (13:53 +0000)]
AMDGPU/SI: Remove zero_extend patterns for i16 ops selected to 32-bit insts
Summary:
The 32-bit instructions don't zero the high 16-bits like the 16-bit
instructions do.
Reviewers: arsenm
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, llvm-commits, tony-tye
Differential Revision: https://reviews.llvm.org/D26828
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287342
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Fri, 18 Nov 2016 13:12:07 +0000 (13:12 +0000)]
[simplifycfg][loop-simplify] Preserve loop metadata in 2 transformations.
insertUniqueBackedgeBlock in lib/Transforms/Utils/LoopSimplify.cpp now
propagates existing llvm.loop metadata to newly the added backedge.
llvm::TryToSimplifyUncondBranchFromEmptyBlock in lib/Transforms/Utils/Local.cpp
now propagates existing llvm.loop metadata to the branch instructions in the
predecessor blocks of the empty block that is removed.
Differential Revision: https://reviews.llvm.org/D26495
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287341
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 18 Nov 2016 12:16:18 +0000 (12:16 +0000)]
Cleanup function with clang-format. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287340
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 18 Nov 2016 11:55:52 +0000 (11:55 +0000)]
AMDGPU: Fix legalization of MUBUF instructions in shaders
Summary:
The addr64-based legalization is incorrect for MUBUF instructions with idxen
set as well as for BUFFER_LOAD/STORE_FORMAT_* instructions. This affects
e.g. shaders that access buffer textures.
Since we never actually need the addr64-legalization in shaders, this patch
takes the easy route and keys off the calling convention. If this ever
affects (non-OpenGL) compute, the type of legalization needs to be chosen
based on some TSFlag.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98664
Reviewers: arsenm, tstellarAMD
Subscribers: kzhuravl, wdng, yaxunl, tony-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D26747
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287339
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 18 Nov 2016 11:53:36 +0000 (11:53 +0000)]
Fix spelling mistakes in MIPS target comments. NFC.
Identified by Pedro Giffuni in PR27636.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287338
91177308-0d34-0410-b5e6-
96231b3b80d8
Ehsan Amiri [Fri, 18 Nov 2016 11:05:55 +0000 (11:05 +0000)]
[Power9] Add patterns for vnegd, vnegw
Exploit new instructions by adding patterns to .td file.
https://reviews.llvm.org/D26551
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287334
91177308-0d34-0410-b5e6-
96231b3b80d8