OSDN Git Service

android-x86/external-llvm.git
7 years agoAMDGPU: Treat 0 as private null pointer in addrspacecast lowering
Matt Arsenault [Mon, 13 Mar 2017 19:47:31 +0000 (19:47 +0000)]
AMDGPU: Treat 0 as private null pointer in addrspacecast lowering

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297658 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "Fix crash when multiple raw_fd_ostreams to stdout are created."
Rafael Espindola [Mon, 13 Mar 2017 19:38:32 +0000 (19:38 +0000)]
Revert "Fix crash when multiple raw_fd_ostreams to stdout are created."

This reverts commit r297624.
It was failing on the bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297657 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix some indenting and line-wrapping issues identified in ProgrammersManual. Make...
Daniel Berlin [Mon, 13 Mar 2017 19:09:23 +0000 (19:09 +0000)]
Fix some indenting and line-wrapping issues identified in ProgrammersManual. Make description of debugCounters a little clearer

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297656 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Outliner] Add tail call support
Jessica Paquette [Mon, 13 Mar 2017 18:39:33 +0000 (18:39 +0000)]
[Outliner] Add tail call support

This commit adds tail call support to the MachineOutliner pass. This allows
the outliner to insert jumps rather than calls in areas where tail calling is
possible. Outlined tail calls include the return or terminator of the basic
block being outlined from.

Tail call support allows the outliner to take returns and terminators into
consideration while finding candidates to outline. It also allows the outliner
to save more instructions. For example, in the X86-64 outliner, a tail called
outlined function saves one instruction since no return has to be inserted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297653 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Lower AVX2 gather intrinsics similar to AVX-512. Apply the same input source...
Craig Topper [Mon, 13 Mar 2017 18:34:46 +0000 (18:34 +0000)]
[X86] Lower AVX2 gather intrinsics similar to AVX-512. Apply the same input source optimizations to break execution dependencies.

For AVX-512 we force the input to zero if the input is undef or the mask is all ones to break an execution dependency. This patch brings the same behavior to AVX2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297652 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] If gather mask is all ones, force the input to a zero vector.
Craig Topper [Mon, 13 Mar 2017 18:17:46 +0000 (18:17 +0000)]
[AVX-512] If gather mask is all ones, force the input to a zero vector.

We were already forcing undef inputs to become a zero vector, this now catches an all ones mask too.

Ideally we'd use undef and let execution dep fix handle picking the best register/clearance for the undef, but I don't think it can handle the early clobber today.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297651 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAMDGPU: Fold icmp/fcmp into icmp intrinsic
Matt Arsenault [Mon, 13 Mar 2017 18:14:02 +0000 (18:14 +0000)]
AMDGPU: Fold icmp/fcmp into icmp intrinsic

The typical use is a library vote function which
compares to 0. Fold the user condition into the intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297650 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Linker] Provide callback for internalization
Jonas Devlieghere [Mon, 13 Mar 2017 18:08:11 +0000 (18:08 +0000)]
[Linker] Provide callback for internalization

Differential Revision: https://reviews.llvm.org/D30738

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297649 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[SelectionDAG] Enhance SDTCisSameNumEltsAs to work with scalar types and use it on...
Craig Topper [Mon, 13 Mar 2017 17:37:14 +0000 (17:37 +0000)]
[SelectionDAG] Enhance SDTCisSameNumEltsAs to work with scalar types and use it on extend/trunc/round operations.

Currently we don't enforce that ISD::ANY_EXTEND, ZERO_EXTEND, SIGN_EXTEND, TRUNC, FP_ROUND, FP_EXTEND have the same number of elements(including scalar) between their input and output. Though we have them documented as such. Up until a few months ago x86 created nodes that violated this rule. That's all been fixed now, and we should enforce the rule going forward.

In order to do this we need to allow SDTCisSameNumEltsAs to support scalar types and not enforce being a vector. If one type is scalar we will force the other type to also be scalar.

Differential Revision: https://reviews.llvm.org/D30878

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297648 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAdd missing include on <limits>.
Zachary Turner [Mon, 13 Mar 2017 17:25:47 +0000 (17:25 +0000)]
Add missing include on <limits>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297646 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAPI gardening: Rename FindAllocaDbgValue to findDbgValue (NFC)
Adrian Prantl [Mon, 13 Mar 2017 17:20:47 +0000 (17:20 +0000)]
API gardening: Rename FindAllocaDbgValue to findDbgValue (NFC)
and use have it use SmallVectorImpl.

There is nothing specific about allocas in this function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297643 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoUse numeric_limits<size_t>::max() instead of size_t(-1).
Zachary Turner [Mon, 13 Mar 2017 17:12:37 +0000 (17:12 +0000)]
Use numeric_limits<size_t>::max() instead of size_t(-1).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297641 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix a warning due to signed/unsigned comparison.
Zachary Turner [Mon, 13 Mar 2017 16:41:49 +0000 (16:41 +0000)]
Fix a warning due to signed/unsigned comparison.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297639 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoUse the new member accessors of llvm::enumerate.
Zachary Turner [Mon, 13 Mar 2017 16:32:08 +0000 (16:32 +0000)]
Use the new member accessors of llvm::enumerate.

The value_type is no longer a struct, it's a class whose
members you have to access via a method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297635 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[ADT] Improve the genericity of llvm::enumerate().
Zachary Turner [Mon, 13 Mar 2017 16:24:10 +0000 (16:24 +0000)]
[ADT] Improve the genericity of llvm::enumerate().

There were some issues in the implementation of enumerate()
preventing it from being used in various contexts.  These were
all related to the fact that it did not supporter llvm's
iterator_facade_base class.  So this patch adds support for that
and additionally exposes a new helper method to_vector() that
will evaluate an entire range and store the results in a
vector.

Differential Revision: https://reviews.llvm.org/D30853

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297633 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRemove an unused variable.
Zachary Turner [Mon, 13 Mar 2017 16:18:08 +0000 (16:18 +0000)]
Remove an unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297632 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[CGP] add tests for PR31028; NFC
Sanjay Patel [Mon, 13 Mar 2017 15:45:37 +0000 (15:45 +0000)]
[CGP] add tests for PR31028; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297629 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[llvm-pdbdump] Add support for dumping symbols from Yaml -> PDB.
Zachary Turner [Mon, 13 Mar 2017 14:57:45 +0000 (14:57 +0000)]
[llvm-pdbdump] Add support for dumping symbols from Yaml -> PDB.

Previously we could round-trip type records from PDB -> Yaml ->
PDB, but for symbols we could only go from PDB -> Yaml.  This
completes the round-tripping for symbols as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297625 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix crash when multiple raw_fd_ostreams to stdout are created.
Rafael Espindola [Mon, 13 Mar 2017 14:45:06 +0000 (14:45 +0000)]
Fix crash when multiple raw_fd_ostreams to stdout are created.

If raw_fd_ostream is constructed with the path of "-", it claims
ownership of the stdout file descriptor. This means that it closes
stdout when it is destroyed. If there are multiple users of
raw_fd_ostream wrapped around stdout, then a crash can occur because
of operations on a closed stream.

An example of this would be running something like "clang -S -o - -MD
-MF - test.cpp". Alternatively, using outs() (which creates a local
version of raw_fd_stream to stdout) anywhere combined with such a
stream usage would cause the crash.

The fix duplicates the stdout file descriptor when used within
raw_fd_ostream, so that only that particular descriptor is closed when
the stream is destroyed.

Patch by James Henderson!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297624 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[ARM] GlobalISel: Support SP in regbankselect
Diana Picus [Mon, 13 Mar 2017 14:28:34 +0000 (14:28 +0000)]
[ARM] GlobalISel: Support SP in regbankselect

We used to hit an unreachable in getRegBankFromRegClass when dealing with the
stack pointer. This commit adds support for the GPRsp reg class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297621 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoReverting r297617 because it broke some bots:
Aaron Ballman [Mon, 13 Mar 2017 12:24:51 +0000 (12:24 +0000)]
Reverting r297617 because it broke some bots:

http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/49970

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297618 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAdd support for getting file system permissions and implement sys::fs::permissions...
Aaron Ballman [Mon, 13 Mar 2017 12:17:14 +0000 (12:17 +0000)]
Add support for getting file system permissions and implement sys::fs::permissions to set them.

Patch by James Henderson.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297617 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AArch64] Map Sched Read/Write resources for Falkor.
Balaram Makam [Mon, 13 Mar 2017 10:42:17 +0000 (10:42 +0000)]
[AArch64] Map Sched Read/Write resources for Falkor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297611 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[LV] Set memcheck metadata also for VF==1
Gil Rapaport [Mon, 13 Mar 2017 10:23:46 +0000 (10:23 +0000)]
[LV] Set memcheck metadata also for VF==1

This commit is a follow-up on r297580. It fixes the FIXME added temporarily
by that commit to keep the removal of Unroller's specialized version of
scalarizeInstruction() an NFC. See https://reviews.llvm.org/D30715 for details.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297610 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoARMDisassembler: loop over ARM decode tables
Sjoerd Meijer [Mon, 13 Mar 2017 09:41:10 +0000 (09:41 +0000)]
ARMDisassembler: loop over ARM decode tables

Loop over the ARM decode tables; this is a clean-up to reduce some code
duplication.

Differential Revision: https://reviews.llvm.org/D30814

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297608 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAMDGPU/RelocVisitor: Handle R_AMDGPU_ABS64
Konstantin Zhuravlyov [Mon, 13 Mar 2017 06:03:11 +0000 (06:03 +0000)]
AMDGPU/RelocVisitor: Handle R_AMDGPU_ABS64

Test is in the separate patch.

Differential Revision: https://reviews.llvm.org/D30027

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297604 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Add EVEX2VEX test cases for the cvt instructions fixed in r297599 and r297600.
Craig Topper [Mon, 13 Mar 2017 05:47:56 +0000 (05:47 +0000)]
[AVX-512] Add EVEX2VEX test cases for the cvt instructions fixed in r297599 and r297600.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297603 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert "[AVX-512] EVEX2VEX, don't reject intrinsic instructions when both have a...
Craig Topper [Mon, 13 Mar 2017 05:34:03 +0000 (05:34 +0000)]
Revert "[AVX-512] EVEX2VEX, don't reject intrinsic instructions when both have a memory operand. We should just continue to check other operands instead."

This reverts r297596.

There were other issues that were making this not work that have been fixed now. Reverting this results in a more accurate table.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297602 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Add VEX_WIG to VEX vcvtsd2ss/vcvtss2sd intrinsic instructions so they can...
Craig Topper [Mon, 13 Mar 2017 05:14:47 +0000 (05:14 +0000)]
[AVX-512] Add VEX_WIG to VEX vcvtsd2ss/vcvtss2sd intrinsic instructions so they can be correctly matched by EVEX2VEX table generation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297601 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Use sse_loadf32/f64 for vcvtss2sd and vcvtsd2ss intrinsic patterns.
Craig Topper [Mon, 13 Mar 2017 05:14:44 +0000 (05:14 +0000)]
[AVX-512] Use sse_loadf32/f64 for vcvtss2sd and vcvtsd2ss intrinsic patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297600 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Use sse_load_f64/f32 in VCVTSS2SI/VCVTSD2SI patterns.
Craig Topper [Mon, 13 Mar 2017 03:59:06 +0000 (03:59 +0000)]
[AVX-512] Use sse_load_f64/f32 in VCVTSS2SI/VCVTSD2SI patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297599 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] EVEX2VEX, don't reject intrinsic instructions when both have a memory opera...
Craig Topper [Mon, 13 Mar 2017 00:36:49 +0000 (00:36 +0000)]
[AVX-512] EVEX2VEX, don't reject intrinsic instructions when both have a memory operand. We should just continue to check other operands instead.

This exposed that we have several intrinsic instructions that have identical TSFlags to other instructions. We should merge their patterns and kill of the duplicate. I'll fix that in a follow up patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297596 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Minor formatting tweaks in EVEX to VEX tables. NFC
Craig Topper [Mon, 13 Mar 2017 00:36:46 +0000 (00:36 +0000)]
[X86] Minor formatting tweaks in EVEX to VEX tables. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297595 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Remove unused SDTypeProfile. NFC
Craig Topper [Sun, 12 Mar 2017 23:05:03 +0000 (23:05 +0000)]
[X86] Remove unused SDTypeProfile. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297594 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Lower SSE/AVX cmpps/pd intrinsics directly to X86ISD::CMPP SDNodes.
Craig Topper [Sun, 12 Mar 2017 23:05:00 +0000 (23:05 +0000)]
[X86] Lower SSE/AVX cmpps/pd intrinsics directly to X86ISD::CMPP SDNodes.

This allows us to remove a duplicate set of patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297593 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Fix the valid immediates for the scatter/gather prefetch intrinsics.
Craig Topper [Sun, 12 Mar 2017 22:29:12 +0000 (22:29 +0000)]
[AVX-512] Fix the valid immediates for the scatter/gather prefetch intrinsics.

The immediate should be 1 or 2, not 0 or 1. This was found while adding bounds checking to clang. In fact the existing clang builtin test failed if we ran it all the way to assembly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297591 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[x86] don't blindly transform SETB into SBB
Sanjay Patel [Sun, 12 Mar 2017 18:28:48 +0000 (18:28 +0000)]
[x86] don't blindly transform SETB into SBB

I noticed unnecessary 'sbb' instructions in D30472 and while looking at 'ptest' codegen recently.
This happens because we were transforming any 'setb' - even when we only wanted a single-bit result.

This patch moves those transforms under visitAdd/visitSub, so we we're only creating sbb/adc when it
is a win. I don't know why we need a SETCC_CARRY node type, but I'm not proposing to change that
existing behavior in this patch.

Also, I'm skeptical that sbb/adc are a win for all micro-arches, so I added comments to the test files
where this transform still fires.

The test changes here are all cases where we no longer produce sbb/adc. Avoiding partial register
stalls (generating an xor to clear a register) is not handled in some cases, but that's a separate
issue.

Differential Revision: https://reviews.llvm.org/D30611

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297586 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[LVI] Add Datalayout to the class LazyValueInfo since all its Impls require it. NFC
Anna Thomas [Sun, 12 Mar 2017 14:06:41 +0000 (14:06 +0000)]
[LVI] Add Datalayout to the class LazyValueInfo since all its Impls require it. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297583 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRemove CRC32 instructions from AArch64InstrInfo::hasShiftedReg
Azharuddin Mohammed [Sun, 12 Mar 2017 14:02:32 +0000 (14:02 +0000)]
Remove CRC32 instructions from AArch64InstrInfo::hasShiftedReg

Summary:
A53 scheduler causes an assertion failure on all CRC instructions:
include/llvm/CodeGen/MachineInstr.h:280: const llvm::MachineOperand
&llvm::MachineInstr::getOperand(unsigned int) const: Assertion `i <
getNumOperands() && "getOperand() out of range!"' failed.

The case statements corresponding to CRC instructions are incorrect and should
be removed.

Also adding a testcase while on this.

Reviewers: t.p.northover, javed.absar, apazos, rengolin

Reviewed By: rengolin

Subscribers: evandro, aemerson, llvm-commits, rengolin

Differential Revision: https://reviews.llvm.org/D30274

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297582 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Add vector zext tests.
Igor Breger [Sun, 12 Mar 2017 13:20:10 +0000 (13:20 +0000)]
[X86] Add vector zext tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297581 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[LV] A unified scalarizeInstruction() for Vectorizer and Unroller; NFC
Gil Rapaport [Sun, 12 Mar 2017 12:31:38 +0000 (12:31 +0000)]
[LV] A unified scalarizeInstruction() for Vectorizer and Unroller; NFC

Unroller's specialized scalarizeInstruction() is mostly duplicating Vectorizer's
variant. OTOH Vectorizer's scalarizeInstruction() already supports the special
case of VF==1 except for avoiding mask-bit extraction in that case. This patch
removes Unroller's specialized version in favor of a unified method.

The only functional difference between the two variants seems to be setting
memcheck metadata for loads and stores only in Vectorizer's variant, which is a
bug in Unroller. To keep this patch an NFC the unified method doesn't set
memcheck metadata for VF==1.

Differential Revision: https://reviews.llvm.org/D30715

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297580 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoTest commit.
Ayal Zaks [Sun, 12 Mar 2017 09:48:06 +0000 (09:48 +0000)]
Test commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297579 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoSplit NewGVN class into a legacy pass and an impl, instead of a merged class.
Daniel Berlin [Sun, 12 Mar 2017 04:46:45 +0000 (04:46 +0000)]
Split NewGVN class into a legacy pass and an impl, instead of a merged class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297576 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAdd documentation on debug counters to Programmers Manual.
Daniel Berlin [Sun, 12 Mar 2017 04:46:41 +0000 (04:46 +0000)]
Add documentation on debug counters to Programmers Manual.

Reviewers: mehdi_amini

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D30842

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297575 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Fix a bad use of a high GR8 register after copying from a mask register...
Craig Topper [Sun, 12 Mar 2017 03:37:37 +0000 (03:37 +0000)]
[AVX-512] Fix a bad use of a high GR8 register after copying from a mask register during fast isel. This ends up extracting from bits 15:8 instead of the lower bits of the mask.

I'm pretty sure there are more problems lurking here. But I think this fixes PR32241.

I've added the test case from that bug and added asserts that will fail if we ever try to copy between high registers and mask registers again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297574 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Add test case for PR32241. Fix coming in another commit.
Craig Topper [Sun, 12 Mar 2017 03:37:34 +0000 (03:37 +0000)]
[AVX-512] Add test case for PR32241. Fix coming in another commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297573 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AVX-512] Remove unused field in X86VectorVTInfo tablegen class.
Craig Topper [Sun, 12 Mar 2017 03:37:32 +0000 (03:37 +0000)]
[AVX-512] Remove unused field in X86VectorVTInfo tablegen class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297572 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86][SSE] Improve extraction of elements from v16i8 (pre-SSE41)
Simon Pilgrim [Sat, 11 Mar 2017 20:42:31 +0000 (20:42 +0000)]
[X86][SSE] Improve extraction of elements from v16i8 (pre-SSE41)

Without SSE41 (pextrb) we currently extract byte elements from a vector by spilling to stack and reloading the byte.

This patch is an initial attempt at using MOVD/PEXTRW to extract the relevant DWORD/WORD from the vector and then shift+truncate to collect the correct byte.

Extraction of multiple bytes this way would result in code bloat, but as explained in the patch we could probably afford to be more aggressive with the supported extractions before again falling back on spilling - possibly through counting the number of extracts and which DWORD/WORD they originate?

Differential Revision: https://reviews.llvm.org/D29841

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297568 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRemove unnecessary whitespace.
Simon Pilgrim [Sat, 11 Mar 2017 20:23:59 +0000 (20:23 +0000)]
Remove unnecessary whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297567 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix signed/unsigned comparison warning
Simon Pilgrim [Sat, 11 Mar 2017 19:38:22 +0000 (19:38 +0000)]
Fix signed/unsigned comparison warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297565 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Add avx2 gather tests cases that show a failure to remove zeroing of the source...
Craig Topper [Sat, 11 Mar 2017 18:26:00 +0000 (18:26 +0000)]
[X86] Add avx2 gather tests cases that show a failure to remove zeroing of the source when the mask is all ones.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297564 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Remove unnecessary commented out code. NFC
Craig Topper [Sat, 11 Mar 2017 18:25:56 +0000 (18:25 +0000)]
[X86] Remove unnecessary commented out code. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297563 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix signed/unsigned comparison warnings
Simon Pilgrim [Sat, 11 Mar 2017 13:02:31 +0000 (13:02 +0000)]
Fix signed/unsigned comparison warnings

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297561 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix -Wsentinel warning
Simon Pilgrim [Sat, 11 Mar 2017 12:56:02 +0000 (12:56 +0000)]
Fix -Wsentinel warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297560 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoUse setBits in SelectionDAG
Amaury Sechet [Sat, 11 Mar 2017 11:24:03 +0000 (11:24 +0000)]
Use setBits in SelectionDAG

Summary: As per title.

Reviewers: RKSimon

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D30836

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297559 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAMDGPU: Remove packf16 intrinsic
Matt Arsenault [Sat, 11 Mar 2017 05:51:16 +0000 (05:51 +0000)]
AMDGPU: Remove packf16 intrinsic

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297557 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoAMDGPU: Keep track of modifiers when converting v_mac to v_mad
Matt Arsenault [Sat, 11 Mar 2017 05:40:40 +0000 (05:40 +0000)]
AMDGPU: Keep track of modifiers when converting v_mac to v_mad

Since v_max_f32_e64/v_max_f16_e64 can be folded if the target
instruction supports the clamp bit, we also need to maintain
modifiers when converting v_mac to v_mad.

This fixes a rendering issue with Dirt Rally because a v_mac
instruction with the clamp bit set was converted to a v_mad
but that bit was lost during the conversion.

Fixes: e184e01dd79 ("AMDGPU: Fold FP clamp as modifier bit")

Patch by Samuel Pitoiset <samuel.pitoiset@gmail.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297556 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[libFuzzer] add more iterations to LLVMFuzzer-Memcmp64BytesTest
Kostya Serebryany [Sat, 11 Mar 2017 05:14:49 +0000 (05:14 +0000)]
[libFuzzer] add more iterations to LLVMFuzzer-Memcmp64BytesTest

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297554 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[ADT] Add a DenseMapInfo<T> for shorts.
Zachary Turner [Sat, 11 Mar 2017 02:52:48 +0000 (02:52 +0000)]
[ADT] Add a DenseMapInfo<T> for shorts.

Differential Revision: https://reviews.llvm.org/D30857

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297552 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[libFuzzer] reduce the number of vector resizes during merge (https://github.com...
Kostya Serebryany [Sat, 11 Mar 2017 02:50:47 +0000 (02:50 +0000)]
[libFuzzer] reduce the number of vector resizes during merge (https://github.com/google/oss-fuzz/issues/445)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297551 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix line endings of DenseMapInfo.h
Zachary Turner [Sat, 11 Mar 2017 02:50:18 +0000 (02:50 +0000)]
Fix line endings of DenseMapInfo.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297550 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRemove eol-style:native from DenseMapInfo.h
Zachary Turner [Sat, 11 Mar 2017 02:47:59 +0000 (02:47 +0000)]
Remove eol-style:native from DenseMapInfo.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297549 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Support] Add a formatv provider for Twine.
Zachary Turner [Sat, 11 Mar 2017 02:45:50 +0000 (02:45 +0000)]
[Support] Add a formatv provider for Twine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297548 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[libFuzzer] print how much memory is consumed by the outer merge process (https:...
Kostya Serebryany [Sat, 11 Mar 2017 02:26:20 +0000 (02:26 +0000)]
[libFuzzer] print how much memory is consumed by the outer merge process (https://github.com/google/oss-fuzz/issues/445)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297546 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRevert r297516 - Respect CMAKE_INSTALL_MANDIR for sphinx generated manpages
Eric Fiselier [Sat, 11 Mar 2017 02:24:13 +0000 (02:24 +0000)]
Revert r297516 - Respect CMAKE_INSTALL_MANDIR for sphinx generated manpages

When CMAKE_INSTALL_MANDIR isn't defined it ends up attempting to install
the man pages under "/man1" and we really don't want to accidentally install
stuff at the filesystem root.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297545 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[libFuzzer] add test/LargeTest.cpp, mostly for manual experiments with large number...
Kostya Serebryany [Sat, 11 Mar 2017 01:54:06 +0000 (01:54 +0000)]
[libFuzzer] add test/LargeTest.cpp, mostly for manual experiments with large number of edges, not yet suitable for unit testing

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297544 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[libFuzzer] remove fuzzer-jobs.test which is flaky and not very useful
Kostya Serebryany [Sat, 11 Mar 2017 01:48:54 +0000 (01:48 +0000)]
[libFuzzer] remove fuzzer-jobs.test which is flaky and not very useful

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297543 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRemove opt-bisect support for "cases" in favor of debug counters
Daniel Berlin [Sat, 11 Mar 2017 01:41:03 +0000 (01:41 +0000)]
Remove opt-bisect support for "cases" in favor of debug counters

Summary:
Ths "cases" support was not quite finished, is unused, and is really just debug counters.
(well, almost, debug counters are slightly more powerful, in that they can skip things at the start, too).
Note, opt-bisect itself could also be implemented as a wrapper around
debug counters, but not sure it's worth it ATM.

I'll shove it on a todo list if we think it is.

Reviewers: MatzeB, chandlerc

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D30856

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297542 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[unittest] Explicitly specify alignment when using BumpPtrAllocator.
Jordan Rose [Sat, 11 Mar 2017 01:24:56 +0000 (01:24 +0000)]
[unittest] Explicitly specify alignment when using BumpPtrAllocator.

r297310 began inserting red zones around allocations under ASan, which
perturbs the alignment of subsequent allocations. Deliberately specify
this in two places where it matters.

Fixes failures when these tests are run under ASan and UBSan together.
Reviewed by Duncan Exon Smith.

rdar://problem/30980047

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297540 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoUse a WeakVH for UnknownInstructions in AliasSetTracker
Sanjoy Das [Sat, 11 Mar 2017 01:15:48 +0000 (01:15 +0000)]
Use a WeakVH for UnknownInstructions in AliasSetTracker

Summary:
This change solves the same problem as D30726, except that this only
throws out the bathwater.

AST was not correctly tracking and deleting UnknownInstructions via
handles.  The existing code only tracks "pointers" in its
`ASTCallbackVH`, so an UnknownInstruction (that isn't also def'ing a
pointer used by another memory instruction) never gets a
`ASTCallbackVH`.

There are two other ways to solve this problem:

 - Use the `PointerRec` scheme for both known and unknown instructions.
 - Use a `CallbackVH` that erases the offending Instruction from the
   UnknownInstruction list.

Both of the above changes seemed to be significantly (and unnecessarily
IMO) more complex than this.

Reviewers: chandlerc, dberlin, hfinkel, reames

Subscribers: mcrosier, llvm-commits

Differential Revision: https://reviews.llvm.org/D30849

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297539 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoVNCoercion: Make the function signatures all consistent
Daniel Berlin [Sat, 11 Mar 2017 00:51:01 +0000 (00:51 +0000)]
VNCoercion: Make the function signatures all consistent

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297537 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AMDGPU] Remove getBidirectionalReasonRank
Stanislav Mekhanoshin [Sat, 11 Mar 2017 00:29:27 +0000 (00:29 +0000)]
[AMDGPU] Remove getBidirectionalReasonRank

This method inverts the Reason field of a scheduling candidate.
It does right comparison between RegCritical and RegExcess, but
everything else is broken. In fact it can prefer less strong reason
such as Weak over RegCritical because Weak > -RegCritical.

The CandReason enum is properly sorted, so just remove artificial
ranking.

Differential Revision: https://reviews.llvm.org/D30557

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297536 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[IRTranslator] Simplify error handling for translating constants. NFC.
Quentin Colombet [Sat, 11 Mar 2017 00:28:33 +0000 (00:28 +0000)]
[IRTranslator] Simplify error handling for translating constants. NFC.

We don't need to check whether the fallback path is enabled to return
false. Just do that all the time on error cases, the caller knows (or
at least should know!) how to handle the failing case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297535 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix subreg value numbers in handleMoveUp
Stanislav Mekhanoshin [Sat, 11 Mar 2017 00:14:52 +0000 (00:14 +0000)]
Fix subreg value numbers in handleMoveUp

The problem can occur in presence of subregs. If we are swapping two
instructions defining different subregs of the same register we will
get a new liveout from a block. We need to preserve value number for
block's liveout for successor block's livein to match.

Differential Revision: https://reviews.llvm.org/D30558

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297534 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoStrip trailing whitespace.
Simon Pilgrim [Fri, 10 Mar 2017 22:53:19 +0000 (22:53 +0000)]
Strip trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297529 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix redundant condition (PR32138)
Simon Pilgrim [Fri, 10 Mar 2017 22:44:47 +0000 (22:44 +0000)]
Fix redundant condition (PR32138)

'!A || (A && B)' is equivalent to '!A || B'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297527 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[RDF] Remove the map of reaching defs from copy propagation
Krzysztof Parzyszek [Fri, 10 Mar 2017 22:44:24 +0000 (22:44 +0000)]
[RDF] Remove the map of reaching defs from copy propagation

Use Liveness::getNearestAliasedRef to find the reaching def instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297526 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[RDF] Implement Liveness::getNearestAliasedRef(Reg, Inst)
Krzysztof Parzyszek [Fri, 10 Mar 2017 22:42:17 +0000 (22:42 +0000)]
[RDF] Implement Liveness::getNearestAliasedRef(Reg, Inst)

This function will find the closest ref node aliased to Reg that is
in an instruction preceding Inst. This could be used to identify the
hypothetical reaching def of Reg, if Reg was a member of Inst.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297524 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86][SSE] Fix load folding for (V)CVTDQ2PD
Simon Pilgrim [Fri, 10 Mar 2017 22:35:07 +0000 (22:35 +0000)]
[X86][SSE] Fix load folding for (V)CVTDQ2PD

This only requires a 64-bit memory source, not the whole 128-bits. But the 128-bit case is still supported via X86InstrInfo::foldMemoryOperandImpl

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297523 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86] Fix Wunused-lambda-capture warning
Simon Pilgrim [Fri, 10 Mar 2017 22:10:34 +0000 (22:10 +0000)]
[X86] Fix Wunused-lambda-capture warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297521 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[X86][RTM] Regenerate RTM intrinsic tests for 32/64-bit targets.
Simon Pilgrim [Fri, 10 Mar 2017 21:55:24 +0000 (21:55 +0000)]
[X86][RTM] Regenerate RTM intrinsic tests for 32/64-bit targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297518 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRespect CMAKE_INSTALL_MANDIR for sphinx generated manpages
Jonathan Roelofs [Fri, 10 Mar 2017 21:44:16 +0000 (21:44 +0000)]
Respect CMAKE_INSTALL_MANDIR for sphinx generated manpages

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297516 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoLTO: Hash type identifier resolutions for WholeProgramDevirt.
Peter Collingbourne [Fri, 10 Mar 2017 21:37:10 +0000 (21:37 +0000)]
LTO: Hash type identifier resolutions for WholeProgramDevirt.

Differential Revision: https://reviews.llvm.org/D30555

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297514 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoLTO: Hash type identifier resolutions for LowerTypeTests.
Peter Collingbourne [Fri, 10 Mar 2017 21:35:17 +0000 (21:35 +0000)]
LTO: Hash type identifier resolutions for LowerTypeTests.

Differential Revision: https://reviews.llvm.org/D30553

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297513 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[GlobalISel] LegalizerHelper: Lower (G_FSUB X, Y) to (G_FADD X, (G_FNEG Y))
Volkan Keles [Fri, 10 Mar 2017 21:25:09 +0000 (21:25 +0000)]
[GlobalISel] LegalizerHelper: Lower (G_FSUB X, Y) to (G_FADD X, (G_FNEG Y))

Summary: No test case as none of the in-tree targets with GlobalISel support has this condition.

Reviewers: qcolombet, aditya_nandakumar, dsanders, t.p.northover, ab

Reviewed By: qcolombet

Subscribers: dberris, rovka, kristof.beyls, llvm-commits, igorb

Differential Revision: https://reviews.llvm.org/D30786

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297512 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoGlobalISel: Translate ConstantAggregateZero vectors
Volkan Keles [Fri, 10 Mar 2017 21:23:13 +0000 (21:23 +0000)]
GlobalISel: Translate ConstantAggregateZero vectors

Reviewers: qcolombet, aditya_nandakumar, dsanders, ab, t.p.northover, javed.absar

Reviewed By: qcolombet

Subscribers: dberris, rovka, llvm-commits, kristof.beyls

Differential Revision: https://reviews.llvm.org/D30259

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297509 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoSink accessing TII to fix release Werror builds.
Eric Christopher [Fri, 10 Mar 2017 21:20:17 +0000 (21:20 +0000)]
Sink accessing TII to fix release Werror builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297507 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[ProfileSummaryInfo] Remove unneeded braces. NFCI.
Davide Italiano [Fri, 10 Mar 2017 20:50:51 +0000 (20:50 +0000)]
[ProfileSummaryInfo] Remove unneeded braces. NFCI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297506 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoFix all these headers to properly mark the doxygen comments.
Daniel Berlin [Fri, 10 Mar 2017 20:44:39 +0000 (20:44 +0000)]
Fix all these headers to properly mark the doxygen comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297505 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AArch64, X86] Additional debug information for MacroFusion
Evandro Menezes [Fri, 10 Mar 2017 20:20:04 +0000 (20:20 +0000)]
[AArch64, X86] Additional debug information for MacroFusion

In order to make it easier to parse information about the performance of
MacroFusion, this patch adds the function and the instruction names to the
debug output of this pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297504 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoWholeProgramDevirt: Implement export/import support for VCP.
Peter Collingbourne [Fri, 10 Mar 2017 20:13:58 +0000 (20:13 +0000)]
WholeProgramDevirt: Implement export/import support for VCP.

Differential Revision: https://reviews.llvm.org/D30017

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297503 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoWholeProgramDevirt: Implement export/import support for unique ret val opt.
Peter Collingbourne [Fri, 10 Mar 2017 20:09:11 +0000 (20:09 +0000)]
WholeProgramDevirt: Implement export/import support for unique ret val opt.

Differential Revision: https://reviews.llvm.org/D29917

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297502 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRefactor the PSI to extract getCallSiteCount and remove checks for profile type.
Dehao Chen [Fri, 10 Mar 2017 19:45:16 +0000 (19:45 +0000)]
Refactor the PSI to extract getCallSiteCount and remove checks for profile type.

Summary: There is no need to check profile count as only CallInst will have metadata attached.

Reviewers: eraman

Reviewed By: eraman

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D30799

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297500 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[AMDGPU] Split R600/SI getFrameIndexReference and emit stack object offsets for SI
Konstantin Zhuravlyov [Fri, 10 Mar 2017 19:39:07 +0000 (19:39 +0000)]
[AMDGPU] Split R600/SI getFrameIndexReference and emit stack object offsets for SI

Differential Revision: https://reviews.llvm.org/D29674

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297499 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRename PT_NOTE namespace name used in AMDGPUPTNote.h
Yaxun Liu [Fri, 10 Mar 2017 19:35:43 +0000 (19:35 +0000)]
Rename PT_NOTE namespace name used in AMDGPUPTNote.h

Patch by Guansong Zhang.

Differential Revision: https://reviews.llvm.org/D30750

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297498 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[GlobalISel] Translate insertelement and extractelement
Volkan Keles [Fri, 10 Mar 2017 19:08:28 +0000 (19:08 +0000)]
[GlobalISel] Translate insertelement and extractelement

Reviewers: qcolombet, aditya_nandakumar, dsanders, ab, t.p.northover, javed.absar

Reviewed By: qcolombet

Subscribers: dberris, rovka, llvm-commits, kristof.beyls

Differential Revision: https://reviews.llvm.org/D30761

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297495 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoNewGVN: Rename InitialClass to TOP, which is what most people would expect it to...
Daniel Berlin [Fri, 10 Mar 2017 19:05:04 +0000 (19:05 +0000)]
NewGVN: Rename InitialClass to TOP, which is what most people would expect it to be called

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297494 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[SLP] Revert everything that has to do with memory access sorting.
Michael Kuperstein [Fri, 10 Mar 2017 18:59:07 +0000 (18:59 +0000)]
[SLP] Revert everything that has to do with memory access sorting.

This reverts r293386, r294027, r294029 and r296411.

Turns out the SLP tree isn't actually a "tree" and we don't handle
accessing the same packet of loads in several different orders well,
causing miscompiles.

Revert until we can fix this properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297493 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[SelectionDAG] Add support for BUILD_VECTOR to ComputeNumSignBits
Simon Pilgrim [Fri, 10 Mar 2017 18:36:46 +0000 (18:36 +0000)]
[SelectionDAG] Add support for BUILD_VECTOR to ComputeNumSignBits

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297492 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[GlobalISel] Make LegalizerInfo accessible in LegalizerHelper
Volkan Keles [Fri, 10 Mar 2017 18:34:57 +0000 (18:34 +0000)]
[GlobalISel] Make LegalizerInfo accessible in LegalizerHelper

Summary:
We don’t actually use LegalizerInfo in Legalizer pass, it’s just passed
as an argument.

In order to check if an instruction is legal or not, we need to get LegalizerInfo
by calling `MI.getParent()->getParent()->getSubtarget().getLegalizerInfo()`.
Instead, make LegalizerInfo accessible in LegalizerHelper.

Reviewers: qcolombet, aditya_nandakumar, dsanders, ab, t.p.northover, kristof.beyls

Reviewed By: qcolombet

Subscribers: dberris, llvm-commits, rovka

Differential Revision: https://reviews.llvm.org/D30838

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297491 91177308-0d34-0410-b5e6-96231b3b80d8