OSDN Git Service
Amaury Sechet [Mon, 18 Jan 2016 01:06:52 +0000 (01:06 +0000)]
Fix typo in the C API comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258033
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 18 Jan 2016 01:00:19 +0000 (01:00 +0000)]
[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
Lang Hames [Mon, 18 Jan 2016 00:47:25 +0000 (00:47 +0000)]
[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
Xinliang David Li [Mon, 18 Jan 2016 00:26:33 +0000 (00:26 +0000)]
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
Eduard Burtescu [Mon, 18 Jan 2016 00:20:34 +0000 (00:20 +0000)]
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
Eduard Burtescu [Mon, 18 Jan 2016 00:10:01 +0000 (00:10 +0000)]
[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
Sanjay Patel [Sun, 17 Jan 2016 23:18:05 +0000 (23:18 +0000)]
fix variable names; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258027
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sun, 17 Jan 2016 23:13:48 +0000 (23:13 +0000)]
fix typos; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258026
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sun, 17 Jan 2016 22:46:50 +0000 (22:46 +0000)]
[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
Manuel Jacob [Sun, 17 Jan 2016 22:46:43 +0000 (22:46 +0000)]
[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
Manuel Jacob [Sun, 17 Jan 2016 22:37:39 +0000 (22:37 +0000)]
[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
Manuel Jacob [Sun, 17 Jan 2016 22:28:28 +0000 (22:28 +0000)]
[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
Craig Topper [Sun, 17 Jan 2016 20:38:21 +0000 (20:38 +0000)]
[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
Craig Topper [Sun, 17 Jan 2016 20:38:18 +0000 (20:38 +0000)]
[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
Craig Topper [Sun, 17 Jan 2016 20:38:14 +0000 (20:38 +0000)]
[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
Craig Topper [Sun, 17 Jan 2016 19:51:14 +0000 (19:51 +0000)]
[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
Sanjoy Das [Sun, 17 Jan 2016 18:12:52 +0000 (18:12 +0000)]
[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
Sanjoy Das [Sun, 17 Jan 2016 18:12:48 +0000 (18:12 +0000)]
[IndVars] Use emplace_back; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258015
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sun, 17 Jan 2016 18:12:45 +0000 (18:12 +0000)]
[SCEV] Use range for; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258014
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 17 Jan 2016 14:53:17 +0000 (14:53 +0000)]
[X86][AVX512] Regenerate v1 shuffle tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258013
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Sun, 17 Jan 2016 13:42:12 +0000 (13:42 +0000)]
[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
Artur Pilipenko [Sun, 17 Jan 2016 12:59:40 +0000 (12:59 +0000)]
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
Artur Pilipenko [Sun, 17 Jan 2016 12:35:29 +0000 (12:35 +0000)]
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
Igor Breger [Sun, 17 Jan 2016 12:10:24 +0000 (12:10 +0000)]
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
Michael Zuckerman [Sun, 17 Jan 2016 11:33:29 +0000 (11:33 +0000)]
[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
Craig Topper [Sun, 17 Jan 2016 08:47:02 +0000 (08:47 +0000)]
[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
Michael Zuckerman [Sun, 17 Jan 2016 08:32:14 +0000 (08:32 +0000)]
[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
Craig Topper [Sun, 17 Jan 2016 08:05:33 +0000 (08:05 +0000)]
[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
Craig Topper [Sun, 17 Jan 2016 08:05:30 +0000 (08:05 +0000)]
[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
Lang Hames [Sun, 17 Jan 2016 01:49:46 +0000 (01:49 +0000)]
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
Simon Atanasyan [Sat, 16 Jan 2016 22:40:09 +0000 (22:40 +0000)]
[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
Simon Pilgrim [Sat, 16 Jan 2016 22:30:20 +0000 (22:30 +0000)]
[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
Manuel Jacob [Sat, 16 Jan 2016 20:30:46 +0000 (20:30 +0000)]
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
Simon Pilgrim [Sat, 16 Jan 2016 19:53:33 +0000 (19:53 +0000)]
[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
Manman Ren [Sat, 16 Jan 2016 16:39:46 +0000 (16:39 +0000)]
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
Simon Pilgrim [Sat, 16 Jan 2016 15:41:42 +0000 (15:41 +0000)]
[X86][SSE] Regenerated SSE4 CRC32 and v2i64 comparison tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257996
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 16 Jan 2016 15:25:02 +0000 (15:25 +0000)]
[X86][AVX] Regenerated AVX tests
Updated i1 select, vector truncation and subvector extraction tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257995
91177308-0d34-0410-b5e6-
96231b3b80d8
Dimitry Andric [Sat, 16 Jan 2016 15:18:35 +0000 (15:18 +0000)]
Similar to rL257663, remove `function` keywords from export.sh and
tag.sh, since they are marked to be run with /bin/sh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257994
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 16 Jan 2016 15:13:58 +0000 (15:13 +0000)]
[X86]AVX] Tidyup shift/splat tests
Missing comments, fixed bad word wrapping
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257993
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 16 Jan 2016 14:03:40 +0000 (14:03 +0000)]
[X86][SSE] Regenerated HADD/HSUB tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257992
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Laevsky [Sat, 16 Jan 2016 12:15:53 +0000 (12:15 +0000)]
[BasicAliasAnalysis] Take into account operand bundles in the getModRefInfo function
Differential Revision: http://reviews.llvm.org/D16225
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257991
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Sat, 16 Jan 2016 10:38:32 +0000 (10:38 +0000)]
Fixed CRLF->LF line endings from r257914. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257990
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sat, 16 Jan 2016 06:06:36 +0000 (06:06 +0000)]
[llvm-readobj] Dump DT_RELACOUNT correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257988
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Sat, 16 Jan 2016 05:29:49 +0000 (05:29 +0000)]
[PGO] fix a bug in profile summary computation
Entry block count was not counted and is corrected. Also
introduce a new metric that is MaxInternalBlockCount which
show command shows (as before).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257987
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 16 Jan 2016 03:53:32 +0000 (03:53 +0000)]
[libFuzzer] replace vector with a simpler data structure in the Dictionaries to avoid memory allocations on hot path
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257985
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 16 Jan 2016 03:44:52 +0000 (03:44 +0000)]
[Cygwin] Use -femulated-tls by default since r257718 introduced the new pass.
FIXME: Add more targets to use emutls into clang/test/Driver/emulated-tls.cpp.
FIXME: Add cygwin tests into llvm/test/CodeGen/X86. Working in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257984
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 16 Jan 2016 01:23:12 +0000 (01:23 +0000)]
[libFuzzer] introduce LLVMFuzzerInitialize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257980
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Sat, 16 Jan 2016 01:15:32 +0000 (01:15 +0000)]
[DwarfDebug] Don't merge DebugLocEntries if their pieces overlap
Summary:
Later in DWARF emission we check that DebugLocEntries have
non-overlapping pieces, so we should create any such entries
by merging here.
Fixes PR26163.
Reviewers: aprantl
Differential Revision: http://reviews.llvm.org/D16249
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257979
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Sat, 16 Jan 2016 01:11:33 +0000 (01:11 +0000)]
[DwarfDebug] Move MergeValues to .cpp, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257977
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Sat, 16 Jan 2016 00:49:19 +0000 (00:49 +0000)]
Revert of 57967
Initial commit message:
CRLF -> LF. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257973
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sat, 16 Jan 2016 00:31:11 +0000 (00:31 +0000)]
Introduce sanstats tool and llvm::CreateSanitizerStatReport function.
This is part of a new statistics gathering feature for the sanitizers.
See clang/docs/SanitizerStats.rst for further info and docs.
Differential Revision: http://reviews.llvm.org/D16174
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257970
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 16 Jan 2016 00:20:03 +0000 (00:20 +0000)]
[WebAssembly] Add some more README.txt entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257969
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Sat, 16 Jan 2016 00:14:21 +0000 (00:14 +0000)]
CRLF -> LF. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257967
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Sat, 16 Jan 2016 00:09:09 +0000 (00:09 +0000)]
[codeview] Remove custom line info struct in favor of DebugLoc
The only functional change would be that we might emit multiple filename
segments on code like this:
void f() {
#include "p1/../t.h"
#include "p2/../t.h"
}
I believe these get separate DIFile metadata nodes, but will have the
same canonicalized absolute path. Previously by computing the path up
front and comparing it we would merge the line info segments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257966
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin B. Smith [Sat, 16 Jan 2016 00:08:36 +0000 (00:08 +0000)]
[X86]: Make param names in header and body match for isCalleePop.
Differential Revision: http://reviews.llvm.org/D16246
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257965
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 16 Jan 2016 00:04:36 +0000 (00:04 +0000)]
[libFuzzer] move some code from public interface header to a non-public header. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257963
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 23:59:13 +0000 (23:59 +0000)]
[WebAssembly] Don't create a needless .note.GNU-stack section
WebAssembly's stack will never be executable by default, so it isn't
necessary to declare .note.GNU-stack sections to request a non-executable
stack.
Differential Revision: http://reviews.llvm.org/D15969
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257962
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Belevich [Fri, 15 Jan 2016 23:57:53 +0000 (23:57 +0000)]
[NVPTX] Do not emit .hidden or .protected directives as they are not allowed by PTX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257961
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 23:47:19 +0000 (23:47 +0000)]
[WebAssembly] Re-enable a test.
Out-of-tree projects that don't support this can disable the test for
themselves rather than having it disabled in LLVM itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257960
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 23:19:06 +0000 (23:19 +0000)]
[Orc] Replace switch cases with a macro.
The cases of this switch are all perfectly regular (except for the first case).
A macro is more readable here.
Thanks to Dave Blaikie for the suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257951
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 15 Jan 2016 23:07:58 +0000 (23:07 +0000)]
[opaque pointer types] Remove an unnecessary extra explicit value type in Function
Now that this is up in GlobalValue, just use the value there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257949
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 15 Jan 2016 22:22:04 +0000 (22:22 +0000)]
ValueTracking: Put DataLayout reference into the Query structure, NFC.
It looks nicer and improves the compiletime of a typical
clang -O3 -emit-llvm run by ~0.6% for me.
Differential Revision: http://reviews.llvm.org/D16205
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257944
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 22:09:13 +0000 (22:09 +0000)]
[codeview] Handle multiple frame descriptions in readobj
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257943
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 22:07:35 +0000 (22:07 +0000)]
Remove a now-empty file left behind by r257940.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257942
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 21:56:40 +0000 (21:56 +0000)]
[SelectionDAG] CSE nodes with differing SDNodeFlags
In the optimizer (GVN etc.) when eliminating redundant nodes with different
flags, the flags are ignored for the purposes of testing for congruence, and
then intersected for the purposes of producing a result that supports the union
of all the uses. This commit makes SelectionDAG's CSE do the same thing,
allowing it to CSE nodes in more cases. This fixes PR26063.
Differential Revision: http://reviews.llvm.org/D15957
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257940
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 21:35:24 +0000 (21:35 +0000)]
[Orc] Make FDRPCChannel final.
This class is in the LLI tool, and isn't subclassed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257937
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 15 Jan 2016 21:21:39 +0000 (21:21 +0000)]
PM: Fix an inverted condition in simplifyFunctionCFG
I mentioned the issue here in code review way back in September and
was sure we'd fixed it, but apparently we forgot:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-
20150921/301850.html
In any case, as soon as you try to use this pass in anything but the
most basic pipeline everything falls apart. Fix the condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257935
91177308-0d34-0410-b5e6-
96231b3b80d8
Joseph Tremoulet [Fri, 15 Jan 2016 21:16:19 +0000 (21:16 +0000)]
[WinEH] Rename CatchReturnInst::getParentPad, NFC
Summary:
Rename to getCatchSwitchParentPad, to make it more clear which ancestor
the "parent" in question is. Add a comment pointing out the key feature
that the returned pad indicates which funclet contains the successor
block.
Reviewers: rnk, andrew.w.kaylor, majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16222
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257933
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 21:14:05 +0000 (21:14 +0000)]
[Orc] Remove some reinterpret casts in debugging output.
These casts were from function pointer to data pointer type, which some
compilers (including GCC) may warn about. In all cases where these casts were
used the original value was still available as a TargetAddress (uint64_t), so
we can just print a formatted version of that instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257932
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 15 Jan 2016 20:24:11 +0000 (20:24 +0000)]
CXX_FAST_TLS calling convention: fix issue on ARM.
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
PR26136
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257930
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 15 Jan 2016 20:13:28 +0000 (20:13 +0000)]
CXX_FAST_TLS calling convention: fix issue on AArch64.
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
I will commit fixes to other platforms as well.
PR26136
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257929
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 19:37:14 +0000 (19:37 +0000)]
[Orc] Add a void cast to work around a GCC diagnostic bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257927
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 15 Jan 2016 19:35:42 +0000 (19:35 +0000)]
CXX_FAST_TLS calling convention: fix issue on X86-64.
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
I will commit fixes to other platforms as well.
PR26136
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257925
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 15 Jan 2016 19:22:41 +0000 (19:22 +0000)]
Fix -Wmismatched-tags warning/error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257924
91177308-0d34-0410-b5e6-
96231b3b80d8
Kyle Butt [Fri, 15 Jan 2016 19:20:06 +0000 (19:20 +0000)]
Codegen: [PPC] Silence false-positive initialization warning. NFC
Some compilers don't do exhaustive switch checking. For those compilers,
add an initialization to prevent un-initialized variable warnings from
firing. For compilers with exhaustive switch checking, we still get a
guarantee that the switch is exhaustive, and hence the initializations
are redundant, and a non-functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257923
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 15 Jan 2016 19:01:04 +0000 (19:01 +0000)]
[PGO] Commonize (more) index profile file and buffer writer.
The file and buffer writer code are mostly shared except for the
stream back-patching. This is because raw_string_ostream does not
support seek like interface. The result is that the data patching
code needs to be pushed to the caller which is not quite readable
(passing around offset, value etc). This also makes future enhancement
(which needs more patching) more difficult (and can make impl messy).
In this patch, two types of streams needed by the writer are now
unified with same set of interfaces under ProfOStream class. The patch
method is added so that common implementation becomes cleaner. It
also enables future enhancement. Should be NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257921
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 19:00:20 +0000 (19:00 +0000)]
Bring back "Assert that we have all use/users in the getters."
This reverts commit r257751, bringing back r256105.
The problem the assert found was fixed in r257915.
Original commit message:
Assert that we have all use/users in the getters.
An error that is pretty easy to make is to use the lazy bitcode reader
and then do something like
if (V.use_empty())
The problem is that uses in unmaterialized functions are not accounted
for.
This patch adds asserts that all uses are known.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257920
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 18:55:12 +0000 (18:55 +0000)]
Revert "[ARM] Add ARMv8-M security extension instructions to ARMv8-M Baseline/Mainline"
This reverts commit r257883.
Somehow this didn't make it into r257916.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257919
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Fri, 15 Jan 2016 18:51:51 +0000 (18:51 +0000)]
Reapply r257800 with fix
The fix uniques the bundle of getelementptr indices we are about to vectorize
since it's possible for the same index to be used by multiple instructions.
The original commit message is below.
[SLP] Vectorize the index computations of getelementptr instructions.
This patch seeds the SLP vectorizer with getelementptr indices. The primary
motivation in doing so is to vectorize gather-like idioms beginning with
consecutive loads (e.g., g[a[0] - b[0]] + g[a[1] - b[1]] + ...). While these
cases could be vectorized with a top-down phase, seeding the existing bottom-up
phase with the index computations avoids the complexity, compile-time, and
phase ordering issues associated with a full top-down pass. Only bundles of
single-index getelementptrs with non-constant differences are considered for
vectorization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257918
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 18:31:29 +0000 (18:31 +0000)]
# This is a combination of 2 commits.
# The first commit's message is:
Revert "[ARM] Add DSP build attribute and extension targeting"
This reverts commit
b11cc50c0b4a7c8cdb628abc50b7dc226ff583dc.
# This is the 2nd commit message:
Revert "[ARM] Add new system registers to ARMv8-M Baseline/Mainline"
This reverts commit
837d08454e3e5beb8581951ac26b22fa07df3cd5.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257916
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 18:23:46 +0000 (18:23 +0000)]
Don't try to check all uses if lazy loading.
This means that LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN will not be set
in a few cases.
This should have no impact in ld64 since it doesn't use lazy loading
when merging modules and that is when it checks
LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257915
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:21:34 +0000 (18:21 +0000)]
Recommit r257912
Added forgotten ELFDumper.cpp to commit.
Initial commit message:
[llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj.
If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries.
They were unknown for llvm-readobj before this patch.
Differential revision: http://reviews.llvm.org/D16224
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257914
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:19:06 +0000 (18:19 +0000)]
Revert r257912 - forgot to commit one file.
Initial commit message:
[llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj.
If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries.
They were unknown for llvm-readobj before this patch.
Differential revision: http://reviews.llvm.org/D16224
----
Added : /llvm/trunk/test/tools/llvm-readobj/Inputs/dynamic-table-so.aarch64
Modified : /llvm/trunk/test/tools/llvm-readobj/Inputs/dynamic-table.c
Modified : /llvm/trunk/test/tools/llvm-readobj/dynamic.test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257913
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:13:59 +0000 (18:13 +0000)]
[llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj.
If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries.
They were unknown for llvm-readobj before this patch.
Differential revision: http://reviews.llvm.org/D16224
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257912
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:09:27 +0000 (18:09 +0000)]
[Support/ELF] - Added DT_TLSDESC_PLT and DT_TLSDESC_GOT constants.
Added 2 constants:
DT_TLSDESC_PLT = 0x6FFFFEF6, Location of PLT entry for TLS descriptor resolver calls.
DT_TLSDESC_GOT = 0x6FFFFEF7, Location of GOT entry used by TLS descriptor resolver PLT entry.
Constants were taken from "Thread-Local Storage Descriptors for IA32 and AMD64/EM64T Version 0.9.5" http://www.fsfla.org/~lxoliva/writeups/TLS/RFC-TLSDESC-x86.txt
Differential revision: http://reviews.llvm.org/D16185
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257911
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 18:06:25 +0000 (18:06 +0000)]
[codeview] Dump the file checksum substream
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257910
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 15 Jan 2016 17:49:46 +0000 (17:49 +0000)]
[CMake] Need to install VersionFromVCS.cmake as part of LLVM's CMake modules
This is required to support clang --version detecting the clang repository information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257909
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 15 Jan 2016 17:04:45 +0000 (17:04 +0000)]
test-release.sh: Fix clang-tools-extra symlink for CMake build
The CMake and Autoconf builds want the symlink set up differently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257905
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 16:40:20 +0000 (16:40 +0000)]
Add a test showing when ld64 can hide linkonce_odr symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257903
91177308-0d34-0410-b5e6-
96231b3b80d8
James Y Knight [Fri, 15 Jan 2016 16:33:06 +0000 (16:33 +0000)]
Stop increasing alignment of externally-visible globals on ELF
platforms.
With ELF, the alignment of a global variable in a shared library will
get copied into an executables linked against it, if the executable even
accesss the variable. So, it's not possible to implicitly increase
alignment based on access patterns, or you'll break existing binaries.
This happened to affect libc++'s std::cout symbol, for example. See
thread: http://thread.gmane.org/gmane.comp.compilers.clang.devel/45311
(This is a re-commit of r257719, without the bug reported in
PR26144. I've tweaked the code to not assert-fail in
enforceKnownAlignment when computeKnownBits doesn't recurse far enough
to find the underlying Alloca/GlobalObject value.)
Differential Revision: http://reviews.llvm.org/D16145
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257902
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 16:16:46 +0000 (16:16 +0000)]
Make sure this test is actually executed.
Before it was always unsupported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257899
91177308-0d34-0410-b5e6-
96231b3b80d8
Silviu Baranga [Fri, 15 Jan 2016 15:52:05 +0000 (15:52 +0000)]
Re-commit r257064, after it was reverted in r257340.
This contains a fix for the issue that caused the revert:
we no longer assume that we can insert instructions after the
instruction that produces the base pointer. We previously
assumed that this would be ok, because the instruction produces
a value and therefore is not a terminator. This is false for invoke
instructions. We will now insert these new instruction directly
at the location of the users.
Original commit message:
[InstCombine] Look through PHIs, GEPs, IntToPtrs and PtrToInts to expose more constants when comparing GEPs
Summary:
When comparing two GEP instructions which have the same base pointer
and one of them has a constant index, it is possible to only compare
indices, transforming it to a compare with a constant. This removes
one use for the GEP instruction with the constant index, can reduce
register pressure and can sometimes lead to removing the comparisson
entirely.
InstCombine was already doing this when comparing two GEPs if the base
pointers were the same. However, in the case where we have complex
pointer arithmetic (GEPs applied to GEPs, PHIs of GEPs, conversions to
or from integers, etc) the value of the original base pointer will be
hidden to the optimizer and this transformation will be disabled.
This change detects when the two sides of the comparison can be
expressed as GEPs with the same base pointer, even if they don't
appear as such in the IR. The transformation will convert all the
pointer arithmetic to arithmetic done on indices and all the relevant
uses of GEPs to GEPs with a common base pointer. The GEP comparison
will be converted to a comparison done on indices.
Reviewers: majnemer, jmolloy
Subscribers: hfinkel, jevinskie, jmolloy, aadg, llvm-commits
Differential Revision: http://reviews.llvm.org/D15146
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257897
91177308-0d34-0410-b5e6-
96231b3b80d8
Artur Pilipenko [Fri, 15 Jan 2016 15:27:46 +0000 (15:27 +0000)]
Change isSafeToLoadUnconditionally arguments order. Separated from reviews.llvm.org/D10920.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257894
91177308-0d34-0410-b5e6-
96231b3b80d8
Joseph Tremoulet [Fri, 15 Jan 2016 15:08:36 +0000 (15:08 +0000)]
[InstructionsTest] delete via unique_ptr (NFC)
Summary:
Simplify the memory management of mock IR in test AlterInvokeBundles.
Reviewers: dblaikie
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16211
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257892
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 15 Jan 2016 14:08:31 +0000 (14:08 +0000)]
[Hexagon] Generate CONST64 when optimizing for size in copy-to-combine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257891
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 15 Jan 2016 13:55:57 +0000 (13:55 +0000)]
[Hexagon] Handle DBG_VALUE instructions in copy-to-combine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257890
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Fri, 15 Jan 2016 13:10:46 +0000 (13:10 +0000)]
Revert "[SLP] Vectorize the index computations of getelementptr instructions."
This reverts commit r257800.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257888
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Fri, 15 Jan 2016 10:36:01 +0000 (10:36 +0000)]
[CodeGenPrepare] Try and appease sanitizers
dupRetToEnableTailCallOpts(BB) can invalidate BB. It must run *after* we iterate across BB!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257886
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:28:25 +0000 (10:28 +0000)]
[ARM] Add DSP build attribute and extension targeting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257885
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:28:03 +0000 (10:28 +0000)]
[ARM] Add new system registers to ARMv8-M Baseline/Mainline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257884
91177308-0d34-0410-b5e6-
96231b3b80d8