Tom Stellard [Thu, 8 Aug 2019 19:22:23 +0000 (19:22 +0000)]
lit: Bump version to 0.10.0
Reviewers: hans
Subscribers: hans, delcypher, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65763
llvm-svn: 368329
Brian Cain [Thu, 8 Aug 2019 19:19:20 +0000 (19:19 +0000)]
[clang] Add no-warn support for Wa
llvm-svn: 368328
Brian Cain [Thu, 8 Aug 2019 19:13:23 +0000 (19:13 +0000)]
[llvm-mc] Add reportWarning() to MCContext
Adding reportWarning() to MCContext, so that it can be used from
the Hexagon assembler backend.
llvm-svn: 368327
Yitzhak Mandelbaum [Thu, 8 Aug 2019 18:55:42 +0000 (18:55 +0000)]
[clang][NFC] Move matcher ignoringElidableConstructorCall's tests to appropriate file.
Summary:
`ignoringElidableConstructorCall` is a traversal matcher, but its tests are
grouped with narrowing-matcher tests. This revision moves them to the correct
file.
Reviewers: gribozavr
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65963
llvm-svn: 368326
Sam Clegg [Thu, 8 Aug 2019 18:22:03 +0000 (18:22 +0000)]
[lld][WebAssembly] Use createGlobalVariable helper function. NFC.
Differential Revision: https://reviews.llvm.org/D65911
llvm-svn: 368325
Craig Topper [Thu, 8 Aug 2019 18:11:17 +0000 (18:11 +0000)]
[X86] Make CMPXCHG16B feature imply CMPXCHG8B feature.
This fixes znver1 so that it properly enables CMPXHG8B. We can
probably remove explicit CMPXCHG8B from CPUs that also have
CMPXCHG16B, but keeping this simple to allow cherry pick to 9.0.
Fixes PR42935.
llvm-svn: 368324
Hiroshi Yamauchi [Thu, 8 Aug 2019 18:00:49 +0000 (18:00 +0000)]
Recommit Devirtualize destructor of final class.
Original patch commited as r364100, reverted as r364359, recommitted as r365509,
reverted as r365850.
llvm-svn: 368323
Nico Weber [Thu, 8 Aug 2019 17:58:32 +0000 (17:58 +0000)]
clang: Diag running out of file handles while looking for files
clang would only print "file not found" when it's unable to find a
header file. If the reason for that is a file handle leak, that's not a
very useful error message. For errors that aren't in a small whitelist
("file not found", "file is directory"), print an error with the
strerror() output.
This changes behavior in corner cases: If clang was out of file handles
while looking in one -I dir but then suddenly wasn't when looking in the
next -I dir, and both directories contained a file with the desired
name, previously we'd silently return the file from the second
directory. For this reason, it's important to ignore "is a directory"
for this new diag: if a file foo/foo exists and -I -Ifoo are passed, an
include of "foo" should successfully open file "foo" in directory "foo/"
instead of complaining that "./foo" is a directory.
No test since we mostly hit this when there's a handle leak somewhere,
and currently there isn't one. I manually tested this with the repro
steps in comment 2 on the bug below.
Fixes PR42524.
Differential Revision: https://reviews.llvm.org/D65956
llvm-svn: 368322
Daniel Sanders [Thu, 8 Aug 2019 17:54:23 +0000 (17:54 +0000)]
[globalisel][legalizer] Attempt to write down the minimal legalization rules
Summary:
There aren't very many requirements on the legalization rules but we should
document them.
Reviewers: aditya_nandakumar, volkan, bogner, paquette, aemerson, rovka, arsenm, Petar.Avramovic
Subscribers: wdng, kristof.beyls, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62423
# Conflicts:
# llvm/docs/GlobalISel.rst
llvm-svn: 368321
Pirama Arumuga Nainar [Thu, 8 Aug 2019 17:50:39 +0000 (17:50 +0000)]
[AArch64] Do not emit '#' before immediates in inline asm
Summary:
The A64 assembly language does not require the '#' character to
introduce constant immediate operands. Avoid the '#' since the AArch64
asm parser does not accept '#' before the lane specifier and rejects the
following:
__asm__ ("fmla v2.4s, v0.4s, v1.s[%0]" :: "I"(0x1))
Fix a test to not expect the '#' and add a new test case with the above
asm.
Fixes: https://github.com/android-ndk/ndk/issues/1036
Reviewers: peter.smith, kristof.beyls
Subscribers: javed.absar, hiraditya, llvm-commits, srhines
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65550
llvm-svn: 368320
Yitzhak Mandelbaum [Thu, 8 Aug 2019 17:41:44 +0000 (17:41 +0000)]
[clang] Update `ignoringElidableConstructorCall` matcher to ignore `ExprWithCleanups`.
Summary:
The `ExprWithCleanups` node is added to the AST along with the elidable
CXXConstructExpr. If it is the outermost node of the node being matched, ignore
it as well.
Reviewers: gribozavr
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65944
llvm-svn: 368319
Jinsong Ji [Thu, 8 Aug 2019 17:37:58 +0000 (17:37 +0000)]
Re-commit "[PowerPC][NFC][MachinePipeliner] Add some regression testcases""
Remove sms-cpy1.ll first while I investigate the problem.
llvm-svn: 368318
Louis Dionne [Thu, 8 Aug 2019 17:33:35 +0000 (17:33 +0000)]
[libc++] Fix environment variable passing in libc++'s `SSHExecutor` `lit` utility
Summary:
Quote the value of environment variables when passing them to the SSH
client in SSHExecutor in libc++'s lit utilities. Without the quotes,
an environment variable like FOO="buzz bar" gets passed incorrectly
like this, ssh env FOO=buzz bar, which causes bar to be treated as a
command to run, not part of the environment variable value.
We ran into this when using SSHExecutor to do bringup of our CUDA
libcu++ port on an embedded aarch64 system.
Patch by Bryce Adelstein Lelbach.
Differential Revision: https://reviews.llvm.org/D65960
llvm-svn: 368317
Tom Stellard [Thu, 8 Aug 2019 17:23:33 +0000 (17:23 +0000)]
lit: Use a License classifier that pypi will accept
Summary:
'OSI Approved :: Apache-2.0 with LLVM exception' is not a valid
classifier. 'OSI Approved :: Apache Software License' is the closest
fit for the new license, so we've decided to use this one.
The classifiers seem to only be used for searching on the pypi website,
so this does not actually change the license of the code.
We still pass 'Apache-2.0 with LLVM exception' as the license to setup(),
and this appears alongside the classifier on the pypi webpage for lit.
Reviewers: chandlerc, ddunbar, joerg
Reviewed By: joerg
Subscribers: delcypher, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65762
llvm-svn: 368315
Diego Astiazaran [Thu, 8 Aug 2019 17:14:17 +0000 (17:14 +0000)]
[clang-doc] Protect Index with mutex during reducing and generation stage
Idx in ClangDocContext instance was being modified by multiple threads
causing a seg fault.
A mutex is added to avoid this.
Differential Revision: https://reviews.llvm.org/D65915
llvm-svn: 368313
Louis Dionne [Thu, 8 Aug 2019 17:10:45 +0000 (17:10 +0000)]
[NFC][pstl] Run clang-format
We really need to do that consistently when applying patches.
llvm-svn: 368312
Akira Hatanaka [Thu, 8 Aug 2019 16:59:31 +0000 (16:59 +0000)]
[ObjC][ARC] Upgrade calls to ARC runtime functions to intrinsic calls if
the bitcode has the arm64 retainAutoreleasedReturnValue marker
The ARC middle-end passes stopped optimizing or transforming bitcode
that has been compiled with old compilers after we started emitting
calls to ARC runtime functions as intrinsic calls instead of normal
function calls in the front-end and made changes to teach the ARC
middle-end passes about those intrinsics (see r349534). This patch
converts calls to ARC runtime functions that are not intrinsic functions
to intrinsic function calls if the bitcode has the arm64
retainAutoreleasedReturnValue marker. Checking for the presence of the
marker is necessary to make sure we aren't changing ARC function calls
that were originally MRR message sends (see r349952).
rdar://problem/
53280660
Differential Revision: https://reviews.llvm.org/D65902
llvm-svn: 368311
Sam Clegg [Thu, 8 Aug 2019 16:58:36 +0000 (16:58 +0000)]
[lld][WebAssembly] Add optional symbols after input file handling
This allows undefined references in input files be resolved by the
optional symbols. Previously we were doing this before input file
reading which means it was working only for command line symbols
references (i.e. -u or --export).
Also use addOptionalDataSymbol for __dso_handle and make all optional
symbols hidden by default.
Differential Revision: https://reviews.llvm.org/D65920
llvm-svn: 368310
Raphael Isemann [Thu, 8 Aug 2019 16:41:32 +0000 (16:41 +0000)]
[lldb][NFC] Simplify return in MaybeHandleVariable
This function anyway returns true, no need to do this extra work.
llvm-svn: 368309
Simon Pilgrim [Thu, 8 Aug 2019 16:05:23 +0000 (16:05 +0000)]
[X86] XFormVExtractWithShuffleIntoLoad - handle shuffle mask scaling
If the target shuffle mask is from a wider type, attempt to scale the mask so that the extraction can attempt to peek through.
Fixes the regression mentioned in rL368307
llvm-svn: 368308
Simon Pilgrim [Thu, 8 Aug 2019 15:54:20 +0000 (15:54 +0000)]
[X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using DemandedElts mask
If we don't demand all elements, then attempt to combine to a simpler shuffle.
At the moment we can only do this if Depth == 0 as combineX86ShufflesRecursively uses Depth to track whether the shuffle has really changed or not - we'll need to change this before we can properly start merging combineX86ShufflesRecursively into SimplifyDemandedVectorElts.
The insertps-combine.ll regression is because XFormVExtractWithShuffleIntoLoad can't see through shuffles of different widths - this will be fixed in a follow-up commit.
llvm-svn: 368307
David Tenty [Thu, 8 Aug 2019 15:40:35 +0000 (15:40 +0000)]
Enable assembly output of local commons for AIX
Summary:
This patch enable assembly output of local commons for AIX using .lcomm
directives. Adds a EmitXCOFFLocalCommonSymbol to MCStreamer so we can emit the
AIX version of .lcomm assembly directives which include a csect name. Handle the
case of BSS locals in PPCAIXAsmPrinter by using EmitXCOFFLocalCommonSymbol. Adds
a test for generating .lcomm on AIX Targets.
Reviewers: cebowleratibm, hubert.reinterpretcast, Xiangling_L, jasonliu, sfertile
Reviewed By: sfertile
Subscribers: wuzish, nemanjai, hiraditya, kbarton, MaskRay, jsji, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64825
llvm-svn: 368306
David Green [Thu, 8 Aug 2019 15:27:58 +0000 (15:27 +0000)]
[ARM] Add support for MVE pre and post inc loads and stores
This adds pre- and post- increment and decrements for MVE loads and stores. It
uses the builtin pre and post load/store detection, unlike Neon. Loads are
selected with the code in tryT2IndexedLoad, stores are selected with tablegen
patterns. The immediates have a +/-7bit range, multiplied by the size of the
element.
Differential Revision: https://reviews.llvm.org/D63840
llvm-svn: 368305
David Green [Thu, 8 Aug 2019 15:15:19 +0000 (15:15 +0000)]
[ARM] MVE big endian loads/stores
This adds some missing patterns for big endian loads/stores, allowing unaligned
loads/stores to also be selected with an extra VREV, which produces better code
than aligning through a stack. Also moves VLDR_P0 to not be LE only, and
adjusts some of the tests to show all that working.
Differential Revision: https://reviews.llvm.org/D65583
llvm-svn: 368304
Sam Elliott [Thu, 8 Aug 2019 14:59:16 +0000 (14:59 +0000)]
[RISCV] Allow ABI Names in Inline Assembly Constraints
Summary:
Clang will replace references to registers using ABI names in inline
assembly constraints with references to architecture names, but other
frontends do not. LLVM uses the regular assembly parser to parse inline asm,
so inline assembly strings can contain references to registers using their
ABI names.
This patch adds support for parsing constraints using either the ABI name or
the architectural register name. This means we do not need to implement the
ABI name replacement code in every single frontend, especially those like
Rust which are a very thin shim on top of LLVM IR's inline asm, and that
constraints can more closely match the assembly strings they refer to.
Reviewers: asb, simoncook
Reviewed By: simoncook
Subscribers: hiraditya, rbar, johnrusso, JDevlieghere, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65947
llvm-svn: 368303
Louis Dionne [Thu, 8 Aug 2019 14:49:28 +0000 (14:49 +0000)]
[pstl] Remove stray semicolon
llvm-svn: 368302
Diogo N. Sampaio [Thu, 8 Aug 2019 14:45:42 +0000 (14:45 +0000)]
[FIX][NFC] Update clang sema test
Try to fix Sema test for default alignment for when
compiling to ARM, but not to android, due
r9427aa2d543b
llvm-svn: 368301
Sam Elliott [Thu, 8 Aug 2019 14:40:54 +0000 (14:40 +0000)]
[RISCV] Minimal stack realignment support
Summary:
Currently the RISC-V backend does not realign the stack. This can be an issue even for the RV32I/RV64I ABIs (where the stack is 16-byte aligned), though is rare. It will be much more comment with RV32E (though the alignment requirements for common data types remain under-documented...).
This patch adds minimal support for stack realignment. It should cope with large realignments. It will error out if the stack needs realignment and variable sized objects are present.
It feels like a lot of the code like getFrameIndexReference and determineFrameLayout could be refactored somehow, as right now it feels fiddly and brittle. We also seem to allocate a lot more memory than GCC does for equivalent C code.
Reviewers: asb
Reviewed By: asb
Subscribers: wwei, jrtc27, s.egerton, MaskRay, Jim, lenary, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62007
llvm-svn: 368300
Marshall Clow [Thu, 8 Aug 2019 14:36:07 +0000 (14:36 +0000)]
Implement hh_mm_ss from P1466R3. Reviewed as https://reviews.llvm.org/D65365.
llvm-svn: 368299
Fangrui Song [Thu, 8 Aug 2019 13:57:53 +0000 (13:57 +0000)]
[ELF][AArch64] Delete two unused RUN lines from aarch64-movw-tprel.s after D65882
llvm-svn: 368298
Thomas Preud'homme [Thu, 8 Aug 2019 13:56:59 +0000 (13:56 +0000)]
[FileCheck] Add missing includes in header
Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65778
llvm-svn: 368297
Tim Corringham [Thu, 8 Aug 2019 13:46:17 +0000 (13:46 +0000)]
Add llvm.licm.disable metadata
For some targets the LICM pass can result in sub-optimal code in some
cases where it would be better not to run the pass, but it isn't
always possible to suppress the transformations heuristically.
Where the front-end has insight into such cases it is beneficial
to attach loop metadata to disable the pass - this change adds the
llvm.licm.disable metadata to enable that.
Differential Revision: https://reviews.llvm.org/D64557
llvm-svn: 368296
Alexey Bataev [Thu, 8 Aug 2019 13:42:45 +0000 (13:42 +0000)]
[OPENMP]Add support for analysis of linear variables and step.
Summary:
Added support for basic analysis of the linear variables and linear step
expression. Linear loop iteration variables must be excluded from this
analysis, only non-loop iteration variables must be analyzed.
Reviewers: NoQ
Subscribers: guansong, cfe-commits, caomhin, kkwli0
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65461
llvm-svn: 368295
Stefan Granitz [Thu, 8 Aug 2019 13:39:25 +0000 (13:39 +0000)]
[lldb][CMake] Disable modules in Xcode projects
Summary: Apparently, module-enabled builds clash with Xcode's analysis.
Reviewers: aprantl, jingham, davide, teemperor
Reviewed By: davide
Subscribers: mgorny, lldb-commits, #lldb
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D65874
llvm-svn: 368294
Peter Smith [Thu, 8 Aug 2019 13:38:09 +0000 (13:38 +0000)]
[ELF][AArch64] Support for movz, movk tprel relocations
This patch Implements the R_AARCH64_TLSLE_MOVW_TPREL_G*[_NC]. These are
logically the same calculation as the existing TLSLE relocations with
the result written back to mov[nz] and movk instructions. A typical code
sequence is:
movz x0, #:tprel_g2:foo // bits [47:32] of R_TLS with overflow check
movk x0, #:tprel_g1_nc:foo // bits [31:16] of R_TLS with no overflow check
movk x0, #:tprel_g0_nc:foo // bits [15:0] of R_TLS with no overflow check
This type of code sequence is usually used with a large code model.
Differential Revision: https://reviews.llvm.org/D65882
Fixes: PR42853
llvm-svn: 368293
Simon Pilgrim [Thu, 8 Aug 2019 13:23:53 +0000 (13:23 +0000)]
[X86][SSE] matchBinaryPermuteShuffle - split INSERTPS combines
We need to prefer INSERTPS with zeros over SHUFPS, but fallback to INSERTPS if that fails.
llvm-svn: 368292
Johan Vikstrom [Thu, 8 Aug 2019 13:10:30 +0000 (13:10 +0000)]
[clangd] Added semantic highlighting support for primitives.
Summary:
Adds a new HighlightingKind "Primitive". Adds a special case for TypeLocs that have an underlying TypePtr that is are builtin types, adding them as primitives.
The primary reason for this change is because otherwise typedefs that typedef primitives `typedef int A` would not get highlighted (so in the example `A` would not get any highlightings.)
Reviewers: hokein, ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65943
llvm-svn: 368291
Sanjay Patel [Thu, 8 Aug 2019 13:08:17 +0000 (13:08 +0000)]
[Reassociate] add more tests with negative FP constants; NFC
llvm-svn: 368290
Pavel Labath [Thu, 8 Aug 2019 12:57:46 +0000 (12:57 +0000)]
ObjectFileELF: Convert a unit test to a lit test
It is much easier to test this functionality via lldb-test.
llvm-svn: 368289
Diogo N. Sampaio [Thu, 8 Aug 2019 12:50:36 +0000 (12:50 +0000)]
[ARM] Set default alignment to 64bits
Summary:
The maximum alignment used by ARM arch
is 64bits, not 128.
This could cause overaligned memory
access for 128 bit neon vector that
have unpredictable behaviour.
This fixes: https://bugs.llvm.org/show_bug.cgi?id=42668
Reviewers: ostannard, dmgreen, srhines, danalbert, pirama, peter.smith
Reviewed By: pirama, peter.smith
Subscribers: phosek, thegameg, thakis, llvm-commits, carwil, peter.smith, javed.absar, kristof.beyls, cfe-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D65000
llvm-svn: 368288
Johan Vikstrom [Thu, 8 Aug 2019 12:43:55 +0000 (12:43 +0000)]
[clangd] Added an early return from VisitMemberExpr in SemanticHighlighting if underlying MemberDecl is a CXXConversionDecl.
Summary:
Conversion operators contain invalid MemberLocs which caused SemanticHighlighting
to emit a lot of error logs in large files as they can occur fairly
often (for example converting StringRef to std string).
As the only thing happening was a lot of error logs being
emited there doesn't really seem to be any way to test this
(no erroneous tokens are added). But emiting as many logs as
were being emited is not wanted.
This also adds a test to guard against regressions for highlightings
disapearing from places where the conversion operators are used as their
behaviour differ from the other CXXMethodDecls.
Reviewers: hokein, ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65928
llvm-svn: 368287
Louis Dionne [Thu, 8 Aug 2019 12:43:20 +0000 (12:43 +0000)]
[libc++abi] Fix tests when pstl is enabled
llvm-svn: 368286
Louis Dionne [Thu, 8 Aug 2019 12:43:13 +0000 (12:43 +0000)]
[pstl] Error out when the backend is left unspecified
Instead of silently falling back to the serial backend, it's better if
we fail loudly when the parallel backend is left unspecified. Since we
have a __pstl_config_site header, a backend should always be specified.
llvm-svn: 368285
Louis Dionne [Thu, 8 Aug 2019 12:43:04 +0000 (12:43 +0000)]
[pstl] Add a __pstl_config_site header to record the CMake configuration
This commit adds a __pstl_config_site header that contains the value of
macros specified at CMake configuration time. It works similarly to
libc++'s __config_site header, except we always include it as a separate
file instead of concatenating it to the main configuration header.
It is necessary to thread the includes for that header into libc++'s
lit configuration, otherwise we'd be requiring an installation step
prior to running the test suite.
llvm-svn: 368284
Haojian Wu [Thu, 8 Aug 2019 12:33:12 +0000 (12:33 +0000)]
[clangd] Don't include internal gtest header.
llvm-svn: 368283
Haojian Wu [Thu, 8 Aug 2019 12:19:01 +0000 (12:19 +0000)]
[clangd] Remove a function accidently being added in rL368261.
llvm-svn: 368282
Bjorn Pettersson [Thu, 8 Aug 2019 12:11:13 +0000 (12:11 +0000)]
Fix check in tools/gold/X86/strip_names.ll regarding unnamed args
After r367755 value numbers are printed for unnamed
function arguments. The tools/gold/X86/strip_names.ll
was not updated in that commit, so this patch can be
seen as a follow up to r367755.
llvm-svn: 368281
Krasimir Georgiev [Thu, 8 Aug 2019 11:56:18 +0000 (11:56 +0000)]
[clang-format] fix crash involving invalid preprocessor line
Summary:
This (invalid) fragment is crashing clang-format:
```
#if 1
int x;
#elif
int y;
#endif
```
The reason being that the parser expects a token after `#elif`, and the
subsequent parsing of the next line does not check if `CurrentToken` is null.
Reviewers: gribozavr
Reviewed By: gribozavr
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65940
llvm-svn: 368280
Pavel Labath [Thu, 8 Aug 2019 11:49:55 +0000 (11:49 +0000)]
Fix LLDB_CONFIGURATION_DEBUG builds for the GetSymbolVendor removal
fix one usage that is ifdefed-out in non-debug builds.
llvm-svn: 368279
Simon Pilgrim [Thu, 8 Aug 2019 11:24:23 +0000 (11:24 +0000)]
[X86][SSE] Add x64 load use test case
llvm-svn: 368278
Haojian Wu [Thu, 8 Aug 2019 10:58:16 +0000 (10:58 +0000)]
[clangd] Correct the documentation, NFC.
llvm-svn: 368277
Simon Pilgrim [Thu, 8 Aug 2019 10:37:03 +0000 (10:37 +0000)]
[TargetLowering] SimplifyDemandedBits - call SimplifyMultipleUseDemandedBits for ISD::EXTRACT_VECTOR_ELT
This patch attempts to peek through vectors based on the demanded bits/elt of a particular ISD::EXTRACT_VECTOR_ELT node, allowing us to avoid dependencies on ops that have no impact on the extract.
In particular this helps remove some unnecessary scalar->vector->scalar patterns.
The wasm shift patterns are annoying - @tlively has indicated that the wasm vector shift codegen are to be refactored in the near-term and isn't considered a major issue.
Differential Revision: https://reviews.llvm.org/D65887
llvm-svn: 368276
Andrea Di Biagio [Thu, 8 Aug 2019 10:30:58 +0000 (10:30 +0000)]
[MCA] Remove dependency from InstrBuilder in mca::Context. NFC
InstrBuilder is not required to construct the default pipeline.
llvm-svn: 368275
Petar Avramovic [Thu, 8 Aug 2019 10:21:12 +0000 (10:21 +0000)]
[MIPS GlobalISel] Select jump_table and brjt
G_JUMP_TABLE and G_BRJT appear from translation of switch statement.
Select these two instructions for MIPS32, both pic and non-pic.
Differential Revision: https://reviews.llvm.org/D65861
llvm-svn: 368274
George Rimar [Thu, 8 Aug 2019 10:05:00 +0000 (10:05 +0000)]
[llcm-readobj] - Fix BB after t368272.
Seems I forgot to update this test case.
llvm-svn: 368273
George Rimar [Thu, 8 Aug 2019 09:49:05 +0000 (09:49 +0000)]
[yaml2obj/obj2yaml] - Add a basic support for extended section indexes.
In some cases a symbol might have section index == SHN_XINDEX.
This is an escape value indicating that the actual section header index
is too large to fit in the containing field.
Then the SHT_SYMTAB_SHNDX section is used. It contains the 32bit values
that stores section indexes.
ELF gABI says that there can be multiple SHT_SYMTAB_SHNDX sections,
i.e. for example one for .symtab and one for .dynsym
(1) https://groups.google.com/forum/#!topic/generic-abi/-XJAV5d8PRg
(2) DT_SYMTAB_SHNDX: http://www.sco.com/developers/gabi/latest/ch5.dynamic.html
In this patch I am only supporting a single SHT_SYMTAB_SHNDX associated
with a .symtab. This is a more or less common case which is used a few tests I saw in LLVM.
I decided not to create the SHT_SYMTAB_SHNDX section as "implicit",
but implement is like a kind of regular section for now.
i.e. tools do not recreate this section or its content, like they do for
symbol table sections, for example. That should allow to write all kind of
possible broken test cases for our needs and keep the output closer to requested.
Differential revision: https://reviews.llvm.org/D65446
llvm-svn: 368272
Pavel Labath [Thu, 8 Aug 2019 09:43:20 +0000 (09:43 +0000)]
Add a missing include to SymbolFilePDBTests.cpp
This should _really_ fix the pdb unit tests.
llvm-svn: 368271
Shaurya Gupta [Thu, 8 Aug 2019 08:37:49 +0000 (08:37 +0000)]
[Extract] Fixed SemicolonExtractionPolicy for SwitchStmt and SwitchCase
Reviewers: arphaman, sammccall
Subscribers: dexonsmith, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65883
llvm-svn: 368267
Pavel Labath [Thu, 8 Aug 2019 08:27:25 +0000 (08:27 +0000)]
Remove xcode-specific Config.h
Summary:
Now that the xcode project is removed, we no longer need/use the
hand-maintained Config.h file, as everything is configured through
cmake.
This patch deletes that file and reverts some of the changes from
r300372, which were made to support this use case.
Reviewers: sgraenitz, beanz
Subscribers: mgorny, lldb-commits
Differential Revision: https://reviews.llvm.org/D65862
llvm-svn: 368266
Pavel Labath [Thu, 8 Aug 2019 08:22:26 +0000 (08:22 +0000)]
Fix PDB unit tests for the GetSymbolVendor deletion
llvm-svn: 368265
Sam Tebbs [Thu, 8 Aug 2019 08:21:01 +0000 (08:21 +0000)]
[ARM] Select VFMA
llvm-svn: 368264
Pavel Labath [Thu, 8 Aug 2019 07:34:07 +0000 (07:34 +0000)]
Remove Module::GetSymbolVendor
Summary:
This patch removes the GetSymbolVendor function, and the various
mentions of the SymbolVendor in the Module class. The implementation of
GetSymbolVendor is "inlined" into the GetSymbolFile class which I
created earlier.
After this patch, the SymbolVendor class still exists inside the Module
object, but only as an implementation detail -- a fancy holder for the
SymbolFile. That will be removed in the next patch.
Reviewers: clayborg, JDevlieghere, jingham, jdoerfert
Subscribers: jfb, lldb-commits
Differential Revision: https://reviews.llvm.org/D65864
llvm-svn: 368263
George Rimar [Thu, 8 Aug 2019 07:29:07 +0000 (07:29 +0000)]
[ELF] - An attemp to fix builld bit after r368260
BB: http://lab.llvm.org:8011/builders/lld-perf-testsuite/builds/17577/steps/build-bin%2Flld/logs/stdio
The error is:
/home/buildslave/slave_as-bldslv8/lld-perf-testsuite/llvm/include/llvm/Object/ELF.h:67:14:
error: 'static' function 'defaultWarningHandler' declared in header file should be declared 'static inline' [-Werror,-Wunneeded-internal-declaration]
static Error defaultWarningHandler(const Twine &Msg) { return createError(Msg); }
^
llvm-svn: 368262
Johan Vikstrom [Thu, 8 Aug 2019 07:21:06 +0000 (07:21 +0000)]
[clangd] Fix implicit template instatiations appearing as topLevelDecls.
Summary: The parser gives implicit template instantiations to the action's HandleTopLevelDecls callback. This makes semantic highlighting highlight these templated functions multiple times. Fixed by filtering on if a Decl is an implicit function/variable/class instantiation. Also added a testcase to semantic highlighting on this.
Reviewers: hokein, ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65510
llvm-svn: 368261
George Rimar [Thu, 8 Aug 2019 07:17:35 +0000 (07:17 +0000)]
[llvm-readobj/libObject] - Introduce a custom warning handler for `ELFFile<ELFT>` methods.
Currently, we have a code duplication in llvm-readobj which was introduced in D63266.
The duplication was introduced to allow llvm-readobj to dump the partially
broken object. Methods in ELFFile<ELFT> perform a strict validation of the inputs,
what is itself good, but not for dumper tools, that might want to dump the information,
even if some pieces are broken/unexpected.
This patch introduces a warning handler which can be passed to ELFFile<ELFT> methods
and can allow skipping the non-critical errors when needed/possible.
For demonstration, I removed the duplication from llvm-readobj and implemented a warning using
the new custom warning handler. It also deduplicates the strings printed, making the output less verbose.
Differential revision: https://reviews.llvm.org/D65515
llvm-svn: 368260
Rui Ueyama [Thu, 8 Aug 2019 07:04:01 +0000 (07:04 +0000)]
[diagtool] Use `operator<<(Colors)` to print out colored output.
r368131 introduced this new API to print out messages in colors.
If the colored output is disabled, `operator<<(Colors)` becomes nop.
No functionality change intended.
Differential Revision: https://reviews.llvm.org/D65854
llvm-svn: 368259
Craig Topper [Thu, 8 Aug 2019 06:48:22 +0000 (06:48 +0000)]
[X86] Remove -x86-experimental-vector-widening-legalization command line option and all its uses.
This option is now defaulted to true and we don't want to support
turning it off so remove the option.
llvm-svn: 368258
David Green [Thu, 8 Aug 2019 06:22:03 +0000 (06:22 +0000)]
[ARM] Tighten up VLDRH.32 with low alignments
VLDRH needs to have an alignment of at least 2, including the
widening/narrowing versions. This tightens up the ISel patterns for it and
alters allowsMisalignedMemoryAccesses so that unaligned accesses are expanded
through the stack. It also fixed some incorrect shift amounts, which seemed to
be passing a multiple not a shift.
Differential Revision: https://reviews.llvm.org/D65580
llvm-svn: 368256
David Green [Thu, 8 Aug 2019 05:58:48 +0000 (05:58 +0000)]
[ARM] Rejig MVE load store tests. NFC
This adjusts the load/store tests for better testing of alignments. It also
adds some extra alignment 1 tests, useful for future commits.
llvm-svn: 368255
JF Bastien [Thu, 8 Aug 2019 05:47:59 +0000 (05:47 +0000)]
Revert "Temporarily bump minimum compiler version"
It's been in for more than 30 min and no bots have complained. Let's see if some
slow ones catch up. I'll do another manual pass on bots later (in case some that
were down are back up), and then turn this on permanently through a regular
review.
llvm-svn: 368253
JF Bastien [Thu, 8 Aug 2019 05:12:20 +0000 (05:12 +0000)]
Temporarily bump minimum compiler version
It's pretty hard to find a reliable list of which bots use which compiler version... so I'm going to commit this change which allows us to mandate the compilers required for C++14. This bump is what we've already agreed to do, so I'll use the list of failures to figure out which bots need to bump their compiler version. I'll revert the change in a few minutes.
The last discussion of this is here: http://lists.llvm.org/pipermail/llvm-dev/2019-August/134360.html
llvm-svn: 368252
Fangrui Song [Thu, 8 Aug 2019 04:56:21 +0000 (04:56 +0000)]
[Driver] Delete XFAIL: windows-msvc after D65880/r368245
`-target %itanium_abi_triple` fixed the problem.
llvm-svn: 368251
Craig Topper [Thu, 8 Aug 2019 04:40:59 +0000 (04:40 +0000)]
[X86] Add CMOV_FR32X and CMOV_FR64X to the isCMOVPseudo function.
llvm-svn: 368250
Davide Italiano [Thu, 8 Aug 2019 03:15:48 +0000 (03:15 +0000)]
[Materializer] Remove wrong SetSizeAndAlignmentFromType().
This function is unused. It's also wrong, because it computes
the size and the alignment of the type without asking the runtime,
so it doesn't work for any language that has one (e.g. swift).
One could consider re-implementing this passing an execution scope
context, and modifying GetTypeBitAlign() to do the right thing,
but given there are no uses, it's not really useful.
llvm-svn: 368249
Aditya Nandakumar [Thu, 8 Aug 2019 02:24:57 +0000 (02:24 +0000)]
[GISel][NFC]: Make members of CombinerHelper accessible in derived classes
https://reviews.llvm.org/D65842
Make some members protected to enable access in derived classes.
llvm-svn: 368248
Kamil Rytarowski [Thu, 8 Aug 2019 02:21:44 +0000 (02:21 +0000)]
Sync ioctl(2) list with NetBSD 9.99.3
Register 36 new ioctl(2) calls.
Enable NVMM for amd64 as the API has been stabilized.
llvm-svn: 368247
Kamil Rytarowski [Thu, 8 Aug 2019 02:08:23 +0000 (02:08 +0000)]
Update generate_netbsd_ioctls.awk for NetBSD 9.99.3
Register new ioctl argument types passed in ioctl(2) calls.
llvm-svn: 368246
Fangrui Song [Thu, 8 Aug 2019 01:55:27 +0000 (01:55 +0000)]
[Driver] Move LIBRARY_PATH before user inputs
Fixes PR16786
Currently, library paths specified by LIBRARY_PATH are placed after inputs: `inputs LIBRARY_PATH stdlib`
In gcc, the order is: `LIBRARY_PATH inputs stdlib` if not cross compiling.
(On Darwin targets, isCrossCompiling() always returns false.)
This patch changes the behavior to match gcc.
Reviewed By: hfinkel
Differential Revision: https://reviews.llvm.org/D65880
llvm-svn: 368245
Richard Trieu [Thu, 8 Aug 2019 01:45:31 +0000 (01:45 +0000)]
Inline diagnostic text into .td file. NFC.
llvm-svn: 368244
Jonas Devlieghere [Thu, 8 Aug 2019 01:44:03 +0000 (01:44 +0000)]
[Utility] Remove unused function 'GetMatchSpanningIndices'
llvm-svn: 368243
Douglas Yung [Thu, 8 Aug 2019 01:08:22 +0000 (01:08 +0000)]
Add LLD as a requirement for hwasan tests because of change in r368111.
llvm-svn: 368242
Wolfgang Pieb [Thu, 8 Aug 2019 00:35:16 +0000 (00:35 +0000)]
[llvm-strip] Support --strip-sections
llvm-objcopy already supports --strip-sections. It is a good fit for its alias llvm-strip
to support it as well.
Reviewers: rupprecht, jhenderson
Differential Revision: https://reviews.llvm.org/D65787
llvm-svn: 368241
Louis Dionne [Thu, 8 Aug 2019 00:28:06 +0000 (00:28 +0000)]
Revert "[libc++] Take 3: Do not cleverly link against libc++abi just because it happens to be there"
This also reverts "[libc++] Remove temporary hack for D63883".
Clearly, I don't understand how the Linux build bots are configured.
Differential Revision: https://reviews.llvm.org/D63883
llvm-svn: 368238
Richard Trieu [Thu, 8 Aug 2019 00:12:51 +0000 (00:12 +0000)]
Update fix-it hints for std::move warnings.
Fix -Wpessimizing-move and -Wredundant-move when warning on initializer lists.
The new fix-it hints for removing the std::move call will now also suggest
removing the braces for the initializer list so that the resulting code will
still be compilable.
This fixes PR42832
llvm-svn: 368237
Anusha Basana [Wed, 7 Aug 2019 23:25:12 +0000 (23:25 +0000)]
[llvm-lipo] Update llvm-lipo docs for -info -thin -create -replace -segalign flags
Summary:
The information for -info -thin -create -replace and -segalign flags are added to llvm-lipo.rst
Test Plan:
Reviewers: smeenai, alexshap, compnerd, mtrent
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65676
llvm-svn: 368235
Craig Topper [Wed, 7 Aug 2019 23:16:29 +0000 (23:16 +0000)]
[ScalarizeMaskedMemIntrin] Add test case for expanding scatter.
This pass expands 6 intrinsics, but we only had test for 5 of
them.
llvm-svn: 368234
Jonas Devlieghere [Wed, 7 Aug 2019 23:12:40 +0000 (23:12 +0000)]
[Docs] Fix (incorrect) code highlighting
llvm-svn: 368233
Amy Huang [Wed, 7 Aug 2019 22:49:40 +0000 (22:49 +0000)]
Recommit "[MS] Emit S_HEAPALLOCSITE debug info in Selection DAG"
with a fix to clear the SDNode map when SelectionDAG is cleared.
llvm-svn: 368230
David Blaikie [Wed, 7 Aug 2019 22:49:14 +0000 (22:49 +0000)]
gdb-index: Wire up str_offsets section to avoid incorrect error message about offsets_base
There's still a need for a deeper fix to the way libDebugInfoDWARF error
messages are propagated up to lld - if lld had exited non-zero on this
error message we would've found the issue sooner.
llvm-svn: 368229
Johannes Doerfert [Wed, 7 Aug 2019 22:49:06 +0000 (22:49 +0000)]
[Attributor][NFC] remove leftover and format code
llvm-svn: 368228
Johannes Doerfert [Wed, 7 Aug 2019 22:46:11 +0000 (22:46 +0000)]
[Attributor][Stats] Locate statistics tracking with the attributes
Summary:
The ever growing switch required Attribute::AttrKind values but they
might not be available for all abstract attributes we deduce. With the
new method we track statistics at the abstract attribute level. The
provided macros simplify the usage and make the messages uniform.
Reviewers: sstefan1, uenoku
Subscribers: hiraditya, bollu, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65732
llvm-svn: 368227
Adrian Prantl [Wed, 7 Aug 2019 22:40:05 +0000 (22:40 +0000)]
Adjust a ValueObjectChild's offset when the child is a bitfield
If a bitfield doesn't fit into the child_byte_size'd window at
child_byte_offset, move the window forward until it fits. The problem
here is that Value has no notion of bitfields and thus the Value's
DataExtractor is sized like the bitfields CompilerType; a sequence of
bitfields, however, can be larger than their underlying type.
This was not in the big-endian-derived DWARF 2 bitfield attributes
because their offsets were counted from the end of the window, so they
always fit.
rdar://problem/
53132189
Differential Revision: https://reviews.llvm.org/D65492
llvm-svn: 368226
Johannes Doerfert [Wed, 7 Aug 2019 22:36:15 +0000 (22:36 +0000)]
[Attributor][NFC] Code simplification and style normalization
llvm-svn: 368225
Johannes Doerfert [Wed, 7 Aug 2019 22:34:26 +0000 (22:34 +0000)]
[Attributor] Introduce a state wrapper class
Summary:
The wrapper reduces boilerplate code and also provide a nice way to
determine the state type used by an abstract attributes statically via
AAType::StateType.
This was already discussed as part of the review of D65711.
Reviewers: sstefan1, uenoku
Subscribers: hiraditya, bollu, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65786
llvm-svn: 368224
Johannes Doerfert [Wed, 7 Aug 2019 22:32:38 +0000 (22:32 +0000)]
[Attributor][NFC] Avoid unnecessary liveness queries
If we know everything is live there is no need to query for liveness.
Indicating a pessimistic fixpoint will cause the state to be "invalid"
which will cause the Attributor to not return the AAIsDead on request,
which will prevent us from querying isAssumedDead().
llvm-svn: 368223
Johannes Doerfert [Wed, 7 Aug 2019 22:27:24 +0000 (22:27 +0000)]
[Attributor] Provide easier checkForallReturnedValues functionality
Summary:
So far, whenever one wants to look at returned values, one had to deal
with the AAReturnedValues and potentially with the AAIsDead attribute.
In the same spirit as other checkForAllXXX methods, we add this
functionality now to the Attributor. By adopting the use sites we got
better results when return instructions were dead.
Reviewers: sstefan1, uenoku
Subscribers: hiraditya, bollu, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65733
llvm-svn: 368222
Jordan Rupprecht [Wed, 7 Aug 2019 22:21:49 +0000 (22:21 +0000)]
[llvm-readobj][test] Add baseline tests for FreeBSD/AMD/AMDGPU note printing
llvm-svn: 368221
David Blaikie [Wed, 7 Aug 2019 22:05:33 +0000 (22:05 +0000)]
Add a test demonstrating DWARF parse failures are not causing lld to exit non-zero
This bug was/is masking other issues - committing this to demonstrate
the problem/track fixing it.
llvm-svn: 368220
Kamil Rytarowski [Wed, 7 Aug 2019 21:56:43 +0000 (21:56 +0000)]
Restrict the NetBSD ASan TSD fallback to !ASAN_DYNAMIC
The fallback to the alternative implementation of TSD with TLS
is only needed for the static version of ASan for NetBSD.
The same code cannot be reused for the dynamic version of ASan as
TLS breaks and TSD code works.
llvm-svn: 368219
Mitch Phillips [Wed, 7 Aug 2019 21:56:21 +0000 (21:56 +0000)]
[HWASan] Use LLD for check-hwasan.
HWASan+globals build fix in rL368111 unfortunately didn't fix the
problem when clang_cflags specified -fuse-ld=ld.gold. Change the order
to force lld in an attempt to fix the Android sanitizer bot.
llvm-svn: 368218