126553 Commits

Author SHA1 Message Date
Craig Topper
83f897b505 [TableGen] Reorder fields in Record class to optimize memory usage. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258064 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 19:52:29 +00:00
Craig Topper
11c70fa131 [TableGen] Allocate the Init pointer array for BitsInit/ListInit after the BitsInit/ListInit object itself. Saves a bit of memory. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258063 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 19:52:24 +00:00
Sanjay Patel
e388c328c2 combine clauses with same output ; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258062 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 19:17:58 +00:00
Simon Atanasyan
c7eed3cf66 [llvm-readobj][ELF] s/dyn_rela_/dyn_rel_/ No functional changes.
Follow up to r258001. These template functions might return both REL and RELA
relocations. The 'rel' noun looks less ambiguous.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258060 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 18:52:04 +00:00
Sanjay Patel
33205ca7b3 use m_OneUse ; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258059 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 18:36:38 +00:00
Sanjay Patel
671ebc065d fix variable names, typos ; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258058 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 18:28:09 +00:00
Sanjay Patel
a0552b5549 fix typo; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258057 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 17:50:23 +00:00
Igor Breger
7d29d4f621 AVX512: Masked store intrinsic implementation.
Implemented intrinsic for the follow instructions (store) : VMOVDQU8/16/32/64, VMOVDQA32/64, VMOVAPS/PD, VMOVUPS/PD.

Differential Revision: http://reviews.llvm.org/D16271

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258047 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 13:52:57 +00:00
Elena Demikhovsky
7ec8518d7b Added Cannonlake processor to X86 Target
Differential Revision: http://reviews.llvm.org/D16289



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258046 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 13:00:31 +00:00
Igor Breger
2b890b8793 AVX512 : Change v8i1 bitconvert GR8 pattern, remove unnecessary movzbl instruction.
code example , previous implementation.
    movzbl  %dil, %eax
    kmovw  %eax, %k0
  new code
    kmovw  %edi, %k0

Differential Revision: http://reviews.llvm.org/D16287

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258045 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 12:02:45 +00:00
Oliver Stannard
daaca8cd29 [ARM] Operands for PKHTB alias should be swapped
When the shift immediate is zero, PKHTB is an alias for PKHBT, but the order of
the input operands needs to be swapped.

Differential Revision: http://reviews.llvm.org/D16288



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258044 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 11:56:35 +00:00
Michael Zuckerman
c2d5ba110d [AVX512] adding AVXVBMI feature flag
Fixing wrong typo (avx515) → (avx512) 
Review over the shoulder by asaf . 

Differential Revision: http://reviews.llvm.org/D16190


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258041 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 11:12:47 +00:00
Xinliang David Li
b54fac2787 [Coverage] move a local var to be BinaryCoverageReader's member
The symtab is logically referenced beyond the call to the create
method. This changes makes sure its lifetime matches that of
the reader.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258036 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 06:48:01 +00:00
Junmo Park
a0a25d8588 Remove extra whitespace. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258035 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 06:42:51 +00:00
Lang Hames
9bbd5f24d3 [Orc] Revert r258031 - it broke the builders.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258034 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 01:51:51 +00:00
Amaury Sechet
33a5a6f04c Fix typo in the C API comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258033 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 01:06:52 +00:00
Lang Hames
1f0b665b9d [Orc] Expand a comment explaining a unit test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258032 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 01:00:19 +00:00
Lang Hames
085a36e4cc [Orc] Enable ORC execution unit tests on non-windows platforms.
Previously these were Darwin-only. Since the switch to direct binary emission
of stubs, trampolines and resolver blocks, these should work on other *nix
platforms too.

These tests can be enabled on Windows once known issues with ORC's handling of
Windows symbol mangling (see e.g. https://llvm.org/PR25940) have been fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258031 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 00:47:25 +00:00
Xinliang David Li
5ee0210144 minor comment clean and add a method \NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258030 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 00:26:33 +00:00
Eduard Burtescu
6edebba796 Revert assert added in rL258028 as the alloca and OtherPtr types may differ in address space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258029 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 00:20:34 +00:00
Eduard Burtescu
be478bad80 [opaque pointer types] Alloca: use getAllocatedType() instead of getType()->getPointerElementType().
Reviewers: mjacob

Subscribers: llvm-commits, dblaikie

Differential Revision: http://reviews.llvm.org/D16272

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258028 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18 00:10:01 +00:00
Sanjay Patel
ebc85eb914 fix variable names; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258027 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 23:18:05 +00:00
Sanjay Patel
1b9680c197 fix typos; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258026 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 23:13:48 +00:00
Davide Italiano
3254a9e8c6 [Support/ELF] Add Sun machine-independent extesions DT_* constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258025 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 22:46:50 +00:00
Manuel Jacob
b7d824d32d [opaque pointer types] [breaking-change] [NFC] SimplifyGEPInst: take the source element type of the GEP as an argument.
Patch by Eduard Burtescu.

Reviewers: dblaikie, mjacob

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D16281


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258024 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 22:46:43 +00:00
Manuel Jacob
9b6827560b [opaque pointer types] [NFC] CallSite: use getFunctionType() instead of going through PointerType::getElementType.
Patch by Eduard Burtescu.

Reviewers: dblaikie, mjacob

Subscribers: dsanders, llvm-commits, dblaikie

Differential Revision: http://reviews.llvm.org/D16273


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258023 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 22:37:39 +00:00
Manuel Jacob
87169a0328 [NFC] Remove one dead PointerType::getElementType() call.
Reviewers: dblaikie, mjacob

Subscribers: llvm-commits, dblaikie

Patch by Eduard Burtescu.

Differential Revision: http://reviews.llvm.org/D16274


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258022 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 22:28:28 +00:00
Craig Topper
8ce1d779bc [TableGen] Keep a returned const reference instead of making a copy. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258020 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 20:38:21 +00:00
Craig Topper
e4b8552199 [TableGen] Replace instructions() with getInstructionsByEnumValue(). No need to make an iterator_range when we already have a function that returns an ArrayRef. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258019 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 20:38:18 +00:00
Craig Topper
3356fb6f86 [TableGen] Return ArrayRef instead of a std::vector reference from getInstructionsByEnumValue(). NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258018 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 20:38:14 +00:00
Craig Topper
671078454d [TableGen] Use std::find instead of a manual loop. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258017 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 19:51:14 +00:00
Sanjoy Das
26e7d2f8d6 [IndVars] Fix PR25576
`LCSSASafePhiForRAUW` as computed was incorrect -- in cases like
these (this exact example does not actually trigger the bug):

define i32 @f(i32 %n, i1* %c) {
entry:
  br label %outer.loop

outer.loop:
  br label %inner.loop

inner.loop:
  %iv = phi i32 [ 0, %outer.loop ], [ %iv.inc, %inner.loop ]
  %iv.inc = add nuw nsw i32 %iv, 1
  %tc = udiv i32 %n, 13
  %be.cond = icmp ult i32 %iv, %tc
  br i1 %be.cond, label %inner.loop, label %inner.exit

inner.exit:
  %iv.lcssa = phi i32 [ %iv, %inner.loop ]
  %outer.be.cond = load volatile i1, i1* %c
  br i1 %outer.be.cond, label %outer.loop, label %leave

leave:
  %iv.lcssa.lcssa = phi i32 [ %iv.lcssa, %inner.exit ]
  ret i32 %iv.lcssa.lcssa
}

`LCSSASafePhiForRAUW` is true for `%iv.lcssa` when re-rewriting the exit
value of `%iv` for `%inner.loop` to `%tc` (this can happen due to
`SCEVExpander::findExistingExpansion`), but the RAUW breaks LCSSA.

To fix this, instead of computing `SafePhi` with special logic, decide
the safety of RAUW directly via `replacementPreservesLCSSAForm`.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258016 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 18:12:52 +00:00
Sanjoy Das
1e20935fdc [IndVars] Use emplace_back; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258015 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 18:12:48 +00:00
Sanjoy Das
c411749e6e [SCEV] Use range for; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258014 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 18:12:45 +00:00
Simon Pilgrim
1c8842bf8b [X86][AVX512] Regenerate v1 shuffle tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258013 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 14:53:17 +00:00
Michael Zuckerman
d26cdd00ea [AVX512] adding AVXVBMI feature flag
The feature flag is for VPERMB,VPERMI2B,VPERMT2B and VPMULTISHIFTQB instructions. 
More about the instruction can be found in:
hattps://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf

Differential Revision: http://reviews.llvm.org/D16190


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258012 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 13:42:12 +00:00
Artur Pilipenko
177a5cb01e Fix buildbot failure introduced by 258010. Remove local variables became unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258011 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 12:59:40 +00:00
Artur Pilipenko
ae316aa098 Push isDereferenceableAndAlignedPointer down into isSafeToLoadUnconditionally
Reviewed By: reames

Differential Revision: http://reviews.llvm.org/D16226


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258010 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 12:35:29 +00:00
Igor Breger
e74c24049c AVX512: Use MemIntrinsicSDNode to implement load/store intrinsic.
Differential Revision: http://reviews.llvm.org/D16184

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258009 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 12:10:24 +00:00
Michael Zuckerman
3ca2d3715a [AVX512] Adding VPERMW/D/Q VPERMPS/D Intrinsics
Differential Revision: http://reviews.llvm.org/D16189



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258008 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 11:33:29 +00:00
Craig Topper
e0b4b2fd22 [TableGen] Use a StringRef instead of creating a new std::string. It gets passed to a function that takes a StringRef anyway. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258007 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 08:47:02 +00:00
Michael Zuckerman
cda374b86e [AVX512] Adding VPERMQ VPERMPD Intrinsics
Differential Revision: http://reviews.llvm.org/D16194



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258006 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 08:32:14 +00:00
Craig Topper
73251b7217 [TableGen] Changes to AsmWriterEmitter to remove the CodeGenInstruction to AsmWriterInst map. NFC
Adds the corresponding CodeGenInstruction number to each AsmWriterInst. Then write all the operand uniqueing loops using the AsmWriterInst array and indices. Then use the CodeGenInstruction index to fill out the OpCodeInfo array.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258005 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 08:05:33 +00:00
Craig Topper
9990e7de74 [TableGen] Use std::find instead of a manual loop. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258004 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 08:05:30 +00:00
Lang Hames
94e1407bce Remove some stale comments and fix a typo as suggested by David Blaikie in his
review of r257343.

Thanks Dave!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258002 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-17 01:49:46 +00:00
Simon Atanasyan
d46c0450ce [llvm-readobj][ELF] Teach llvm-readobj to show dynamic relocation in REL format
MIPS 32-bit ABI uses REL relocation record format to save dynamic
relocations. The patch teaches llvm-readobj to show dynamic relocations
in this format.

Differential Revision: http://reviews.llvm.org/D16114

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258001 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-16 22:40:09 +00:00
Simon Pilgrim
84d4a7a485 [X86][AVX] Enable extraction of upper 128-bit subvectors for 'half undef' shuffle lowering
Added support for the extraction of the upper 128-bit subvectors for lower/upper half undef shuffles if it would reduce the number of extractions/insertions or avoid loads of AVX2 permps/permd shuffle masks.

Minor follow up to D15477.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258000 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-16 22:30:20 +00:00
Manuel Jacob
75e1cfb035 GlobalValue: use getValueType() instead of getType()->getPointerElementType().
Reviewers: mjacob

Subscribers: jholewinski, arsenm, dsanders, dblaikie

Patch by Eduard Burtescu.

Differential Revision: http://reviews.llvm.org/D16260


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257999 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-16 20:30:46 +00:00
Simon Pilgrim
d75248c804 [X86][SSE] Added extra 'float3' consecutive load tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257998 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-16 19:53:33 +00:00
Manman Ren
9836f9e34f CXX_FAST_TLS calling convention: fix issue on x86-64.
%RBP can't be handled explicitly. We generate the following code:
    pushq %rbp
    movq  %rsp, %rbp
    ...
    movq  %rbx, (%rbp)  ## 8-byte Spill
where %rbp will be overwritten by the spilled value.

The fix is to let PEI handle %RBP.
PR26136


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257997 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-16 16:39:46 +00:00