OSDN Git Service
Simon Pilgrim [Fri, 15 Jan 2016 09:52:50 +0000 (09:52 +0000)]
[X86][SSE] Added more exhaustive merge consecutive load tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257876
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Fri, 15 Jan 2016 09:20:19 +0000 (09:20 +0000)]
[InstCombine] Rewrite bswap/bitreverse handling completely.
There are several requirements that ended up with this design;
1. Matching bitreversals is too heavyweight for InstCombine and doesn't really need to be done so early.
2. Bitreversals and byteswaps are very related in their matching logic.
3. We want to implement support for matching more advanced bswap/bitreverse patterns like partial bswaps/bitreverses.
4. Bswaps are best matched early in InstCombine.
The result of these is that a new utility function is created in Transforms/Utils/Local.h that can be configured to search for bswaps, bitreverses or both. InstCombine uses it to find only bswaps, CGP uses it to find only bitreversals.
We can then extend the matching logic in one place only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257875
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Fri, 15 Jan 2016 07:12:09 +0000 (07:12 +0000)]
[SystemZ] Fix bad instruction name
SLGBR -> SLBGR
Reviewed by Ulrich Weigand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257874
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 15 Jan 2016 06:24:05 +0000 (06:24 +0000)]
[libFuzzer] do mutations based on memcmp/strcmp interceptors under a separate flag (-use_memcmp, default=1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257873
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Wilkins [Fri, 15 Jan 2016 03:33:35 +0000 (03:33 +0000)]
[docs] Document LLVM_{BUILD,LINK}_LLVM_DYLIB
Summary:
Document the LLVM_BUILD_LLVM_DYLIB and LLVM_LINK_LLVM_DYLIB
CMake options, move BUILD_SHARED_LIBS out of frequently-used,
and add a note/warning to BUILD_SHARED_LIBS.
Reviewers: beanz, delcypher, mjacob
Subscribers: mjacob, llvm-commits
Differential Revision: http://reviews.llvm.org/D16208
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257864
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Fri, 15 Jan 2016 02:24:12 +0000 (02:24 +0000)]
Delete MCRelocationInfo::createExprForRelocation.
This method has no callers.
Also remove X86ELFRelocationInfo.cpp and X86MachORelocationInfo.cpp
which only existed to provide an implementation of that method.
Ok'd by Rafael and Jim.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257859
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 15 Jan 2016 02:14:46 +0000 (02:14 +0000)]
lli: use llvm::utostr() instead of std::to_string().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257857
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 15 Jan 2016 02:13:04 +0000 (02:13 +0000)]
[autoconf] Install VersionFromVCS.cmake, too. clang/CMakeLists.txt requires it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257856
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Fri, 15 Jan 2016 02:12:38 +0000 (02:12 +0000)]
Once again revert debug info verifier changes
Yet another wave of buildbot failures (though fewer this time).
I'm only reverting the Verifier changes, as the test cases
will be fine without them as well, and touching them as often
just introduces unnecessary churn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257855
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Fri, 15 Jan 2016 00:46:17 +0000 (00:46 +0000)]
Reapply r257105 "[Verifier] Check that debug values have proper size"
I originally reapplied this in 257550, but had to revert again due to bot
breakage. The only change in this version is to allow either the TypeSize
or the TypeAllocSize of the variable to be the one represented in debug info
(hopefully in the future we can figure out how to encode the difference).
Additionally, several bot failures following r257550, were due to
optimizer bugs now fixed in r257787 and r257795.
r257550 commit message was:
```
The follow extra changes were made to test cases:
Manually making the variable be the actual type instead of a pointer
to avoid pointer-size differences in generic code:
LLVM :: DebugInfo/Generic/2010-03-24-MemberFn.ll
LLVM :: DebugInfo/Generic/2010-04-06-NestedFnDbgInfo.ll
LLVM :: DebugInfo/Generic/2010-05-03-DisableFramePtr.ll
LLVM :: DebugInfo/Generic/varargs.ll
Delete sizing information from debug info for the same reason
(but the presence of the pointer was important to the test case):
LLVM :: DebugInfo/Generic/restrict.ll
LLVM :: DebugInfo/Generic/tu-composite.ll
LLVM :: Linker/type-unique-type-array-a.ll
LLVM :: Linker/type-unique-simple2.ll
Fixing an incorrect DW_OP_deref
LLVM :: DebugInfo/Generic/2010-05-03-OriginDIE.ll
Fixing a missing DW_OP_deref
LLVM :: DebugInfo/Generic/incorrect-variable-debugloc.ll
Additionally, clang should no longer complain during bootstrap should no
longer happen after r257534.
The original commit message was:
``
Summary:
Teach the Verifier to make sure that the storage size given to llvm.dbg.declare
or the value size given to llvm.dbg.value agree with what is declared in
DebugInfo. This is implicitly assumed in a number of passes (e.g. in SROA).
Additionally this catches a number of common mistakes, such as passing a
pointer when a value was intended or vice versa.
One complication comes from stack coloring which modifies the original IR when
it merges allocas in order to make sure that if AA falls back to the IR it gets
the correct result. However, given this new invariant, indiscriminately
replacing one alloca by a different (differently sized one) is no longer valid.
Fix this by just undefing out any use of the alloca in a dbg.declare in this
case.
Additionally, I had to fix a number of test cases. Of particular note:
- I regenerated dbg-changes-codegen-branch-folding.ll from the given source as
it was affected by the bug fixed in r256077
- two-cus-from-same-file.ll was changed to avoid having a variable-typed debug
variable as that would depend on the target, even though this test is
supposed to be generic
- I had to manually declared size/align for reference type. See also the
discussion for D14275/r253186.
- fpstack-debuginstr-kill.ll required changing `double` to `long double`
- most others were just a question of adding OP_deref
``
```
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257850
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Fri, 15 Jan 2016 00:23:34 +0000 (00:23 +0000)]
LLVMRunStaticConstructors can be called before object is finalized, #24028
Summary: Since you cannot call finalizeObject manually through the C-API and other functions from the C-API automatically call it, LLVMRunStaticConstructors should also call it or otherwise you cannot call it without first calling a workaround function (or call any other function from the C-API which implicitly finalizes the object).
Reviewers: dnovillo, spatel, bkramer, deadalnix, joker.eph, echristo, lhames
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16188
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257849
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 15 Jan 2016 00:17:37 +0000 (00:17 +0000)]
[libFuzzer] use custom stol; also introduce __libfuzzer_is_present so that users can check for its presence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257848
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Fri, 15 Jan 2016 00:13:39 +0000 (00:13 +0000)]
[docs] Restructure description of records created by Statepoints
The previous text was hard to understand even for me and I wrote it. Hopefully the new structure makes it a bit more clear what's going on. If anyone has word smithing suggestion or clarification questions, please let me know.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257847
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 00:11:21 +0000 (00:11 +0000)]
[codeview] Translate file table offsets to filenames and print them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257846
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 15 Jan 2016 00:08:10 +0000 (00:08 +0000)]
rangify; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257845
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Fri, 15 Jan 2016 00:06:58 +0000 (00:06 +0000)]
Fix AArch64ConditionOptimizer
Summary:
This pass may modify the Cmp operands. However, the flag reg may be used by both the branch and CSEL.
Modifying CMP will have side effect on CSEL.
Reviewers: t.p.northover
Subscribers: llvm-commits, aemerson, rengolin
Differential Revision: http://reviews.llvm.org/D16147
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257844
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Thu, 14 Jan 2016 23:58:18 +0000 (23:58 +0000)]
[docs] Update Statepoint docs to clarify format for recent changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257843
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 14 Jan 2016 23:33:43 +0000 (23:33 +0000)]
Orc: Simplify some things with NSDMIs and some braced init.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257840
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 14 Jan 2016 23:23:04 +0000 (23:23 +0000)]
remove duplicate documentation comments (already in the header file) ; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257835
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Thu, 14 Jan 2016 23:16:29 +0000 (23:16 +0000)]
Refactor threshold computation for inline cost analysis
Differential Revision: http://reviews.llvm.org/D15401
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257832
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Thu, 14 Jan 2016 22:44:29 +0000 (22:44 +0000)]
[CMake] Add support for populating LLVM_REPOSITORY from CMake.
Autoconf does this in the GetRepositoryPath script, CMake's VersionFromVCS does grab the SVN_REVISION, but doesn't populate the repository URL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257826
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 22:42:02 +0000 (22:42 +0000)]
[Verifier] Check parentage of GVs in dbg metadata
Summary:
Before this the Verifier didn't complain if the GlobalVariable
referenced from a DIGlobalVariable was not in fact in the correct
module (it would crash while writing bitcode though). Fix this by
always checking parantage of GlobalValues while walking constant
expressions and changing the DIGlobalVariable visitor to also
visit the constant it contains.
Reviewers: rafael
Differential Revision: http://reviews.llvm.org/D16059
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257825
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Thu, 14 Jan 2016 22:34:11 +0000 (22:34 +0000)]
[sancov] html report
Differential Revision: http://reviews.llvm.org/D16161
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257824
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 22:20:56 +0000 (22:20 +0000)]
[Verifier] Verify that a GlobalValue is only used in this Module
Summary:
We already have the inverse verification that we only use globals
that are defined in this module. This essentially catches the
same mistake, but when verifying the module that contains the
definition.
Reviewers: rafael
Differential Revision: http://reviews.llvm.org/D15272
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257823
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 22:10:49 +0000 (22:10 +0000)]
[PGO] Move profile summary interface/impl into InstrProf.[*] /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257819
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 14 Jan 2016 22:02:03 +0000 (22:02 +0000)]
[Orc] Add support for EH-frame registration to the Orc Remote Target utility
classes.
OrcRemoteTargetClient::RCMemoryManager will now register EH frames with the
server automatically. This allows remote-execution of code that uses exceptions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257816
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 21:59:22 +0000 (21:59 +0000)]
[Hexagon] Use S2_lsr_i_r instead of S2_extractu to obtain upper halfword
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257815
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 21:50:05 +0000 (21:50 +0000)]
[codeview] Dump function callees and add more labels to inlinee info
I kept forgetting which number is the line delta and which is the code
delta.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257813
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 21:45:43 +0000 (21:45 +0000)]
[Hexagon] Handle HVX registers in bit simplification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257811
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 21:17:04 +0000 (21:17 +0000)]
[Packetizer] Code cleanup, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257805
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Thu, 14 Jan 2016 21:06:47 +0000 (21:06 +0000)]
Update to use new name alignTo().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257804
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Jan 2016 21:03:06 +0000 (21:03 +0000)]
Handle offsets larger than 32 bits.
David Majnemer noticed that it was not obvious what the behavior would
be if B.Offset - A.Offset could not fit in an int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257803
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Thu, 14 Jan 2016 20:46:27 +0000 (20:46 +0000)]
[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.
Differential Revision: http://reviews.llvm.org/D14829
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257800
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Thu, 14 Jan 2016 20:43:11 +0000 (20:43 +0000)]
[Support] Rename RoundUpToAlignment -> alignTo.
Rounding up an integer m to a nearest multiple of n where n is a power
of 2 is used very often if you are writing code to emit binary files.
RoundUpToAlignment is a small function to do that. But we found that the
function has a small but annoying issue; the name is a bit too long.
Because it is used quite often, that hurts readability.
This patch is to rename the function. The original name is kept as a
forwarder, so that submitting this patch won't immediately break Clang
and other LLVM projects. Once I update all occurrences of RoundUpToAlignment,
I'll remove the old name entirely.
http://reviews.llvm.org/D16162
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257799
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Jan 2016 20:28:25 +0000 (20:28 +0000)]
Assert that a cmp function defines a total order.
Thanks to David Blaikie for noticing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257796
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 20:06:34 +0000 (20:06 +0000)]
[SROA] Also insert a bit piece expression if only one piece is needed
Summary: If SROA creates only one piece (e.g. because the other is not needed),
it still needs to create a bit_piece expression if that bit piece is smaller
than the original size of the alloca.
Reviewers: aprantl
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16187
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257795
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Thu, 14 Jan 2016 19:45:36 +0000 (19:45 +0000)]
[CodeGen] Don't assume fp_to_fp16 produces i16 when legalizing it.
Since r230276, we support an improved legalization for f64->f16,
which goes through a temporary f32, improving codegen when
f32->f16 is legal but not f64->f16. This requires unsafe-fp-math.
However, that legalization assumed that the second step, producing
a pseudo-softened f16, had type i16. That's not true on targets
with illegal i16, such as ARM.
Use the initial f64->f16 result type instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257794
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 19:40:27 +0000 (19:40 +0000)]
Include TypeIndex. Again, the "check" target is not enough to catch this currently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257793
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 19:25:04 +0000 (19:25 +0000)]
Rename WinCodeViewLineTables to CodeViewDebug, similar to DwarfDebug
Soon it will be responsible for more than line tables.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D16199
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257792
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 14 Jan 2016 19:21:14 +0000 (19:21 +0000)]
Exclude test-suite from CMake builds in test-release.sh
It's broken. In 3.7 there wasn't a CMake build for test-suite at all,
so we're not losing something we had before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257791
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 19:20:17 +0000 (19:20 +0000)]
[codeview] Dump CodeView inlinee lines subsection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257790
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 19:12:27 +0000 (19:12 +0000)]
[Utils] Fix incorrect dbg.declare store conversion
Summary: The dbg.declare -> dbg.value conversion did not check which operand of
the store instruction the alloca was passed to. As a result code that stored the
address of an alloca, rather than storing to the alloca, would still trigger
the conversion routine, leading to the insertion of an incorrect dbg.value
intrinsic.
Reviewers: aprantl
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16169
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257787
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Thu, 14 Jan 2016 18:31:07 +0000 (18:31 +0000)]
dsymutil: Provide better warnings when clang modules cannot be found.
rdar://problem/
22823264
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257784
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 18:09:45 +0000 (18:09 +0000)]
[PGO] [Coverage] put covmap into note section with no 'alloc flag' (Linux)
Coverage mapping data is not referenced by runtime, and they won't be dumped
into profile data. There is no need to allocate memory for covmap sections.
A good side effect of this change is that the coverage map data won't be mistakenly
garbage collected by the linker (for Gold linker only, BFD linker has an issue where the a bug is filed).
Tested with clang build with instrumentation and -fcoverage-mapping and linker GC. The size of
covmap section is ~17.6M so the text segment size will be reduced by this amount with this change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257781
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 18:03:29 +0000 (18:03 +0000)]
Use std::map::insert instead of emplace for libstdc++ 4.7
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257780
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 17:52:01 +0000 (17:52 +0000)]
Print function names when they are referenced via TypeIndex
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257778
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 17:51:57 +0000 (17:51 +0000)]
[readobj] Add functionality to dump relocations inside of binary blobs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257777
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 17:51:54 +0000 (17:51 +0000)]
[codeview] Print relocations against code and data offset fields
These fields are almost always zero. However, there are relocations
against them, and we should print the relocation symbol with it as
SYM+0xNN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257776
91177308-0d34-0410-b5e6-
96231b3b80d8
James Y Knight [Thu, 14 Jan 2016 16:33:21 +0000 (16:33 +0000)]
Revert "Stop increasing alignment of externally-visible globals on ELF platforms."
This reverts commit r257719, due to PR26144.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257775
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 14 Jan 2016 15:49:32 +0000 (15:49 +0000)]
Revert "[ValueTracking] Understand more select patterns in ComputeKnownBits"
This reverts commit r257769. Backing this out because of stage2 failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257773
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 15:37:16 +0000 (15:37 +0000)]
[Hexagon] Expand pseudo instruction Insert4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257771
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 15:24:15 +0000 (15:24 +0000)]
Unxfail passing testcase on Hexagon
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257770
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 14 Jan 2016 15:23:19 +0000 (15:23 +0000)]
[ValueTracking] Understand more select patterns in ComputeKnownBits
Some patterns of select+compare allow us to know exactly the value of the uppermost bits in the select result. For example:
%b = icmp ugt i32 %a, 5
%c = select i1 %b, i32 2, i32 %a
Here we know that %c is bounded by 5, and therefore KnownZero = ~APInt(5).getActiveBits() = ~7.
There are several such patterns, and this patch attempts to understand a reasonable subset of them - namely when the base values are the same (as above), and when they are related by a simple (add nsw), for example (add nsw %a, 4) and %a.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257769
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 15:05:27 +0000 (15:05 +0000)]
[Hexagon] Handle branches with non-mbb operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257768
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 14 Jan 2016 15:00:09 +0000 (15:00 +0000)]
[LTO] Add a run of LoopUnroll
Loop trip counts can often be resolved during LTO. We should obviously be unrolling small loops once those trip counts have been resolved, but we weren't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257767
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 14 Jan 2016 14:33:04 +0000 (14:33 +0000)]
[ARM] Use the efficient version of BitVector::set and a static_assert.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257766
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Liew [Thu, 14 Jan 2016 13:39:29 +0000 (13:39 +0000)]
[docs] Improve the documentation on committing code reviewed on
Phabricator to trunk.
The previous documentation had a few issues:
* It did not make it explicit that code could be
committed without using the Arcanist tool and how this should be done.
* There was also an implicit assumption on using Subversion
rather than git-svn in the example using Arcanist. The documentation now
explicitly mentions both cases and details how to commit to trunk in
each case.
Reviewers: klimek, probinson
Subscribers: probinson, nwilson, reames, llvm-commits
Differential Revision: http://reviews.llvm.org/D15801
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257764
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 14 Jan 2016 09:21:49 +0000 (09:21 +0000)]
InstructionsTest.cpp: Fix a warning. [-Wsign-compare]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257752
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Thu, 14 Jan 2016 09:02:45 +0000 (09:02 +0000)]
Revert "Assert that we have all use/users in the getters."
This reverts commit
fdb838f3f8a8b6896bbbd5285555874eb3b748eb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257751
91177308-0d34-0410-b5e6-
96231b3b80d8
Vaivaswatha Nagaraj [Thu, 14 Jan 2016 08:46:45 +0000 (08:46 +0000)]
[GlobalsAA] Relax condition in checking globals as args to functions
Summary:
Since globals may escape as function arguments (even when they have been
found to be non-escaping, because of optimizations such as memcpyoptimizer
that replaces stores with memcpy), all arguments to a function are checked
during query to make sure they are identifiable. At that time, also ensure
we return a conservative result only if the arguments don't alias to our global.
Reviewers: hfinkel, jmolloy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16140
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257750
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Breger [Thu, 14 Jan 2016 07:56:04 +0000 (07:56 +0000)]
AVX512: VMOVDQA32/64 (load) intrinsic implementation.
Differential Revision: http://reviews.llvm.org/D16142
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257749
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 06:38:52 +0000 (06:38 +0000)]
Rename local variable to avoid conflict
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257748
91177308-0d34-0410-b5e6-
96231b3b80d8
Joseph Tremoulet [Thu, 14 Jan 2016 06:30:19 +0000 (06:30 +0000)]
[UnitTest] Fix warning, NFC.
Use an unsigned literal to avoid signedness mismatch in the compare.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257747
91177308-0d34-0410-b5e6-
96231b3b80d8
Joseph Tremoulet [Thu, 14 Jan 2016 06:21:42 +0000 (06:21 +0000)]
[OperandBundles] Copy DebugLoc with calls/invokes
Summary:
The overloads of CallInst::Create and InvokeInst::Create that are used to
adjust operand bundles purport to create a new instruction "identical in
every way except [for] the operand bundles", so copy the DebugLoc along
with everything else.
Reviewers: sanjoy, majnemer
Subscribers: majnemer, dblaikie, llvm-commits
Differential Revision: http://reviews.llvm.org/D16157
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257745
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 06:21:25 +0000 (06:21 +0000)]
Cleanup: shorten prefix to consistent with other decls /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257744
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 14 Jan 2016 06:15:07 +0000 (06:15 +0000)]
[TableGen] Pass PassSubtarget flag into getCode instead of storing a copy of the flag in every AsmWriterOperand. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257743
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 14 Jan 2016 06:12:30 +0000 (06:12 +0000)]
[CodeView] Add support for dumping binary annotations
Binary annotations are encoded along the lines of UTF-8 and ECI but with
a few minor differences.
The algorithm specified in "ECMA-335 CLI Section II.3.2 - Blobs and
Signatures" is used to compress binary annotations. Signed binary
annotations are encoded like unsigned annotations except the sign bit is
rotated left to reduce the number of bits needed to be encoded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257742
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 04:22:45 +0000 (04:22 +0000)]
Fix comments /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257740
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 02:47:01 +0000 (02:47 +0000)]
[PGO] clean up and documentation
Introduce enum for indexed format versions and
document indexed format change history.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257737
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 14 Jan 2016 02:36:44 +0000 (02:36 +0000)]
[libFuzzer] suggest a dictionary to the user of some of the trace-based dictionary entries were successful
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257736
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Thu, 14 Jan 2016 02:12:30 +0000 (02:12 +0000)]
[AArch64] Don't assume extractelt constant index when matching shuffle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257735
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 02:10:49 +0000 (02:10 +0000)]
Add virtual dtor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257734
91177308-0d34-0410-b5e6-
96231b3b80d8
JF Bastien [Thu, 14 Jan 2016 01:49:22 +0000 (01:49 +0000)]
WebAssembly: mark a few new failures
A recent change introduced this assertion failure in some corner cases.
Repro:
mkdir /s/wasm/torture-out ; time /s/wasm/waterfall/src/compile_torture_tests.py --c /s/llvm/out/bin/clang --cxx /s/llvm/out/bin/clang++ --testsuite /s/gcc/gcc/testsuite --fails /s/llvm/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt --out /s/wasm/torture-out
Or look on the wasm integration bot:
https://build.chromium.org/p/client.wasm.llvm/console
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257733
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 14 Jan 2016 01:33:00 +0000 (01:33 +0000)]
Mark remote-JIT tests as XFAIL, as well as win32, for targeting mingw32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257732
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 14 Jan 2016 01:20:03 +0000 (01:20 +0000)]
[X86] Don't alter HasOpaqueSPAdjustment after we've relied on it
We rely on HasOpaqueSPAdjustment not changing after we've calculated
things based on it. Things like whether or not we can use 'rep;movs' to
copy bytes around, that sort of thing. If it changes, invariants in the
backend will quietly break. This situation arose when we had a call to
memcpy *and* a COPY of the FLAGS register where we would attempt to
reference local variables using %esi, a register that was clobbered by
the 'rep;movs'.
This fixes PR26124.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257730
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Thu, 14 Jan 2016 01:06:05 +0000 (01:06 +0000)]
[GC] Remove more dead code from Registry [NFCI]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257729
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Thu, 14 Jan 2016 00:55:51 +0000 (00:55 +0000)]
Fix Release build warning.
A value used only in an assert. Again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257728
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Thu, 14 Jan 2016 00:45:15 +0000 (00:45 +0000)]
[GC] Remove a bunch of unused complexity from Registry and RegistryParser [NFCI]
The only two Registries we have in the system are the GCStrategy and GCMetadataPrinter ones. Registry has a bunch of problems - for instance, order of initialization is undefined - and the code was overly general for what was actually used. I hope to completely kill Registry in the near future, but for now, just delete all the unused listener and parsing support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257727
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 14 Jan 2016 00:36:59 +0000 (00:36 +0000)]
llvm-profdata.cpp: Fix comment lines. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257726
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Thu, 14 Jan 2016 00:21:56 +0000 (00:21 +0000)]
[GCRoot] Assert preconditions to clarify behavior
This code isn't reachable if the GFI (GCFunctionInfo*) is null. Clarify this by adding an assert and removing an always taken if.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257724
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 00:12:54 +0000 (00:12 +0000)]
[codeview] Regenerate C++ display name test case and update comments
Clang generates good display names for codeview since r255744, and the
change to make LLVM use them was accidentally included in r257658.
This change just updates the comments and test case to reflect reality
better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257723
91177308-0d34-0410-b5e6-
96231b3b80d8
James Y Knight [Wed, 13 Jan 2016 23:59:19 +0000 (23:59 +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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257719
91177308-0d34-0410-b5e6-
96231b3b80d8
Chih-Hung Hsieh [Wed, 13 Jan 2016 23:56:37 +0000 (23:56 +0000)]
[TLS] New lower emutls pass, fix linkage bugs.
Previous implementation in http://reviews.llvm.org/D10522
created external references to __emutls_v.* variables.
Such references are inaccurate and cannot be handled by
all linkers, e.g. Android dynamic and gold linkers for aarch64.
Now a new LowerEmuTLS pass to go through all global variables,
and add emutls_v.* and emutls_t.* variables.
These __emutls* variables have the same linkage and
visibility as the associated user defined TLS variable.
Also removed old code that dump __emutls* variables in AsmPrinter.cpp,
and updated TLS unit tests.
Differential Revision: http://reviews.llvm.org/D15300
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257718
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 13 Jan 2016 23:48:32 +0000 (23:48 +0000)]
Add file missing from r257712
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257715
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Wed, 13 Jan 2016 23:46:01 +0000 (23:46 +0000)]
[libFuzzer] make CurrentUnit a POD object instead of vector to avoid extra allocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257713
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 13 Jan 2016 23:44:57 +0000 (23:44 +0000)]
[codeview] Share more enums across the writer and the dumper
Moves some .def files into include/DebugInfo/CodeView.
Aslo remove a 'using namespace' directive from a header in readobj and
update the uses of the endian helper types to compensate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257712
91177308-0d34-0410-b5e6-
96231b3b80d8
JF Bastien [Wed, 13 Jan 2016 23:36:00 +0000 (23:36 +0000)]
WebAssembly: fix build break introduced by ELFObjectWriter churn
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257709
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Wed, 13 Jan 2016 23:29:33 +0000 (23:29 +0000)]
[Coverage] introduce class hierarchy (funcRecordReader) to support multiple versions of coverage data
[resubmit after fixing build bot failures: qualify make_unique and eliminate -Wcovered-switch-default warning.
With the planned size reduction change, the coverage format version is expected to be bumped up. This patch adds necessary support such that backward compatibility can be kept with maximal code sharing. Reading different versions of coverage data just requires instantiating the reader according to the version.
No functional change is intended.
Differiential Revision: http://reviews.llvm.org/D16133
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257708
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 13 Jan 2016 23:13:38 +0000 (23:13 +0000)]
Add a triple to the test.
Sorry for forgetting it the first time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257705
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Wed, 13 Jan 2016 23:12:53 +0000 (23:12 +0000)]
Revert r257699 -- windows buildbot failure TBI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257703
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Wed, 13 Jan 2016 23:02:30 +0000 (23:02 +0000)]
[libFuzzer] make sure we find buffer overflow in the input buffer. Previously, re-using the same vector object was hiding buffer overflows (unless we used annotated vector)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257701
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 13 Jan 2016 23:01:57 +0000 (23:01 +0000)]
move return variable declarations down to where they are actually used; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257700
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Wed, 13 Jan 2016 22:58:42 +0000 (22:58 +0000)]
[Coverage] introduce class hierarchy (funcRecordReader) to support multiple versions of coverage data
With the planned size reduction change, the coverage format version is expected to be bumped up. This patch adds necessary support such that backward compatibility can be kept with maximal code sharing. Reading different versions of coverage data just requires instantiating the reader according to the version.
No functional change is intended.
Differiential Revision: http://reviews.llvm.org/D16133
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257699
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 13 Jan 2016 22:56:57 +0000 (22:56 +0000)]
Convert a few assert failures into proper errors.
Fixes PR25944.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257697
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 13 Jan 2016 22:23:36 +0000 (22:23 +0000)]
Simplify. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257689
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 13 Jan 2016 22:17:13 +0000 (22:17 +0000)]
fix formatting; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257688
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 13 Jan 2016 22:16:48 +0000 (22:16 +0000)]
hasNUses(0) == use_empty() ; NFCI
Also, improve variable name and remove unnecessary braces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257687
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Wed, 13 Jan 2016 21:44:36 +0000 (21:44 +0000)]
Display detailed profile summary in llvm-profdata tool.
This adds a detailed profile summary in llvm-profdata. The summary is in the
form of one or more triples of the form (P, N, M) which is interpreted as if
we look at the Top-N counts in the profile, their sum accounts for P percentage
of the sum of all counts in the program and the minimum count in the Top-N is M.
Differential Revision: http://reviews.llvm.org/D16005
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257680
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Wed, 13 Jan 2016 21:43:13 +0000 (21:43 +0000)]
[Hexagon] Fix the options controlling jump table generation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257679
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 13 Jan 2016 21:39:26 +0000 (21:39 +0000)]
rangify; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257677
91177308-0d34-0410-b5e6-
96231b3b80d8