Eric Fiselier [Sun, 23 Oct 2016 19:01:10 +0000 (19:01 +0000)]
Turn on -Wshadow so I find occurances before STL does
llvm-svn: 284944
Eric Fiselier [Sun, 23 Oct 2016 18:55:51 +0000 (18:55 +0000)]
Make make_from_tuple tests more portable. Patch from STL@microsoft.com
llvm-svn: 284943
Eric Fiselier [Sun, 23 Oct 2016 18:52:58 +0000 (18:52 +0000)]
Fix unreferenced parameters. Patch from STL@microsoft.com
llvm-svn: 284942
Eric Fiselier [Sun, 23 Oct 2016 18:47:58 +0000 (18:47 +0000)]
Fix shadowing warning. Patch from STL@microsoft.com
llvm-svn: 284941
Simon Pilgrim [Sun, 23 Oct 2016 18:35:02 +0000 (18:35 +0000)]
[CostModel][X86] Added tests for current integer signed/unsigned remainder costs
llvm-svn: 284940
Simon Pilgrim [Sun, 23 Oct 2016 16:49:04 +0000 (16:49 +0000)]
[X86][SSE] Add SSE41/AVX1 costs for vector shifts.
We were defaulting to SSE2 costs which weren't taking into account the availability of PBLENDW/PBLENDVB to improve merging of per-element shift results.
llvm-svn: 284939
Simon Pilgrim [Sun, 23 Oct 2016 15:17:52 +0000 (15:17 +0000)]
[CostModel][X86] Added tests for current integer trunc costs
llvm-svn: 284938
Simon Pilgrim [Sun, 23 Oct 2016 15:09:44 +0000 (15:09 +0000)]
Use APInt::isAllOnesValue instead of popcnt. NFCI.
More obvious implementation and faster too.
llvm-svn: 284937
Craig Topper [Sun, 23 Oct 2016 07:35:47 +0000 (07:35 +0000)]
[AVX-512] Replace 512-bit pmovzx/sx builtins with native IR.
llvm-svn: 284936
Craig Topper [Sun, 23 Oct 2016 07:35:39 +0000 (07:35 +0000)]
[AVX-512] Remove masked 128/256-bit packss/packus builtins and replace with selects and the older unmasked builtins.
llvm-svn: 284935
Ekaterina Romanova [Sun, 23 Oct 2016 07:30:50 +0000 (07:30 +0000)]
Add more doxygen comments to emmintrin.h's intrinsics.
With this patch, all intrinsics in this file (with an exception of a handful of a recently added ones) will be documented. I will send out a patch for 4 missining intrisics later.
The doxygen comments are automatically generated based on Sony's intrinsics document.
I got an OK from Eric Christopher to commit doxygen comments without prior code
review upstream. This patch was internally reviewed by Yunzhong Gao.
llvm-svn: 284934
Richard Smith [Sun, 23 Oct 2016 04:53:03 +0000 (04:53 +0000)]
Fix mangling numbers for varargs lambdas; varargs and non-varargs lambdas get
different lambda-sigs, so they should have different counters.
llvm-svn: 284933
Mandeep Singh Grang [Sun, 23 Oct 2016 00:55:12 +0000 (00:55 +0000)]
[compiler-rt] Remove redundant --check-prefix=CHECK from test
Reviewers: eugenis, rengolin
Subscribers: dberris
Differential Revision: https://reviews.llvm.org/D25892
llvm-svn: 284932
Mandeep Singh Grang [Sun, 23 Oct 2016 00:53:03 +0000 (00:53 +0000)]
[clang] Limit clang test to ARM and AArch64 only
Summary: Limit clang/test/Frontend/gnu-mcount.c to ARM and AArch64 only.
Reviewers: abdulras, honggyu.kim, rengolin
Subscribers: aemerson, rengolin, cfe-commits
Tags: #clang-c
Differential Revision: https://reviews.llvm.org/D25842
llvm-svn: 284931
Dylan McKay [Sat, 22 Oct 2016 23:57:59 +0000 (23:57 +0000)]
[AVR] Add the machine code disassembler
This adds a super basic implementation of a machine code disassembler.
It doesn't support any operands with custom encoding.
llvm-svn: 284930
Craig Topper [Sat, 22 Oct 2016 21:24:56 +0000 (21:24 +0000)]
[AVX-512] Replace masked 128/256-bit pavg builtins and replace with select and older unmasked builtins.
llvm-svn: 284929
Craig Topper [Sat, 22 Oct 2016 21:24:52 +0000 (21:24 +0000)]
[AVX-512] Replace masked 128/256-bit saturating add/sub builtins with select and older unmasked builtins.
llvm-svn: 284928
Craig Topper [Sat, 22 Oct 2016 21:24:48 +0000 (21:24 +0000)]
[AVX-512] Replace masked 128/256-bit vpmovzx/vpmovsx builtins with native IR.
llvm-svn: 284927
Craig Topper [Sat, 22 Oct 2016 21:24:44 +0000 (21:24 +0000)]
[AVX-512] Remove duplicate test cases from the avx512vlbw intrinsic test. These tests already exist in the avx512vl test and represent avx512vl instructions.
llvm-svn: 284926
Craig Topper [Sat, 22 Oct 2016 21:24:42 +0000 (21:24 +0000)]
[AVX-512] Remove masked 128/256-bit pshufb builtins. Replace with a select and the older unmaksed builtins.
llvm-svn: 284925
Craig Topper [Sat, 22 Oct 2016 21:24:38 +0000 (21:24 +0000)]
[AVX-512] Remove builtins for 128/256-bit pabsb/pabsw. We can use a select and the older non-masked versions instead.
llvm-svn: 284924
Craig Topper [Sat, 22 Oct 2016 21:24:34 +0000 (21:24 +0000)]
[AVX-512] Add typecasts to alignr intrinsics that were modified in r284920.
llvm-svn: 284923
Simon Pilgrim [Sat, 22 Oct 2016 20:15:39 +0000 (20:15 +0000)]
[X86][AVX512VL] Added support for combining target 256-bit shuffles to AVX512VL VPERMV3
llvm-svn: 284922
Simon Pilgrim [Sat, 22 Oct 2016 19:53:59 +0000 (19:53 +0000)]
[X86][AVX512] Added support for combining target shuffles to AVX512 VPERMV3
llvm-svn: 284921
Craig Topper [Sat, 22 Oct 2016 18:32:33 +0000 (18:32 +0000)]
[AVX-512] Remove masked 128/256-bit palignr builtins. We can just use a select in the header file with the older unmasked versions instead.
llvm-svn: 284920
Brian Gesiak [Sat, 22 Oct 2016 17:27:31 +0000 (17:27 +0000)]
[lit] Add more testing instructions to README
Summary:
r283710 introduced two regressions, one to llvm-lit, and the other to
lit executables that were installed via setuptools. Add instructions on
how to test for these regressions in the future.
Reviewers: ddunbar, delcypher, beanz, chapuni, cmatthews, echristo
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D25459
llvm-svn: 284919
James Molloy [Sat, 22 Oct 2016 09:58:37 +0000 (09:58 +0000)]
[ARM] Fix crash in ConstantIslands
tPCRelJT may not be the first instruction in a block. Check that instead of dereferencing a broken iterator.
llvm-svn: 284917
Zvi Rackover [Sat, 22 Oct 2016 07:15:00 +0000 (07:15 +0000)]
[X86] Apply the Update LLC Test Checks tool on the mmx-bitcast test
llvm-svn: 284916
Craig Topper [Sat, 22 Oct 2016 06:51:56 +0000 (06:51 +0000)]
[X86] Add support for printing shuffle comments for VALIGN instructions.
llvm-svn: 284915
Craig Topper [Sat, 22 Oct 2016 06:51:52 +0000 (06:51 +0000)]
[X86] Add support for lowering v4i64 and v8i64 shuffles directly to PALIGNR. I think shuffle combine can figure it out later, but we should try to get it right up front.
llvm-svn: 284914
Craig Topper [Sat, 22 Oct 2016 06:51:49 +0000 (06:51 +0000)]
[X86] Remove unnecessary AVX2 check that was already covered by an assertion earlier in the function. NFC
llvm-svn: 284913
Craig Topper [Sat, 22 Oct 2016 06:51:44 +0000 (06:51 +0000)]
[X86] Remove 128-bit lane handling from the main loop of matchVectorShuffleAsByteRotate. Instead check for is128LaneRepeatedSuffleMask before the loop and just loop over the repeated mask.
I plan to use the loop to support VALIGND/Q shuffles so this makes it easier to reuse.
llvm-svn: 284912
Simon Pilgrim [Sat, 22 Oct 2016 06:18:36 +0000 (06:18 +0000)]
[X86][SSE] Use getConstVector helper for VPERMV mask generation. NFCI.
llvm-svn: 284911
Daniel Berlin [Sat, 22 Oct 2016 04:15:41 +0000 (04:15 +0000)]
Now that VS2013 is gone, make a memoryssa structure an anonymous union again
llvm-svn: 284910
Kostya Serebryany [Sat, 22 Oct 2016 03:48:53 +0000 (03:48 +0000)]
[libFuzzer] mutation: insert the size of the input in bytes as one of the ways to mutate a binary integer
llvm-svn: 284909
Gerolf Hoflehner [Sat, 22 Oct 2016 02:41:39 +0000 (02:41 +0000)]
[BasicAA] Fix - missed alias in GEP expressions
In BasicAA GEP operand values get adjusted ("wrap-around") based on the
pointersize. Otherwise, in non-64b modes, AA could report false negatives.
However, a wrap-around is valid only for a fully evaluated expression.
It had been introduced to fix an alias problem in
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-
20160118/326163.html.
This commit restricts the wrap-around to constant gep operands only where the
value is known at compile-time.
llvm-svn: 284908
Richard Smith [Sat, 22 Oct 2016 01:35:34 +0000 (01:35 +0000)]
Mark P0012R1 as "Partial" since it's now substantially complete.
llvm-svn: 284907
Richard Smith [Sat, 22 Oct 2016 01:32:45 +0000 (01:32 +0000)]
Add another testcase missed from r284905.
llvm-svn: 284906
Richard Smith [Sat, 22 Oct 2016 01:32:19 +0000 (01:32 +0000)]
[c++1z] P0012R1: Implement a few remaining pieces: downgrade diagnostic for
mismatched dynamic exception specifications in expressions from an error to a
warning, since this is no longer ill-formed in C++1z.
Allow reference binding of a reference-to-non-noexcept function to a noexcept
function lvalue. As defect resolutions, also allow a conditional between
noexcept and non-noexcept function lvalues to produce a non-noexcept function
lvalue (rather than decaying to a function pointer), and allow function
template argument deduction to deduce a reference to non-noexcept function when
binding to a noexcept function type.
llvm-svn: 284905
Davide Italiano [Sat, 22 Oct 2016 01:21:24 +0000 (01:21 +0000)]
[CtorUtils] Modernize. No functional changes intended.
llvm-svn: 284904
Kostya Serebryany [Sat, 22 Oct 2016 01:07:38 +0000 (01:07 +0000)]
[libFuzzer] typo in a test
llvm-svn: 284903
Kostya Serebryany [Sat, 22 Oct 2016 00:05:44 +0000 (00:05 +0000)]
[libFuzzer] add a test for asan's strict_string_checks=1
llvm-svn: 284902
Kostya Serebryany [Fri, 21 Oct 2016 23:52:26 +0000 (23:52 +0000)]
[sanitizers] support strict_string_checks for strncmp
llvm-svn: 284901
Jason Molenda [Fri, 21 Oct 2016 23:45:07 +0000 (23:45 +0000)]
Add some additional logging to
DynamicLoaderDarwinKernel::CheckForKernelImageAtAddress to debug
corefiles that may not be correctly formed.
<rdar://problem/
28884846>
llvm-svn: 284900
Manman Ren [Fri, 21 Oct 2016 23:35:03 +0000 (23:35 +0000)]
Module: correctly set the module file kind when emitting file_modified.
rdar://
28503343
Differential Revision: http://reviews.llvm.org/D25806
llvm-svn: 284899
David L. Jones [Fri, 21 Oct 2016 23:30:39 +0000 (23:30 +0000)]
Fix map insertion that is elided in release build.
The assert() macro doesn't actually execute its body in Release builds, so using
it to check cache invariants requires that the insertion be outside of the
assert() statement. This change does that, and also makes sure to return the
actual map contents.
llvm-svn: 284898
Manman Ren [Fri, 21 Oct 2016 23:27:37 +0000 (23:27 +0000)]
Module: improve the diagnostic message for include of non-modular header.
Emit the actual path to the non-modular include.
rdar://
28897010
llvm-svn: 284897
Sanjay Patel [Fri, 21 Oct 2016 23:02:31 +0000 (23:02 +0000)]
[x86] add test for missing vector SRA combine via computeKnownBits
llvm-svn: 284896
Richard Smith [Fri, 21 Oct 2016 23:01:55 +0000 (23:01 +0000)]
Remove unnecessary distinction between Ref_Compatible and
Ref_Compatible_With_Added_Qualification. We always treated these two values the
same way.
llvm-svn: 284895
Eugene Zelenko [Fri, 21 Oct 2016 22:35:58 +0000 (22:35 +0000)]
[Release notes] Mention removed Clang-tidy misc-pointer-and-integral-operation check
llvm-svn: 284894
Chris Bieneman [Fri, 21 Oct 2016 22:13:55 +0000 (22:13 +0000)]
[Test Suite] Allow overriding codesign identity
Summary: Not everyone names their code sign identity "lldb_codesign", so it is nice to allow this to be overridden.
Reviewers: zturner, tfiala
Subscribers: labath, mgorny, lldb-commits
Differential Revision: https://reviews.llvm.org/D25714
llvm-svn: 284893
Justin Lebar [Fri, 21 Oct 2016 22:10:23 +0000 (22:10 +0000)]
[ADT] Don't rely on string literals not being convertible to non-const char* in CachedHashString.
The build was breaking on some platforms because we assumed that
CachedHashString("foo") would match the CachedHashString(StringRef)
constructor rather than the CachedHashString(char*) constructor.
To fix this, provide a CachedHashString(const char*) constructor, and
add a dummy argument to the old CachedHashString(char*) constructor.
llvm-svn: 284892
Konstantin Zhuravlyov [Fri, 21 Oct 2016 22:10:03 +0000 (22:10 +0000)]
[AMDGPU] Perform uchar to float combine for ISD::SINT_TO_FP
This will prevent following regression when enabling i16 support (D18049):
test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
Differential Revision: https://reviews.llvm.org/D25805
llvm-svn: 284891
Richard Smith [Fri, 21 Oct 2016 22:00:42 +0000 (22:00 +0000)]
DR583, DR1512: Implement a rewrite to C++'s 'composite pointer type' rules.
This has two significant effects:
1) Direct relational comparisons between null pointer constants (0 and nullopt)
and pointers are now ill-formed. This was always the case for C, and it
appears that C++ only ever permitted by accident. For instance, cases like
nullptr < &a
are now rejected.
2) Comparisons and conditional operators between differently-cv-qualified
pointer types now work, and produce a composite type that both source
pointer types can convert to (when possible). For instance, comparison
between 'int **' and 'const int **' is now valid, and uses an intermediate
type of 'const int *const *'.
Clang previously supported #2 as an extension.
We do not accept the cases in #1 as an extension. I've tested a fair amount of
code to check that this doesn't break it, but if it turns out that someone is
relying on this, we can easily add it back as an extension.
This is a re-commit of r284800.
llvm-svn: 284890
Richard Smith [Fri, 21 Oct 2016 21:50:28 +0000 (21:50 +0000)]
Remove 'misc-pointer-and-integral-operation' clang-tidy check. The only cases
it detects are ill-formed (some per C++ core issue 1512, others always have
been).
llvm-svn: 284888
Justin Lebar [Fri, 21 Oct 2016 21:45:01 +0000 (21:45 +0000)]
Switch SmallSetVector to use DenseSet when it overflows its inline space.
Summary:
SetVector already used DenseSet, but SmallSetVector used std::set. This
leads to surprising performance differences. Moreover, it means that
the set of key types accepted by SetVector and SmallSetVector are
quite different!
In order to make this change, we had to convert some callsites that used
SmallSetVector<std::string, N> to use SmallSetVector<CachedHashString, N>
instead.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25648
llvm-svn: 284887
Richard Smith [Fri, 21 Oct 2016 21:37:18 +0000 (21:37 +0000)]
Fix typo (ordered comparison between pointer and 0).
llvm-svn: 284886
Malcolm Parsons [Fri, 21 Oct 2016 21:13:56 +0000 (21:13 +0000)]
[Sema] Store a SourceRange for multi-token builtin types
Summary:
clang-tidy's modernize-use-auto check uses the SourceRange of a
TypeLoc when replacing the type with auto.
This was producing the wrong result for multi-token builtin types
like long long:
-long long *ll = new long long();
+auto long *ll = new long long();
Reviewers: alexfh, hokein, rsmith, Prazek, aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25363
llvm-svn: 284885
Justin Bogner [Fri, 21 Oct 2016 21:01:12 +0000 (21:01 +0000)]
Support: Annotate Error and Expected<> with LLVM_NODISCARD
It's always a mistake to ignore return values with Error or Expected
types.
llvm-svn: 284884
Mandeep Singh Grang [Fri, 21 Oct 2016 21:00:11 +0000 (21:00 +0000)]
[polly] Change SmallPtrSet which is being iterated to SmallSetVector in ScopInfo.h
Summary: This will avoid non-deterministic iteration order.
Reviewers: grosser, jdoerfert, zinob, mgrang
Subscribers: #polly
Tags: #polly
Differential Revision: https://reviews.llvm.org/D25880
llvm-svn: 284883
Justin Lebar [Fri, 21 Oct 2016 20:50:47 +0000 (20:50 +0000)]
[CUDA] Simplify some repeated diagnostic expectations in CUDA tests.
Instead of repeating the diagnostic, use "expected-note N".
Test-only change.
llvm-svn: 284882
Tim Shen [Fri, 21 Oct 2016 20:41:47 +0000 (20:41 +0000)]
[libcxx] Support std::regex_constants::match_not_null
Summary: Fixes PR21597.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25595
llvm-svn: 284881
Bob Haarman [Fri, 21 Oct 2016 20:38:37 +0000 (20:38 +0000)]
fixed typo in InstrProf.h; NFC
llvm-svn: 284880
Artem Belevich [Fri, 21 Oct 2016 20:34:05 +0000 (20:34 +0000)]
Declare H and H new/delete.
llvm-svn: 284879
Rafael Espindola [Fri, 21 Oct 2016 20:32:41 +0000 (20:32 +0000)]
Compact SymbolBody from 56 to 48 bytes.
llvm-svn: 284878
Vassil Vassilev [Fri, 21 Oct 2016 20:30:30 +0000 (20:30 +0000)]
Remove accidentally checked in assert.
Thanks to Manman for spotting this.
llvm-svn: 284877
Justin Lebar [Fri, 21 Oct 2016 20:28:00 +0000 (20:28 +0000)]
[ADT] Get rid of use of LLVM_NOEXCEPT in CachedHashString.h.
LLVM_NOEXCEPT is no longer necessary (yay).
llvm-svn: 284876
Tom Stellard [Fri, 21 Oct 2016 20:25:11 +0000 (20:25 +0000)]
AMDGPU/SI: Fix crash caused by r284267
Reviewers: arsenm, nhaehnle
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D25782
llvm-svn: 284875
Sanjay Patel [Fri, 21 Oct 2016 20:16:27 +0000 (20:16 +0000)]
[DAG] enhance computeKnownBits to handle SHL with vector splat constant
Also, use APInt to avoid crashing on types larger than vNi64.
llvm-svn: 284874
Justin Lebar [Fri, 21 Oct 2016 20:13:39 +0000 (20:13 +0000)]
[clang-tidy] Don't use a SmallSetVector of an enum.
Summary:
This doesn't work after converting SmallSetVector to use DenseSet.
Instead we can just use a SmallVector.
Reviewers: timshen
Subscribers: nemanjai, cfe-commits
Differential Revision: https://reviews.llvm.org/D25647
llvm-svn: 284873
Justin Lebar [Fri, 21 Oct 2016 20:10:51 +0000 (20:10 +0000)]
[ADT] Compare strings' hashes first before comparing their values.
Summary:
We already have the hashes in hand, and comparing hashes should be much
more discriminatory than comparing the StringRefs' sizes.
Reviewers: rafael
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25705
llvm-svn: 284872
Justin Lebar [Fri, 21 Oct 2016 20:10:48 +0000 (20:10 +0000)]
[ADT] Add CachedHashString.
Summary:
This is like CachedHashStringRef, but owns its data.
This lets us use strings inside of DenseMaps.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25645
llvm-svn: 284871
Justin Lebar [Fri, 21 Oct 2016 20:10:44 +0000 (20:10 +0000)]
[IR] Add DenseMapInfo<CallSite>.
Summary:
A CallSite is basically an Instruction*, and you can put Instruction*s
into DenseMaps, so you should be able to do the same with CallSites.
This is used in a later patch.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25643
llvm-svn: 284870
Justin Lebar [Fri, 21 Oct 2016 20:08:52 +0000 (20:08 +0000)]
[CUDA] Use FunctionDeclAndLoc for the Sema::LocsWithCUDACallDiags hashtable.
Summary: NFC
Reviewers: rnk
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25797
llvm-svn: 284869
Li Huang [Fri, 21 Oct 2016 20:05:21 +0000 (20:05 +0000)]
[SCEV] Memoize visitMulExpr results in SCEVRewriteVisitor.
Summary:
When SCEVRewriteVisitor traverses the SCEV DAG, it may visit the same SCEV
multiple times if this SCEV is referenced by multiple other SCEVs. This has
exponential time complexity in the worst case. Memoizing the results will
avoid re-visiting the same SCEV. Add a map to save the results, and override
the visit function of SCEVVisitor. Now SCEVRewriteVisitor only visit each
SCEV once and thus returns the same result for the same input SCEV.
This patch fixes PR18606, PR18607.
Reviewers: Sanjoy Das, Mehdi Amini, Michael Zolotukhin
Differential Revision: https://reviews.llvm.org/D25810
llvm-svn: 284868
Kevin Enderby [Fri, 21 Oct 2016 20:03:14 +0000 (20:03 +0000)]
Fix a bug in the code of llvm-cxxdump in dumpArchive() when
iterating over an archive with object and non-object members that
would cause an Abort because to was not calling consumeError()
when the code was wanting to ignore a non-object file.
Found by Justin Bogner!
llvm-svn: 284867
Kostya Serebryany [Fri, 21 Oct 2016 20:01:45 +0000 (20:01 +0000)]
[libFuzzer] mention one more trophie
llvm-svn: 284866
Peter Collingbourne [Fri, 21 Oct 2016 19:59:26 +0000 (19:59 +0000)]
Analysis: Move llvm::getConstantRangeFromMetadata to IR library.
We're about to start using it there.
Differential Revision: https://reviews.llvm.org/D25877
llvm-svn: 284865
Peter Collingbourne [Fri, 21 Oct 2016 19:57:55 +0000 (19:57 +0000)]
X86: Improve BT instruction selection for 64-bit values.
If a 64-bit value is tested against a bit which is known to be in the range
[0..31) (modulo 64), we can use the 32-bit BT instruction, which has a slightly
shorter encoding.
Differential Revision: https://reviews.llvm.org/D25862
llvm-svn: 284864
Simon Pilgrim [Fri, 21 Oct 2016 19:54:38 +0000 (19:54 +0000)]
[X86][AVX512BWVL] Added support for lowering v16i16 shuffles to AVX512BWVL vpermw
llvm-svn: 284863
Rafael Espindola [Fri, 21 Oct 2016 19:49:42 +0000 (19:49 +0000)]
Use a CachedHashString for comdats too.
We were already using it in the larger sets/maps. This provides about
1% speedup in linking xul and chromium.
llvm-svn: 284862
Bob Haarman [Fri, 21 Oct 2016 19:43:19 +0000 (19:43 +0000)]
[pdb] added support for dumping globals stream
Summary: This adds support for dumping the globals stream from PDB files using llvm-pdbdump, similar to the support we have for the publics stream.
Reviewers: ruiu, zturner
Subscribers: beanz, mgorny, modocache
Differential Revision: https://reviews.llvm.org/D25801
llvm-svn: 284861
Simon Pilgrim [Fri, 21 Oct 2016 19:40:29 +0000 (19:40 +0000)]
[X86][AVX512BWVL] Added support for combining target v16i16 shuffles to AVX512BWVL vpermw
llvm-svn: 284860
Haojian Wu [Fri, 21 Oct 2016 19:26:43 +0000 (19:26 +0000)]
[clang-move] Support moving template class forward declarations.
llvm-svn: 284859
Simon Pilgrim [Fri, 21 Oct 2016 19:18:09 +0000 (19:18 +0000)]
[X86][AVX512] Added support for combining target shuffles to AVX512 vpermpd/vpermq/vpermps/vpermd/vpermw
llvm-svn: 284858
Krzysztof Parzyszek [Fri, 21 Oct 2016 19:12:13 +0000 (19:12 +0000)]
[RDF] Use RegisterId typedef more consistently, NFC
llvm-svn: 284857
Benjamin Kramer [Fri, 21 Oct 2016 18:55:07 +0000 (18:55 +0000)]
Remove move constructors that are identical to the generated default move ctor.
llvm-svn: 284856
Anna Thomas [Fri, 21 Oct 2016 18:43:16 +0000 (18:43 +0000)]
[StripGCRelocates] New pass to remove gc.relocates added by RS4GC
Summary:
Utility pass to remove gc.relocates created by rewrite statepoints for GC.
With respect to safepoint verification, the IR generated would be incorrect, and cannot run
as such.
This would be a single transformation on the final optimized IR.
The benefit of the pass is for easy analysis when the IRs are 'polluted' by too
many gc.relocates.
Added tests.
test run: All RS4GC tests with -verify option. Local downstream tests on large
IR files. This also works when the pointer being gc.relocated is another
gc.relocate.
Reviewers: sanjoy, reames
Subscribers: beanz, mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D25096
llvm-svn: 284855
Chris Bieneman [Fri, 21 Oct 2016 18:38:44 +0000 (18:38 +0000)]
[CMake] Fix standalone build
not and FileCheck targets may not be defined in standalone builds.
llvm-svn: 284854
Kevin Enderby [Fri, 21 Oct 2016 18:22:35 +0000 (18:22 +0000)]
For llvm-objdump for Mach-O files add printing of
the ARM_THREAD_STATE in the same format as
otool-classic(1) on darwin.
Also remove an extra space in printing the initprot to make
the output match otool-classic(1) on darwin.
rdar://
28851457
llvm-svn: 284852
Jim Ingham [Fri, 21 Oct 2016 18:18:25 +0000 (18:18 +0000)]
Add the new stdcpp formatters to the Xcode project.
llvm-svn: 284851
Eli Friedman [Fri, 21 Oct 2016 18:08:02 +0000 (18:08 +0000)]
[SCEVAffinator] Make precise modular math more correct.
Integer math in LLVM IR is modular. Integer math in isl is
arbitrary-precision. Modeling LLVM IR math correctly in isl requires
either adding assumptions that math doesn't actually overflow, or
explicitly wrapping the math. However, expressions with the "nsw" flag
are special; we can pretend they're arbitrary-precision because it's
undefined behavior if the result wraps. SCEV expressions based on IR
instructions with an nsw flag also carry an nsw flag (roughly; actually,
the real rule is a bit more complicated, but the details don't matter
here).
Before this patch, SCEV flags were also overloaded with an additional
function: the ZExt code was mutating SCEV expressions as a hack to
indicate to checkForWrapping that we don't need to add assumptions to
the operand of a ZExt; it'll add explicit wrapping itself. This kind of
works... the problem is that if anything else ever touches that SCEV
expression, it'll get confused by the incorrect flags.
Instead, with this patch, we make the decision about whether to
explicitly wrap the math a bit earlier, basing the decision purely on
the SCEV expression itself, and not its users.
Differential Revision: https://reviews.llvm.org/D25287
llvm-svn: 284848
Enrico Granata [Fri, 21 Oct 2016 18:03:55 +0000 (18:03 +0000)]
I hadn't fixed all the instances of the old marker for scripted format strings; do so now
llvm-svn: 284847
Rui Ueyama [Fri, 21 Oct 2016 17:50:26 +0000 (17:50 +0000)]
Use FileCheck's -strict-whitespace option instead of sed.
llvm-svn: 284846
Mandeep Singh Grang [Fri, 21 Oct 2016 17:29:10 +0000 (17:29 +0000)]
[polly] Change SmallPtrSet which are being iterated into SmallSetVector
Summary: Otherwise the lack of an iteration order results in non-determinism in codegen.
Reviewers: _jdoerfert, zinob, grosser
Tags: #polly
Differential Revision: https://reviews.llvm.org/D25863
llvm-svn: 284845
Sanjay Patel [Fri, 21 Oct 2016 17:24:26 +0000 (17:24 +0000)]
[DAG] fold negation of sign-bit
0 - X --> 0, if the sub is NUW
0 - X --> 0, if X is 0 or the minimum signed value and the sub is NSW
0 - X --> X, if X is 0 or the minimum signed value
This is the DAG equivalent of:
https://reviews.llvm.org/rL284649
plus the fold for the NUW case which already existed in InstSimplify.
Note that we miss a vector fold because of a deficiency in the DAG version of
computeKnownBits().
llvm-svn: 284844
Artem Belevich [Fri, 21 Oct 2016 17:15:46 +0000 (17:15 +0000)]
Removed unused function argument. NFC.
Differential Revision: https://reviews.llvm.org/D25839
llvm-svn: 284843
Sanjay Patel [Fri, 21 Oct 2016 16:56:29 +0000 (16:56 +0000)]
[x86] add tests for potential negation folds
These are the backend equivalents for the tests added in r284627.
The patterns may emerge late, so we should have folds for these in the DAG too.
llvm-svn: 284842
Krzysztof Parzyszek [Fri, 21 Oct 2016 16:38:29 +0000 (16:38 +0000)]
[Hexagon] Handle spills of partially defined double vector registers
After register allocation it is possible to have a spill of a register
that is only partially defined. That in itself it fine, but creates a
problem for double vector registers. Stores of such registers are pseudo
instructions that are expanded into pairs of individual vector stores,
and in case of a partially defined source, one of the stores may use
an entirely undefined register. To avoid this, track the defined parts
and only generate actual stores for those.
llvm-svn: 284841
Derek Schuff [Fri, 21 Oct 2016 16:38:07 +0000 (16:38 +0000)]
[WebAssembly] Fix for 0xc call_indirect changes
Summary:
Need to reorder the operands to have the callee as the last argument.
Adds a pseudo-instruction, and a pass to lower it into a real
call_indirect.
This is the first of two options for how to fix the problem.
Reviewers: dschuff, sunfish
Subscribers: jfb, beanz, mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D25708
llvm-svn: 284840