OSDN Git Service
Richard Smith [Fri, 27 May 2016 21:05:35 +0000 (21:05 +0000)]
Fix compilation with GCC, which treats this as a constructor name not a type
name. (GCC is correct here per the latest language DRs.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271044
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 27 May 2016 20:48:39 +0000 (20:48 +0000)]
[Hexagon] Do not create passes in the constructor of HexagonPassConfig
When running mir tests, a pass created in that constructor would not be
freed, leading to memory leaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271043
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Fri, 27 May 2016 20:25:31 +0000 (20:25 +0000)]
[LCSSA] Simplify. Suggested by Sanjoy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271041
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 27 May 2016 20:17:33 +0000 (20:17 +0000)]
[pdb] Fix size check when reading stream bytes.
We were accidentally bounds checking the read against the output
ArrayRef instead of against the size of the read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271040
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Fri, 27 May 2016 20:04:16 +0000 (20:04 +0000)]
[Timer] Add missing slash in doxygen commit.
Pointed out by: Sean Silva.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271039
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Fri, 27 May 2016 19:58:05 +0000 (19:58 +0000)]
Revert "[MC] Support symbolic expressions in assembly directives"
This reverts commit r271028, it causes the directive_fill.s to fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271038
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Fri, 27 May 2016 19:12:26 +0000 (19:12 +0000)]
[Timer] Expose an API to check if the timer is running.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271037
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 27 May 2016 19:05:14 +0000 (19:05 +0000)]
SmallVector: Replace some pre-C++11 move helpers with standard algorithms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271036
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 27 May 2016 19:03:10 +0000 (19:03 +0000)]
[GVN] Preserve !range metadata when PRE'ing loads
Reviewers: dberlin, reames, george.burgess.iv
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D20743
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271034
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Kuperstein [Fri, 27 May 2016 18:53:22 +0000 (18:53 +0000)]
[X86] Detect SAD patterns and emit psadbw instructions.
This recommits r267649 with a fix for PR27539.
Differential Revision: http://reviews.llvm.org/D20598
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271033
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 18:50:02 +0000 (18:50 +0000)]
Make sure data is available before dereferencing it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271032
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 18:50:00 +0000 (18:50 +0000)]
Avoid overflow when computing the size of an array
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271031
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 18:49:58 +0000 (18:49 +0000)]
Don't assume that there will be enough padding bytes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271030
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 18:49:51 +0000 (18:49 +0000)]
Don't assume that there will be another null byte
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271029
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Fri, 27 May 2016 18:49:44 +0000 (18:49 +0000)]
[MC] Support symbolic expressions in assembly directives
This matches the behavior of GNU assembler which supports symbolic
expressions in absolute expressions used in assembly directives.
Differential Revision: http://reviews.llvm.org/D20656
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271028
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 27 May 2016 18:47:20 +0000 (18:47 +0000)]
Resubmit "[pdb] Allow zero-copy read support for symbol streams.""
Due to differences in template instantiation rules, it is not
portable to static_assert(false) inside of an invalid specialization
of a template. Instead I just =delete the method so that it can't
be used, and leave a comment that it must be explicitly specialized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271027
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 27 May 2016 18:31:02 +0000 (18:31 +0000)]
Revert "[pdb] Allow zero-copy read support for symbol streams."
This reverts commit r271024 due to error: static_assert failed
"You must either provide a specialization of VarStreamArrayExtractor
or a custom extractor"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271026
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 27 May 2016 18:20:20 +0000 (18:20 +0000)]
[pdb] Allow zero-copy read support for symbol streams.
This reduces the amount of memory used by llvm-pdbdump by roughly
1/3 of the size of the PDB file.
Differential Revision: http://reviews.llvm.org/D20724
Reviewed By: ruiu
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271025
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 27 May 2016 17:58:17 +0000 (17:58 +0000)]
[X86] Clarify PSHUFB+blend lowering function name. NFC.
Also guard against v32i8 users.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271024
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 27 May 2016 17:58:03 +0000 (17:58 +0000)]
[ARM] Remove tBLXr Pat made redundant by r269101. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271023
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 17:38:16 +0000 (17:38 +0000)]
[ProfData] Remove global constructor from ProfileSummaryBuilder.
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271021
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Fri, 27 May 2016 17:06:50 +0000 (17:06 +0000)]
Don't generate unnecessary signed ConstantRange during multiply. NFC
r231483 taught ConstantRange::multiply to be clever about signed vs unsigned ranges. For example, an unsigned range could be full-set while the signed range is more specific than that.
In looking at the allocations trace for LTO'ing verify-uselistorder (see r236629 for details), millions of allocations are from APInt, many of which come from ConstantRange's.
This change tries to avoid some (3.2 million) allocations by returning the unsigned range if its suitable. The checks here are that it should not be a wrapping range, and should be positive. That should be enough to check for ranges such as [1, 10) which the signed range will be equal to, if we were to calculate it.
Differential Revision: http://reviews.llvm.org/D20723
Reviewed by James Molloy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271020
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 27 May 2016 16:56:54 +0000 (16:56 +0000)]
Move test to X86 directory: I think it depends on X86 TTI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271019
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 16:54:57 +0000 (16:54 +0000)]
Use StringRef::startswith instead of find(...) == 0.
It's faster and easier to read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271018
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 16:45:37 +0000 (16:45 +0000)]
[sparc] Simplify a slow and verbose way of checking if a string starts with "ld".
PR27904.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271016
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 27 May 2016 16:40:27 +0000 (16:40 +0000)]
Vectorizer: track non-fast FP instructions through phis when finding reductions.
When we traced through a phi node looking for floating-point reductions, we
forgot whether we'd ever seen an instruction without fast-math flags (that
would block vectorization). This propagates it through to the end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271015
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 27 May 2016 16:22:03 +0000 (16:22 +0000)]
Reapply r270865 -- previous bot failure is unrelated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271014
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 16:16:56 +0000 (16:16 +0000)]
Make sure these error codes are marked as checked
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271013
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 16:16:48 +0000 (16:16 +0000)]
Make sure there are enough blocks for the stream
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271012
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 16:16:45 +0000 (16:16 +0000)]
Make sure the directory block array fits in the file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271011
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Fri, 27 May 2016 16:14:15 +0000 (16:14 +0000)]
Remove sample profile dependency to instcombine, which is not a analysis pass.
Summary: This patch removes dependency from sample profile pass to instcombine pass.
Reviewers: davidxl, dnovillo
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20501
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271009
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 27 May 2016 15:57:38 +0000 (15:57 +0000)]
Validate the blocksize before using it
The blocksize could be zero on disk causing later checks to divide by
zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271008
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 27 May 2016 15:56:19 +0000 (15:56 +0000)]
[X86][AVX] Removed some remains of old (pre-regeneration) filechecks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271007
91177308-0d34-0410-b5e6-
96231b3b80d8
Than McIntosh [Fri, 27 May 2016 15:27:51 +0000 (15:27 +0000)]
Disable lifetime-start-on-first-use analysis.
Summary:
Turn off lifetime-start-on-first-use enhancement for the moment
pending a fix for bug 27903.
Bug: 27903
Reviewers: tejohnson, wmi, qcolombet, gbiv
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20731
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271003
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 15:21:30 +0000 (15:21 +0000)]
Make header self-contained. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271002
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 14:27:24 +0000 (14:27 +0000)]
Apply clang-tidy's misc-move-constructor-init throughout LLVM.
No functionality change intended, maybe a tiny performance improvement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270997
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 27 May 2016 13:56:36 +0000 (13:56 +0000)]
[mips] Weaken asm predicate for memory offsets
The isMemWithSimmOffset predicate rejects relocations which is incorrect
behaviour. Linkers and other tools should handle|warn|error when the
field overflows.
Reviewers: dsanders, vkalintiris
Differential Revision: http://reviews.llvm.org/D20727
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270995
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Laevsky [Fri, 27 May 2016 13:13:59 +0000 (13:13 +0000)]
[RewriteStatepointsForGC] All constant should have null base pointer
Currently we consider that each constant has itself as a base value. I.e "base(const) = const".
This introduces couple of problems when we are trying to avoid reporting constants in statepoint live sets:
1. When querying "base( phi(const1, const2) )" we will get "phi(const1, const2)" as a base pointer. Since
it's not a constant we will record it in a stack map. However on practice we don't want this to happen
(constant are never relocated).
2. base( phi(const, gc ptr) ) = phi( const, base(gc ptr) ). This particular case imposes challenge on our
runtime - we don't expect to see constant base pointers other than null. This problems can be avoided
by treating all constant as if they were derived from null pointer base. I.e in a first case we will
not include constant pointer in a stack map at all. In a second case we will get "phi(null, base(gc ptr))"
as a base pointer which is a lot more convenient.
Differential Revision: http://reviews.llvm.org/D20584
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270993
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 27 May 2016 12:52:30 +0000 (12:52 +0000)]
Attemp to fix build bot after r270987
It was: "Recommit 270977 - [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections."
Fix:
since test requires no zlib available and r270987 changed the
compression flag for llvm-mc to mandatory specify the compression style,
then just add 2 available styles to this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270992
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Tamazov [Fri, 27 May 2016 12:50:13 +0000 (12:50 +0000)]
[AMDGPU][llvm-mc] Square-braced-syntax for registers - make ":expr2" optional.
Register numbers may be specified as assembly-time expressions.
This feature can be useful in macros and alike. However, expressions
are supported within sqare braces only.
Sqare braces were initially intended to support specifying of multiple
(pairs/quads...) registers. Syntax like v[8:8] which specifies single register
is also supported. That allows expressions but looks a bit unnatural.
This change supports syntax REG[EXPR].
Tests added.
Differential Revision: http://reviews.llvm.org/D20588
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270990
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 12:30:51 +0000 (12:30 +0000)]
Avoid some copies by using const references.
clang-tidy's performance-unnecessary-copy-initialization with some manual
fixes. No functional changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270988
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 27 May 2016 12:27:32 +0000 (12:27 +0000)]
Recommit 270977 - [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
Fix: updated clang code which was not updated by mistake.
Original commit message:
[llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
This patch is strongly based on previously reverted D20331.
(because of gnuutils < 2.26 does not support compressed debug sections in non zlib-gnu style)
Difference that this patch supports both zlib and zlib-gnu styles.
-compress-debug-sections option now supports next values:
-compress-debug-sections=zlib-gnu
-compress-debug-sections=zlib
-compress-debug-sections=none
Previously specifying -compress-debug-sections enabled zlib-gnu compression,
so anyone can put "-compress-debug-sections=zlib-gnu" to restore the behavior
that was before this patch for case when compression was enabled.
Differential revision: http://reviews.llvm.org/D20676
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270987
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 11:36:04 +0000 (11:36 +0000)]
Apply clang-tidy's misc-static-assert where it makes sense.
Also fold conditions into assert(0) where it makes sense. No functional
change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270982
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 10:19:03 +0000 (10:19 +0000)]
[sparc] Remove some unused (and undefined) declarations.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270981
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 10:06:40 +0000 (10:06 +0000)]
[hexagon] Move BlockRanges and RDF stuff into the llvm namespace.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270980
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 27 May 2016 10:06:27 +0000 (10:06 +0000)]
[sparc] Move LEON passes into llvm namespace.
Also give them library visiblity while there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270979
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 27 May 2016 10:06:16 +0000 (10:06 +0000)]
Revert r270977 ([llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.)
It broke buildbot:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/13585/steps/build/logs/stdio
Initial commit message:
[llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
This patch is strongly based on previously reverted D20331.
(because of gnuutils < 2.26 does not support compressed debug sections in non zlib-gnu style)
Difference that this patch supports both zlib and zlib-gnu styles.
-compress-debug-sections option now supports next values:
-compress-debug-sections=zlib-gnu
-compress-debug-sections=zlib
-compress-debug-sections=none
Previously specifying -compress-debug-sections enabled zlib-gnu compression,
so anyone can put "-compress-debug-sections=zlib-gnu" to restore the behavior
that was before this patch for case when compression was enabled.
Differential revision: http://reviews.llvm.org/D20676
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270978
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 27 May 2016 09:58:08 +0000 (09:58 +0000)]
[llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
This patch is strongly based on previously reverted D20331.
(because of gnuutils < 2.26 does not support compressed debug sections in non zlib-gnu style)
Difference that this patch supports both zlib and zlib-gnu styles.
-compress-debug-sections option now supports next values:
-compress-debug-sections=zlib-gnu
-compress-debug-sections=zlib
-compress-debug-sections=none
Previously specifying -compress-debug-sections enabled zlib-gnu compression,
so anyone can put "-compress-debug-sections=zlib-gnu" to restore the behavior
that was before this patch for case when compression was enabled.
Differential revision: http://reviews.llvm.org/D20676
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270977
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 27 May 2016 09:02:25 +0000 (09:02 +0000)]
Revert: r270973 - [X86][SSE] Replace (V)PMOVSX and (V)PMOVZX integer extension intrinsics with generic IR (llvm)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270976
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 27 May 2016 08:49:15 +0000 (08:49 +0000)]
[X86][SSE] Replace (V)PMOVSX and (V)PMOVZX integer extension intrinsics with generic IR (llvm)
This patch removes the llvm intrinsics VPMOVSX and (V)PMOVZX sign/zero extension intrinsics and auto-upgrades to SEXT/ZEXT calls instead. We already did this for SSE41 PMOVSX sometime ago so much of that implementation can be reused.
A companion patch (D20684) removes/auto-upgrade the clang intrinsics.
Differential Revision: http://reviews.llvm.org/D20686
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270973
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 27 May 2016 05:21:35 +0000 (05:21 +0000)]
Linker: teach the IR mover to return llvm::Error.
This will be needed in order to consistently return an Error
to clients of the API being developed in D20268.
Differential Revision: http://reviews.llvm.org/D20550
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270967
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 27 May 2016 03:51:53 +0000 (03:51 +0000)]
[codeview] Remove StreamReader copying method.
Since we want to move toward zero-copy access to stream data, we
want to remove all instances of copying operations. So get rid
of some of those here.
Differential Revision: http://reviews.llvm.org/D20720
Reviewed By: ruiu
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270960
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Fri, 27 May 2016 03:42:17 +0000 (03:42 +0000)]
Don't allocate unnecessarily in APInt::operator[+-]. NFC.
APInt::operator+(uint64_t) just forwarded to operator+(const APInt&).
Constructing the APInt for the RHS takes an allocation which isn't
required. Also, for APInt's in the slow path, operator+ would
call add() internally which iterates over both arrays of values. Instead
we can use add_1 and sub_1 which only iterate while there is something to do.
Using the memory for 'opt -O2 verify-uselistorder.lto.opt.bc -o opt.bc'
(see r236629 for details), this reduces the number of allocations from
23.9M to 22.7M.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270959
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Liew [Fri, 27 May 2016 03:14:40 +0000 (03:14 +0000)]
[LibFuzzer] Refactor declaration of tests in CMake.
Add a new CMake function (``add_libfuzzer_test()``) to simplify
declaration of executables for testing LibFuzzer and use it to
reorganise how tests are declared.
Note that configuration of the lit configuration files has been moved
as late as possible because we are going to need to disable some tests
for some platforms and we will need to propagate this information into
the lit configuration.
Note the code for custom mains was removed because no tests are
currently written for this and Kostya seems happy to remove this.
Differential Revision: http://reviews.llvm.org/D20706
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270958
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Fri, 27 May 2016 02:47:38 +0000 (02:47 +0000)]
Remove use of is_trivially_constructible.
type_traits header in libstdc++ 4.8 does not define is_trivially_contructible
so the code doesn't compile with it.
In this file we are using the trait for assertion to provide a better
error message. Removing it doesn't change the meaning of the code.
Differential Revision: http://reviews.llvm.org/D20719
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270957
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 27 May 2016 02:43:15 +0000 (02:43 +0000)]
[Support] Remove a stale comment.
This comment was included in Peter Collingbourne's original version of
StringError (see http://reviews.llvm.org/D20550), where it made sense. It was
accidentally copied over with the rest of the class, but no longer applies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270956
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Fri, 27 May 2016 02:13:53 +0000 (02:13 +0000)]
Form objc_storeStrong in the presence of bitcasts.
objc_storeStrong can be formed from a sequence such as
%0 = tail call i8* @objc_retain(i8* %p) nounwind
%tmp = load i8*, i8** @x, align 8
store i8* %0, i8** @x, align 8
tail call void @objc_release(i8* %tmp) nounwind
The code was already looking through bitcasts for most of the values
involved, but had missed one case where the pointer operand for the
store was a bitcast. Ultimately the pointer for the load and store
have to be the same value, after stripping casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270955
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 27 May 2016 02:12:35 +0000 (02:12 +0000)]
[codeview] #include missing header breaking builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270954
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 27 May 2016 01:54:44 +0000 (01:54 +0000)]
[codeview,pdb] Try really hard to conserve memory when reading.
PDBs can be extremely large. We're already mapping the entire
PDB into the process's address space, but to make matters worse
the blocks of the PDB are not arranged contiguously. So, when
we have something like an array or a string embedded into the
stream, we have to make a copy. Since it's convenient to use
traditional data structures to iterate and manipulate these
records, we need the memory to be contiguous.
As a result of this, we were using roughly twice as much memory
as the file size of the PDB, because every stream was copied
out and re-stitched together contiguously.
This patch addresses this by improving the MappedBlockStream
to allocate from a BumpPtrAllocator only when a read requires
a discontiguous read. Furthermore, it introduces some data
structures backed by a stream which can iterate over both
fixed and variable length records of a PDB. Since everything
is backed by a stream and not a buffer, we can read almost
everything from the PDB with zero copies.
Differential Revision: http://reviews.llvm.org/D20654
Reviewed By: ruiu
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270951
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 27 May 2016 01:54:25 +0000 (01:54 +0000)]
[Support] Rename unconvertibleErrorCode to inconvertibleErrorCode.
Based on a totally scientific, 30 second google search "in-" appears to be the
preferred prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270950
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 27 May 2016 01:37:32 +0000 (01:37 +0000)]
[Support] Add a StringError convenience class to Error.h
StringError can be used to represent Errors that aren't recoverable based on
the error type, but that have a useful error message that can be reported to
the user or logged.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270948
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 27 May 2016 01:12:21 +0000 (01:12 +0000)]
[libFuzzer] make check-fuzzer a bit faster
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270947
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Fri, 27 May 2016 00:55:16 +0000 (00:55 +0000)]
[LoopUnrollAnalyzer] Bail out instead of dying with assert when facing huge index.
This fixes PR27902.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270946
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 27 May 2016 00:54:15 +0000 (00:54 +0000)]
[libFuzzer] make OOM-handling more portable. Instead of sending a signal to the main fuzzing thread, print the message in the getrusage thread and exit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270945
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Fri, 27 May 2016 00:32:12 +0000 (00:32 +0000)]
ValueMapper: fix typo in minor optimization on constant mapping (NFC)
If every operands of a constant are mapping to themselves, and the
type does not change, we have an early exit as acknowledged in the
comment:
// Otherwise, we have some other constant to remap. Start by checking to see
// if all operands have an identity remapping.
However instead of checking for identity the code was checking if the
operands were mapped to the constant itself, which is rarely true.
As a consequence, the coverage report showed that the early exit was
never taken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270944
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Fri, 27 May 2016 00:32:07 +0000 (00:32 +0000)]
pdbdump: print out the name of the stream 0.
Differential Revision: http://reviews.llvm.org/D20712
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270943
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 27 May 2016 00:21:33 +0000 (00:21 +0000)]
[libFuzzer] more refactoring: make sure CurrentUnitData is awlays a valid pointer to read from
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270942
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Thu, 26 May 2016 23:26:55 +0000 (23:26 +0000)]
pdbdump: Add -raw-all to enable all -raw-* flags.
Differential Revision: http://reviews.llvm.org/D20707
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270937
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 26 May 2016 23:10:37 +0000 (23:10 +0000)]
Sort my entry in CODE_OWNERS.TXT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270936
91177308-0d34-0410-b5e6-
96231b3b80d8
Mitch Bodart [Thu, 26 May 2016 23:08:52 +0000 (23:08 +0000)]
[CodeGen] Fix problem with X86 byte registers in CriticalAntiDepBreaker
CriticalAntiDepBreaker was not correctly tracking defs of the high X86 byte
registers, leading to incorrect use of a busy register to break an
antidependence.
Fixes pr27681, and its duplicates pr27580, pr27804.
Differential Revision: http://reviews.llvm.org/D20456
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270935
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Thu, 26 May 2016 23:01:05 +0000 (23:01 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270934
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Thu, 26 May 2016 22:57:11 +0000 (22:57 +0000)]
Attach profile summary in IR based instrumentation pass.
Differential revision: http://reviews.llvm.org/D20655
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270933
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Thu, 26 May 2016 22:29:34 +0000 (22:29 +0000)]
SDAG: Use an Optional<> instead of a sigil value. NFC
This just makes it a bit more clear that we don't intend to use a
deleted node for anything here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270931
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 26 May 2016 22:17:32 +0000 (22:17 +0000)]
[libFuzzer] more refactoring around CurrentUnit. Also add a threading test on which we currently have a race (when reporting bugs from multiple threads)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270929
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Liew [Thu, 26 May 2016 21:54:25 +0000 (21:54 +0000)]
[LibFuzzer] Add missing #include<string>
This partially fixes the compilation of the LibFuzzer unit test
on OSX using AppleClang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270926
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Thu, 26 May 2016 21:42:51 +0000 (21:42 +0000)]
[LoopUnrollAnalyzer] Fix a crash in analyzeLoopUnrollCost.
Condition might be simplified to a Constant, but it doesn't have to be
ConstantInt, so we should dyn_cast, instead of cast.
This fixes PR27886.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270924
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Thu, 26 May 2016 21:42:47 +0000 (21:42 +0000)]
PR26055: Speed up LiveDebugValues::transferDebugValue()
This patch builds upon r270776 and speeds up
LiveDebugValues::transferDebugValue() by adding an index that maps each
DebugVariable to its open VarLoc.
The transferDebugValue() function needs to close all open ranges for a
given DebugVariable. Iterating over the set bits of OpenRanges is
prohibitively slow in practice. I experimented with using the sorted map
of VarLocs in the UniqueVector to iterate only over the range of VarLocs
with a given DebugVariable, but the binary search turned out to be even
more expensive than just iterating over the set bits in OpenRanges.
Instead, this patch exploits the fact that there can only be one open
location for each DebugVariable and redundantly stores this location in a
DenseMap.
This patch brings the time spent in the LiveDebugValues pass down to an
almost neglectiable amount.
http://llvm.org/bugs/show_bug.cgi?id=26055
http://reviews.llvm.org/D20636
rdar://problem/
24091200
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270923
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 26 May 2016 21:32:30 +0000 (21:32 +0000)]
[libFuzzer] refactor: hide CurrentUnitData inside an interface function. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270922
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Thu, 26 May 2016 21:31:56 +0000 (21:31 +0000)]
[Docs][WritingAnLLVMBackend] Makefiles are deprecated
Summary: * docs/WritingAnLLVMBackend.rst: Makefiles are no longer used. The users should use CMakeLists.txt. In order to add the target, the TARGETS_TO_BUILD is replaced with LLVM_ALL_TARGETS.
Reviewers: gribozavr, void, beanz
Subscribers: llvm-commits
Patch By: Visoiu Mistrih Francis (thegameg)
Differential Revision: http://reviews.llvm.org/D20700
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270921
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Thu, 26 May 2016 21:29:39 +0000 (21:29 +0000)]
[obj2yaml][yaml2obj] Support for MachO lazy bindings
This adds support for YAML round tripping dyld info lazy bindings. The storage and format of these is the same as regular bind opcodes, they are just interpreted differently by dyld, and can have DONE opcodes in the middle of the opcode lists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270920
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 21:27:52 +0000 (21:27 +0000)]
[Kaleidoscope][BuildingAJIT] Remove leftover debugging output statements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270919
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 21:21:18 +0000 (21:21 +0000)]
[Kaleidoscope][BuildingAJIT] Fix strong emphasis markup by removing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270918
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 21:17:06 +0000 (21:17 +0000)]
[Kaleidoscope][BuildingAJIT] Add docs for Chapter 3 of the Building A JIT
tutorial.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270917
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 21:15:58 +0000 (21:15 +0000)]
[Error] Make ECError only constructible via errorCodeToError.
This enforces idiomatic usage of ECError removing the option to construct them
using make_error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270916
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Thu, 26 May 2016 21:12:44 +0000 (21:12 +0000)]
Add myself as the code owner for SCEV and IndVarSimplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270915
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 21:00:29 +0000 (21:00 +0000)]
[Kaleidoscope][BuildingAJIT] Add explicit dependence on TransformUtils to Chapter3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270914
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Liew [Thu, 26 May 2016 20:55:09 +0000 (20:55 +0000)]
[LibFuzzer] Emit error if LLVM_USE_SANITIZER is not correctly set.
Previously CMake would successfully configure and compile (with warnings
about ``-fsanitize-coverage=...`` being unused) but the tests LibFuzzer
tests would fail.
Differential Revision: http://reviews.llvm.org/D20662
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270913
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Liew [Thu, 26 May 2016 20:55:05 +0000 (20:55 +0000)]
[LibFuzzer] Allow LibFuzzer to be built in modes other than RELEASE.
Previously the flags were only being set correctly when the
build type was "Release". Now the build should work properly
for all the supported build types. When building libFuzzer
the optimization level respects whatever is used for the
rest of LLVM but for the LibFuzzer tests we force -O0.
Differential Revision: http://reviews.llvm.org/D20558
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270912
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Thu, 26 May 2016 20:50:05 +0000 (20:50 +0000)]
[obj2yaml][yaml2obj] Support for MachO weak bindings
This adds support for YAML round tripping dyld info weak bindings. The storage and format of these is the same as regular bind opcodes, they are just interpreted differently by dyld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270911
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 20:35:39 +0000 (20:35 +0000)]
[Kaleidoscope][BuildingAJIT] Add code for Chapter 3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270909
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 20:33:37 +0000 (20:33 +0000)]
[Orc] Don't create empty globals modules in the CompileOnDemandLayer.
Global variables and aliases are emitted eagerly, but there may not be any in
the incoming module. In that case, we can save some memory and compile time by
not building, emitting and tracking an empty globals module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270908
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 26 May 2016 20:31:00 +0000 (20:31 +0000)]
coff: fix weak alias to local.
We were creating a weak external that tried to reference a static symbol. That
would always fail to link with link.exe.
We now create an external symbol in the same position as the local and refer
to that. This works with link.exe and matches what gas does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270906
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 26 May 2016 20:25:49 +0000 (20:25 +0000)]
[libFuzzer] when there is a leak in the existing corpus report the reproducer properly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270905
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 26 May 2016 20:21:55 +0000 (20:21 +0000)]
Don't use recursion to print out the PrettyStackTrace after a crash. If the
crash was due to a stack overflow, chances are good that this would also cause
a stack overflow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270903
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 26 May 2016 20:13:50 +0000 (20:13 +0000)]
Add new .def file to module map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270902
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Thu, 26 May 2016 20:06:14 +0000 (20:06 +0000)]
[obj2yaml][yaml2obj] Support for MachO bind opcodes
This adds support for YAML round tripping dyld info bind opcodes. Bind opcodes can have signed or unsigned LEB128 data, and they can have symbols associated with them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270901
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 26 May 2016 20:03:02 +0000 (20:03 +0000)]
[libFuzzer] reimplement the way we do -only_ascii to allow more 'const' in function declarations. Add a test for -only_ascii. NFC intended
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270900
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 26 May 2016 19:44:33 +0000 (19:44 +0000)]
[Kaleidoscope][BuildingAJIT] Fix a bug in the symbol resolver in Chapter2.
Symbol resolution should be done on the top layer of the stack unless there's a
good reason to do otherwise. In this case it would have worked because
OptimizeLayer::addModuleSet eagerly passes all modules down to the
CompileLayer, meaning that searches in CompileLayer will find the definitions.
In later chapters where the top layer's addModuleSet isn't a pass-through, this
would break.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270899
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 26 May 2016 19:44:28 +0000 (19:44 +0000)]
[Hexagon] Enable the post-RA scheduler
The aggressive anti-dependency breaker can rename the restored callee-
saved registers. To prevent this, mark these registers are live on all
paths to the return/tail-call instructions, and add implicit use operands
for them to these instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270898
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 26 May 2016 19:41:33 +0000 (19:41 +0000)]
[AArch64] Generate rev16/rev32 from bswap + srl when upper bits are known zero.
Canonicalize (srl (bswap i32 x), 16) to (rotr (bswap i32 x), 16), if the high
16-bits of x are zero. Similarly, canonicalize (srl (bswap i64 x), 32) to
(rotr (bswap i64 x), 32), if the high 32-bits of x are zero.
test_rev_w_srl16: test_rev_w_srl16:
and w8, w0, #0xffff and w8, w0, #0xffff
rev w8, w8 ---> rev16 w0, w8
lsr w0, w8, #16
test_rev_x_srl32: test_rev_x_srl32:
rev x8, x8 ---> rev32 x0, x8
lsr x0, x8, #32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270896
91177308-0d34-0410-b5e6-
96231b3b80d8