platform/upstream/llvm.git
4 years ago[AArch64][SVE] Add some integer DestructiveBinaryComm* patterns
Cameron McInally [Thu, 14 May 2020 21:07:59 +0000 (16:07 -0500)]
[AArch64][SVE] Add some integer DestructiveBinaryComm* patterns

Add DestructiveBinaryComm* patterns for ADD, SUB, and SUBR.

Differential Revision: https://reviews.llvm.org/D76711

4 years agoAdd v16f64 value type
Stanislav Mekhanoshin [Wed, 13 May 2020 23:20:45 +0000 (16:20 -0700)]
Add v16f64 value type

We need to use it to handle <16 x double> indirect indexes
in the AMDGPU BE.

The only visible change from adding it is in ARM cost model.
To me it looks reasonable. With doubling a vector size it
quadruples the cost up to the size 8 and then it did only
double it. Now it also quadruples, which seems a logical
progression to me.

Actual AMDGPU code is to follow, this is a common part, plus
load/store legalization in the AMDGPU BE not to break what
works now.

Differential Revision: https://reviews.llvm.org/D79952

4 years ago[gn build] Port 2b7fe0863ac
LLVM GN Syncbot [Thu, 14 May 2020 21:21:41 +0000 (21:21 +0000)]
[gn build] Port 2b7fe0863ac

4 years agoRevert "[lldb] Don't dissasemble large functions by default"
shafik [Thu, 14 May 2020 21:15:51 +0000 (14:15 -0700)]
Revert "[lldb] Don't dissasemble large functions by default"

This reverts commit f665e80c023ec52557f55d7eeaf34471e4c6fa0d.

Reverting because it breaks TestFoundationDisassembly.py

4 years ago[clang][Preprocessor] Replace the slow translateFile call by a new, faster isMainFile...
Alex Lorenz [Thu, 14 May 2020 21:11:31 +0000 (14:11 -0700)]
[clang][Preprocessor] Replace the slow translateFile call by a new, faster isMainFile check

The commit 3c28a2dc6bdc331e5a0d8097a5fa59d06682b9d0 introduced the check that checks if we're
trying to re-enter a main file when building a preamble. Unfortunately this slowed down the preamble
compilation by 80-90% in some test cases, as translateFile is really slow. This change checks
to see if the FileEntry is the main file without calling translateFile, but by using the new
isMainFile check instead. This speeds up preamble building by 1.5-2x for certain test cases that we have.

rdar://59361291

Differential Revision: https://reviews.llvm.org/D79834

4 years agoFix clang test failures from D77454
Eli Friedman [Thu, 14 May 2020 21:10:06 +0000 (14:10 -0700)]
Fix clang test failures from D77454

4 years ago[llvm-profdata] Update CommandGuide
Wei Mi [Wed, 13 May 2020 22:11:49 +0000 (15:11 -0700)]
[llvm-profdata] Update CommandGuide

Add a bunch of SampleFDO related flags added recently into llvm-profdata to
its command guide.

Differential Revision: https://reviews.llvm.org/D79911

4 years ago[MLIR] Add symbol map to mlir ExecutionEngine
Eugene Zhulenev [Thu, 14 May 2020 20:29:53 +0000 (22:29 +0200)]
[MLIR] Add symbol map to mlir ExecutionEngine

Add additional symbol mapping to be able to provide custom symbols to jitted code at runtime.

Differential Revision: https://reviews.llvm.org/D79812

4 years ago[mlir][Affine] Introduce affine.vector_load and affine.vector_store
Diego Caballero [Thu, 14 May 2020 19:05:46 +0000 (12:05 -0700)]
[mlir][Affine] Introduce affine.vector_load and affine.vector_store

This patch adds `affine.vector_load` and `affine.vector_store` ops to
the Affine dialect and lowers them to `vector.transfer_read` and
`vector.transfer_write`, respectively, in the Vector dialect.

Reviewed By: bondhugula, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D79658

4 years agoLoadInst should store Align, not MaybeAlign.
Eli Friedman [Sat, 4 Apr 2020 04:56:20 +0000 (21:56 -0700)]
LoadInst should store Align, not MaybeAlign.

The fact that loads and stores can have the alignment missing is a
constant source of confusion: code that usually works can break down in
rare cases.  So fix the LoadInst API so the alignment is never missing.

To reduce the number of changes required to make this work, IRBuilder
and certain LoadInst constructors will grab the module's datalayout and
compute the alignment automatically.  This is the same alignment
instcombine would eventually apply anyway; we're just doing it earlier.
There's a minor risk that the way we're retrieving the datalayout
could break out-of-tree code, but I don't think that's likely.

This is the last in a series of patches, so most of the necessary
changes have already been merged.

Differential Revision: https://reviews.llvm.org/D77454

4 years ago[WebAssembly] Added Debug Fixup pass
Wouter van Oortmerssen [Thu, 30 Apr 2020 18:41:39 +0000 (11:41 -0700)]
[WebAssembly] Added Debug Fixup pass

This pass changes debug_value instructions referring to stackified registers into TI_OPERAND_STACK with correct stack depth.

4 years ago [lldb] Update stop info override callback comment.
Ryan Mansfield [Thu, 14 May 2020 20:08:01 +0000 (13:08 -0700)]
 [lldb] Update stop info override callback comment.

In D31172 GetStopInfoOverrideCallback was moved and renamed.

Differential revision: https://reviews.llvm.org/D79953

4 years ago[lldb/Test] Skip test using files to synchronize.
Jonas Devlieghere [Thu, 14 May 2020 19:27:26 +0000 (12:27 -0700)]
[lldb/Test] Skip test using files to synchronize.

Files written by the inferior are not captured by the reproducers and
the inferior doesn't actually run during replay.

4 years agoInfer alignment of unmarked loads in IR/bitcode parsing.
Eli Friedman [Thu, 14 May 2020 19:59:45 +0000 (12:59 -0700)]
Infer alignment of unmarked loads in IR/bitcode parsing.

For IR generated by a compiler, this is really simple: you just take the
datalayout from the beginning of the file, and apply it to all the IR
later in the file. For optimization testcases that don't care about the
datalayout, this is also really simple: we just use the default
datalayout.

The complexity here comes from the fact that some LLVM tools allow
overriding the datalayout: some tools have an explicit flag for this,
some tools will infer a datalayout based on the code generation target.
Supporting this properly required plumbing through a bunch of new
machinery: we want to allow overriding the datalayout after the
datalayout is parsed from the file, but before we use any information
from it. Therefore, IR/bitcode parsing now has a callback to allow tools
to compute the datalayout at the appropriate time.

Not sure if I covered all the LLVM tools that want to use the callback.
(clang? lli? Misc IR manipulation tools like llvm-link?). But this is at
least enough for all the LLVM regression tests, and IR without a
datalayout is not something frontends should generate.

This change had some sort of weird effects for certain CodeGen
regression tests: if the datalayout is overridden with a datalayout with
a different program or stack address space, we now parse IR based on the
overridden datalayout, instead of the one written in the file (or the
default one, if none is specified). This broke a few AVR tests, and one
AMDGPU test.

Outside the CodeGen tests I mentioned, the test changes are all just
fixing CHECK lines and moving around datalayout lines in weird places.

Differential Revision: https://reviews.llvm.org/D78403

4 years ago[lld] Add archive file support to Mach-O backend
Kellie Medlin [Thu, 14 May 2020 19:43:51 +0000 (12:43 -0700)]
[lld] Add archive file support to Mach-O backend

With this change, basic archive files can be linked together. Input
section discovery has been refactored into a function since archive
files lazily resolve their symbols / the object files containing those
symbols.

Reviewed By: int3, smeenai

Differential Revision: https://reviews.llvm.org/D78342

4 years ago[SVE] Remove usages of VectorType::getNumElements() from SystemZ
Christopher Tetreault [Thu, 14 May 2020 19:39:23 +0000 (12:39 -0700)]
[SVE] Remove usages of VectorType::getNumElements() from SystemZ

Reviewers: efriedma, david-arm, c-rhodes, jnspaulsson

Reviewed By: david-arm

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79824

4 years ago[BitcodeReader] datalayout must be specified before it is queried.
Eli Friedman [Wed, 13 May 2020 18:44:03 +0000 (11:44 -0700)]
[BitcodeReader] datalayout must be specified before it is queried.

This isn't really a new invariant; it effectively already existed due to
existing DataLayout queries.  But this makes it explicit.

This is technically not backward-compatible with the existing bitcode
reader, but it's backward-compatible with the output of the bitcode
writer, which is what matters in practice.

No testcase because I don't know a good way to write one: there are no
existing tools that can generate a bitcode file that would trigger the
error.

Split off from D78403.

Differential Revision: https://reviews.llvm.org/D79900

4 years ago[ObjC] Add compatibility mode for type checking of qualified id block parameters.
Volodymyr Sapsai [Wed, 6 May 2020 01:51:28 +0000 (18:51 -0700)]
[ObjC] Add compatibility mode for type checking of qualified id block parameters.

Commit 73152a2ec20766ac45673a129bf1f5fc97ca9bbe fixed type checking for
blocks with qualified id parameters. But there are existing APIs in
Apple SDKs relying on the old type checking behavior. Specifically,
these are APIs using NSItemProviderCompletionHandler in
Foundation/NSItemProvider.h. To keep existing code working and to allow
developers to use affected APIs introduce a compatibility mode that
enables the previous and the fixed type checking. This mode is enabled
only on Darwin platforms.

Reviewed By: jyknight, ahatanak

Differential Revision: https://reviews.llvm.org/D79511

4 years ago[libcxx] [NFC] Add more reinterpret_pointer_cast tests.
zoecarver [Thu, 14 May 2020 19:01:55 +0000 (12:01 -0700)]
[libcxx] [NFC] Add more reinterpret_pointer_cast tests.

 * Add test for inheritance.
 * Test value is preserved through cast.

4 years ago[StringSet] Simplify code a bit. NFC.
Benjamin Kramer [Thu, 14 May 2020 18:56:49 +0000 (20:56 +0200)]
[StringSet] Simplify code a bit. NFC.

4 years ago[COFF] Fix var names cVStrTab->cvStrTab sXDataChunks->sxDataChunks
Reid Kleckner [Thu, 14 May 2020 18:21:53 +0000 (11:21 -0700)]
[COFF] Fix var names cVStrTab->cvStrTab sXDataChunks->sxDataChunks

NFC

4 years ago[gn build] Port 42a55605034
LLVM GN Syncbot [Thu, 14 May 2020 17:59:56 +0000 (17:59 +0000)]
[gn build] Port 42a55605034

4 years ago[X86] Add support for forming vXi16 PMULH instructions from shifts.
Craig Topper [Thu, 14 May 2020 17:35:29 +0000 (10:35 -0700)]
[X86] Add support for forming vXi16 PMULH instructions from shifts.

We already form PMULH when the shift is truncated. But we can
also do it from just a shift by extending the result.

Unfortunately, I get regressions if I try to replace the truncate
combine with this as we turn the truncate into a more complicated
sequence first. Then we are unable to combine that sequence with
the extend produced at the end of this combine.

Differential Revision: https://reviews.llvm.org/D79682

4 years ago[AMDGPU] New SIInsertHardClauses pass
Jay Foad [Fri, 1 May 2020 15:43:12 +0000 (16:43 +0100)]
[AMDGPU] New SIInsertHardClauses pass

Enable clausing of memory loads on gfx10 by adding a new pass to insert
the s_clause instructions that mark the start of each hard clause.

Differential Revision: https://reviews.llvm.org/D79792

4 years ago[mlir] Adopt changes in mlir-opt to standalone example
Marius Brehler [Thu, 14 May 2020 17:49:44 +0000 (17:49 +0000)]
[mlir] Adopt changes in mlir-opt to standalone example

 MLIRContext was moved with commit 6bce7d8

Differential Revision: https://reviews.llvm.org/D79946

4 years ago[lldb/Test] Skip remaining 'side_effect' tests with reproducers.
Jonas Devlieghere [Thu, 14 May 2020 17:37:50 +0000 (10:37 -0700)]
[lldb/Test] Skip remaining 'side_effect' tests with reproducers.

The side_effect Python package bypasses the reproducer instrumentation
and therefore these tests are not expected to replay from a reproducer.

4 years ago[lldb/Test] Skip TestExpressionInSyscall with reproducers
Jonas Devlieghere [Wed, 13 May 2020 20:48:41 +0000 (13:48 -0700)]
[lldb/Test] Skip TestExpressionInSyscall with reproducers

Skip this test because it relies on a timeout.

4 years ago[Driver] Pass -plugin-opt=O2 for -Os -Oz and -plugin-opt=O1 for -Og
Fangrui Song [Thu, 14 May 2020 00:16:54 +0000 (17:16 -0700)]
[Driver] Pass -plugin-opt=O2 for -Os -Oz and -plugin-opt=O1 for -Og

Fixes PR42445 (compiler driver options -Os -Oz translate to
-plugin-opt=Os (Oz) which are not recognized by LLVMgold.so or LLD).

The optimization level mapping matches
CompilerInvocation.cpp:getOptimizationLevel() and SpeedLevel of
PassBuilder::OptimizationLevel::O*.

-plugin-opt=O* affects the way we construct regular LTO/ThinLTO pass
manager pipeline.

Reviewed By: pcc

Differential Revision: https://reviews.llvm.org/D79919

4 years ago[LLD] Fix precomp-link.test
Reid Kleckner [Thu, 14 May 2020 17:31:40 +0000 (10:31 -0700)]
[LLD] Fix precomp-link.test

I had a stale directory at %t, so the test passed locally, but not
remotely. Skip the %t directory altogether.

4 years ago[X86] Fix a regression caused by moving combineLoopMAddPattern to IR
Craig Topper [Thu, 14 May 2020 17:06:07 +0000 (10:06 -0700)]
[X86] Fix a regression caused by moving combineLoopMAddPattern to IR

When I moved combineLoopMAddPattern to an IR pass. I didn't match the behavior of canReduceVMulWidth that was used in the SelectionDAG version. canReduceVMulWidth just calls computeSignBits and assumes a truncate is always profitable. The version I put in IR just looks for constants and zext/sext. Though I neglected to check the number of bits in input of the zext/sext.

This patch adds a check for the number of input bits to the sext/zext. And it adds a special case for add/sub with zext/sext inputs which can be handled by combineTruncatedArithmetic. Match the original SelectionDAG behavior appears to be a regression in some cases if the truncate isn't removed and becomes pack and permq. So enabling only this specific case is the conservative approach.

Differential Revision: https://reviews.llvm.org/D79909

4 years agoTargetLowering.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling...
Simon Pilgrim [Thu, 14 May 2020 12:35:08 +0000 (13:35 +0100)]
TargetLowering.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC.

Now that D79814 has landed, we can assume that subvector ops use constant, in-range indices.

4 years ago[test] NFC, add missing declarations and include to test files to avoid 'implicit...
Alex Lorenz [Wed, 13 May 2020 20:08:42 +0000 (13:08 -0700)]
[test] NFC, add missing declarations and include to test files to avoid 'implicit-function-declaration' diagnostics in the tests

4 years agohwasan: Collect ring buffer statistics and include in dev note.
Peter Collingbourne [Wed, 13 May 2020 23:38:31 +0000 (16:38 -0700)]
hwasan: Collect ring buffer statistics and include in dev note.

These statistics are intended to help us tune the scudo MTE
implementation.

Differential Revision: https://reviews.llvm.org/D79913

4 years ago[COFF] Move type merging to TpiSource::mergeDebugT virtual method
Reid Kleckner [Sat, 9 May 2020 13:58:15 +0000 (06:58 -0700)]
[COFF] Move type merging to TpiSource::mergeDebugT virtual method

This paves the way to doing more things in parallel, and allows us to
order type sources in dependency order. PDBs and PCH objects have to be
loaded before object files which use them.

This is a rebase of the unapplied remaining changes in
https://reviews.llvm.org/D59226. I found it very challenging to rebase
this across the LLD variable name style change. I recall there was a
tool for that, but I didn't take the time to use it.

Reviewers: aganea, akhuang

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79672

4 years agoAMDGPU/OpenCL: Accept -nostdlib in place of -nogpulib
Matt Arsenault [Wed, 6 May 2020 16:05:16 +0000 (12:05 -0400)]
AMDGPU/OpenCL: Accept -nostdlib in place of -nogpulib

-nogpulib makes sense when there is a host (where -nostdlib would
 apply) and offload target. Accept nostdlib when there is no offload
 target as an alias.

4 years agoRe-commit: [ARM] CMSE code generation
Momchil Velikov [Thu, 14 May 2020 15:43:20 +0000 (16:43 +0100)]
Re-commit: [ARM] CMSE code generation

This patch implements the final bits of CMSE code generation:

* emit special linker symbols

* restrict parameter passing to no use memory

* emit BXNS and BLXNS instructions for returns from non-secure entry
  functions, and non-secure function calls, respectively

* emit code to save/restore secure floating-point state around calls
  to non-secure functions

* emit code to save/restore non-secure floating-pointy state upon
  entry to non-secure entry function, and return to non-secure state

* emit code to clobber registers not used for arguments and returns

* when switching to no-secure state

Patch by Momchil Velikov, Bradley Smith, Javed Absar, David Green,
possibly others.

Differential Revision: https://reviews.llvm.org/D76518

4 years ago[TargetLowering] Improve expansion of FSHL/FSHR
Jay Foad [Thu, 2 Apr 2020 10:36:01 +0000 (11:36 +0100)]
[TargetLowering] Improve expansion of FSHL/FSHR

Use an extra shift-by-1 instead of a compare and select to handle the
shift-by-zero case. This sometimes saves one instruction (if the compare
couldn't be combined with a previous instruction). It also works better
on targets that don't have good select instructions.

Note that currently this change doesn't affect most targets because
expandFunnelShift is not used because funnel shift intrinsics are
lowered early in SelectionDAGBuilder. But there is work afoot to change
that; see D77152.

Differential Revision: https://reviews.llvm.org/D77301

4 years agoFix test from 5f1f4a5
Erich Keane [Thu, 14 May 2020 15:21:03 +0000 (08:21 -0700)]
Fix test from 5f1f4a5

My test needs a requires target clause to support inline assembly.  This
patch splits out the asm tests into a separate test so we don't skip the
rest of the conditions.

4 years ago[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer""
Anna Thomas [Thu, 14 May 2020 14:17:12 +0000 (10:17 -0400)]
[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer""

This is relanding of rGbb308b020522420413c7d3f2989a88f2fc423c56 after
speculatively fixing buildbot lit test failure which was seen on two
bots (I cannot reproduce the lit test failure locally either).

[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived
pointer

Summary:
This is a more general fix to 59029b9eef23 (D75704).
This patch does the following:

updates isKnownBaseValue to account for base pointer and
derived pointer having differing types.

This inturn allows us to populate the
lattice (States) for such derived pointers.

It also updates all states where the base and derived pointers have
differing types (vector versus scalar) and conservatively marks these
states as conflictcs.
Note that in 59029b9eef23, we were just fixing existing lattice values
and that too, only for uses of extractelement.

Reviewers: reames, skatkov, dantrushin

Reviewed By: skatkov

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D76305

4 years ago[Support] Make UniqueStringSaver wrap a StringSet
Benjamin Kramer [Thu, 14 May 2020 15:11:44 +0000 (17:11 +0200)]
[Support] Make UniqueStringSaver wrap a StringSet

This is slightly more efficient while providing exactly the same
semantics.

4 years agoRevert "[StructurizeCFG] Fix region nodes ordering"
Ehud Katz [Thu, 14 May 2020 14:56:39 +0000 (17:56 +0300)]
Revert "[StructurizeCFG] Fix region nodes ordering"

This reverts commit 897d8ee5cd693e17f95a7e84194bca4c089a520b,
due to causing an infinite loop when encountering a loop with
a sub-region with an inner loop.

4 years agoMoving executable module symbols parsing to target creation method.
Levon Ter-Grigoryan [Thu, 14 May 2020 14:05:40 +0000 (16:05 +0200)]
Moving executable module symbols parsing to target creation method.

Summary:
In our project we are using remote client-server LLDB configuration.
We want to parse as much debugging symbols as we can before debugger starts attachment to the remote process.
To do that we are passing the path of the local executable module to CreateTarget method at the client.
But, it seems that this method are not parsing the executable module symbols.
To fix this I added PreloadSymbols call for executable module to target creation method.

This patch also fixes a problem where the DynamicLoader would reset a
module when launching the target. We fix it by making sure
Platform::ResolveExecutable returns the module object obtained from the
remote platform.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D78654

4 years ago[libcxx][span] Implement solution to LWG-3255
Michael Schellenberger Costa [Thu, 14 May 2020 14:50:03 +0000 (10:50 -0400)]
[libcxx][span] Implement solution to LWG-3255

This implements the relaxed requirements on the std::array constructors of span,
where the type only needs to be convertible to the element type of the span.

Note that the previous tests were not sufficient, as the const array<T, n> constructor
was only tested for compile time and the array<T, N> only during runtime.

Restructure the tests so that we can test conversions as well as both constructors.

Differential Revision: https://reviews.llvm.org/D75706

4 years ago[PowerPC] Remove support for SplitCSR.
Sean Fertile [Thu, 14 May 2020 14:31:01 +0000 (10:31 -0400)]
[PowerPC] Remove support for SplitCSR.

SplitCSR was only suppored for functions with CXX_FAST_TLS calling
convention. Clang only emits that calling convention for Darwin which is
no longer supported by the PowerPC backend. Another IR producer could
use the calling convention, but considering the calling convention is
meant to be an optimization and the codegen for SplitCSR can be
attrocious on Power (see the modifed lit test) it is best to remove it
and codegen CXX_FAST_TLS same as the C calling convention.

Differential Revision: https://reviews.llvm.org/D79018

4 years agoProhibit capture of _ExtInt in inline assembly.
Erich Keane [Wed, 13 May 2020 20:24:03 +0000 (13:24 -0700)]
Prohibit capture of _ExtInt in inline assembly.

The backends don't seem to properly handle the _ExtInt type in inline
assembly with crashes occurring in many. While the ones I tested seem to
work for powers of 2 < 64 (and some any multiple of 64 greater than
that), it seemed like a better idea to just use of this type in inline
assembly prohibited.

4 years agoRevert "[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer"
Anna Thomas [Thu, 14 May 2020 14:16:25 +0000 (10:16 -0400)]
Revert "[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer"

This reverts commit bb308b020522420413c7d3f2989a88f2fc423c56.
Failing a testcase.

4 years ago[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer
Anna Thomas [Thu, 14 May 2020 13:15:57 +0000 (09:15 -0400)]
[RS4GC] Fix algorithm to avoid setting vector BDV for scalar derived pointer

Summary:
This is a more general fix to 59029b9eef23 (D75704).
This patch does the following:
1. updates isKnownBaseValue to account for base pointer and
derived pointer having differing types.
2. This inturn allows us to populate the
lattice (States) for such derived pointers.
3. It also updates all states where the base and derived pointers have
differing types (vector versus scalar) and conservatively marks these
states as conflictcs.
Note that in 59029b9eef23, we were just fixing existing lattice values
and that too, only for uses of extractelement.

Reviewers: reames, skatkov, dantrushin

Reviewed By: skatkov

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76305

4 years ago[lldb/PDB] Make "native" pdb tests host-independent
Pavel Labath [Thu, 14 May 2020 13:55:21 +0000 (15:55 +0200)]
[lldb/PDB] Make "native" pdb tests host-independent

These test don't execute the binaries they build, and so they don't need
to build for the host. By hardcoding the target, we don't have do xfail
or skip them for targets which don't have the appropriate support in
clang(-cl).

4 years agolld: Let find_package(LLD) work
Matt Arsenault [Sat, 2 May 2020 22:32:40 +0000 (18:32 -0400)]
lld: Let find_package(LLD) work

Install a cmake config file. Copied exactly from how clang exports.

I also wasn't sure whether the canonical capitalization is "lld" or
"LLD". The project() is still calling this lld, but most places seemed
to capitalize it.

4 years ago[analyzer] Improve PlacementNewChecker
Gabor Marton [Thu, 14 May 2020 13:49:07 +0000 (15:49 +0200)]
[analyzer] Improve PlacementNewChecker

Summary:
1. Added insufficient storage check for arrays
2. Added align support check

Based on https://reviews.llvm.org/D76229

Reviewers: aaron.ballman, lebedev.ri, NoQ, martong

Reviewed By: martong

Subscribers: xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D76996

Patch by Karasev Nikita!

4 years ago[Hexagon] Check isInstr() before getInstr() with SUnit
Xinglong Liao [Thu, 14 May 2020 13:38:25 +0000 (08:38 -0500)]
[Hexagon] Check isInstr() before getInstr() with SUnit

SUnit represent a MachineInstr in post-regalloc scheduling but SDNode
in pre-regalloc scheduling. when pass -enable-hexagon-sdnode-sched to
Hexagon backend with -O1 and above, this may cause an assertion failed.

Fixes PR45194.

Differential Revision: https://reviews.llvm.org/D76134

4 years agoFix Z3 function calls regarding arithmetic operations
Gabor Marton [Thu, 14 May 2020 13:44:20 +0000 (15:44 +0200)]
Fix Z3 function calls regarding arithmetic operations

Summary:
The order of Z3_mk_fpa_mul, Z3_mk_fpa_div, Z3_mk_fpa_add and Z3_mk_fpa_sub functions' arguments is: context, rounding_mode, ast1, ast2.
See for example: https://github.com/Z3Prover/z3/blob/a14c2a30516003cd1a60f8b7deca029033d11c78/src/api/api_fpa.cpp#L433

At function calls from LLVM the argument order was different: rounding_mode was passed as last argument.

Unfortunately these Z3_ast and other function parameter types are technically like void* which are reinterpret_cast-ed to a specific class type. So there was no type error, but the assertions fail in runtime if something goes wrong. Such a crash happened during Z3 refutation while using StaticAnalyzer.

Reviewers: Szelethus, xazax.hun, baloghadamsoftware, steakhal, martong, mikhail.ramalho

Reviewed By: martong

Subscribers: hiraditya, rnkovacs, mikhail.ramalho, martong, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79883

Patch by Tibor Brunner!

4 years ago[analyzer] StdLibraryFunctionsChecker: Add option to display loaded summaries
Gabor Marton [Tue, 14 Apr 2020 15:40:42 +0000 (17:40 +0200)]
[analyzer] StdLibraryFunctionsChecker: Add option to display loaded summaries

Reviewers: NoQ, Szelethus, baloghadamsoftware, balazske

Subscribers: whisperity, xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D78118

4 years ago[libc++][span] SFINAE span default constructor on Extent == 0
Michael Schellenberger Costa [Thu, 14 May 2020 13:28:27 +0000 (09:28 -0400)]
[libc++][span] SFINAE span default constructor on Extent == 0

The default constructor of a static span requires _Extent == 0 so
SFINAE it out rather than using a static_assert

Differential Revision: https://reviews.llvm.org/D71994

4 years ago[analyzer] Make NonNullParamChecker as dependency for StdCLibraryFunctionsChecker
Gabor Marton [Tue, 5 May 2020 14:37:10 +0000 (16:37 +0200)]
[analyzer] Make NonNullParamChecker as dependency for StdCLibraryFunctionsChecker

Summary:
If a given parameter in a FunctionDecl has a nonull attribute then the NonNull
constraint in StdCLibraryFunctionsChecker has the same effect as
NonNullParamChecker. I think it is better to emit diagnostics from the simpler
checker. By making NonNullParamChecker as a dependency, in these cases it will
be the first to emit a diagnostic and to stop the analysis on that path.

Reviewers: Szelethus, NoQ, baloghadamsoftware, balazske, steakhal

Subscribers: whisperity, xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79420

4 years ago[clang] Fix bug in #pragma float_control(push/pop)
Melanie Blower [Thu, 14 May 2020 12:56:35 +0000 (05:56 -0700)]
[clang] Fix bug in #pragma float_control(push/pop)

Summary: #pragma float_control(pop) was failing to restore the expected
floating point settings because the settings were not correctly preserved
at #pragma float_control(push).

4 years ago[analyzer] Modernize analyzer's Python scripts
Valeriy Savchenko [Thu, 14 May 2020 10:31:01 +0000 (13:31 +0300)]
[analyzer] Modernize analyzer's Python scripts

Summary:
Fix read/write in binary format, which crashes Python 3.
Additionally, clean up redundant (as for Python 3) code and
fix a handful of flake8 warnings.

Differential Revision: https://reviews.llvm.org/D79932

4 years ago[x86][CGP] improve sinking of splatted vector shift amount operand
Sanjay Patel [Thu, 14 May 2020 12:33:59 +0000 (08:33 -0400)]
[x86][CGP] improve sinking of splatted vector shift amount operand

Expands on the enablement of the shouldSinkOperands() TLI hook in:
D79718

The last codegen/IR test diff shows what I suspected could happen - we were
sinking all splat shift operands into a loop. But that's not what we want in
general; we only want to sink the *shift amount* operand if it is a splat.

Differential Revision: https://reviews.llvm.org/D79827

4 years ago[libcxx][span] Remove const_iterator from std::span
Michael Schellenberger Costa [Thu, 14 May 2020 12:27:13 +0000 (08:27 -0400)]
[libcxx][span] Remove const_iterator from std::span

This implements the resolution to LWG-3320.

Differential Revision: https://reviews.llvm.org/D75642

4 years ago[Analyzer][VLASizeChecker] Check VLA size in typedef and sizeof.
Balázs Kéri [Thu, 14 May 2020 07:48:15 +0000 (09:48 +0200)]
[Analyzer][VLASizeChecker] Check VLA size in typedef and sizeof.

Summary:
The check of VLA size was done previously for variable declarations
(of VLA type) only. Now it is done for typedef (and type-alias)
and sizeof expressions with VLA too.

Reviewers: Szelethus, martong

Reviewed By: Szelethus, martong

Subscribers: rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79072

4 years ago[libcxx][span] Remove tuple interface
Michael Schellenberger Costa [Thu, 14 May 2020 12:24:59 +0000 (08:24 -0400)]
[libcxx][span] Remove tuple interface

This implements P2116 by removing the tuple interface from std::span.

Differential Revision: https://reviews.llvm.org/D75640

4 years agoSelectionDAG.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling...
Simon Pilgrim [Thu, 14 May 2020 11:30:07 +0000 (12:30 +0100)]
SelectionDAG.cpp - remove non-constant EXTRACT_SUBVECTOR/INSERT_SUBVECTOR handling. NFC.

Now that D79814 has landed, we can assume that subvector ops use constant, in-range indices.

4 years ago[clangd] Correct the elog message, NFC.
Haojian Wu [Thu, 14 May 2020 12:14:48 +0000 (14:14 +0200)]
[clangd] Correct the elog message, NFC.

4 years ago[VPlan] Move emission of \\l\"+\n to dumpBasicBlock (NFC).
Florian Hahn [Thu, 14 May 2020 11:37:38 +0000 (12:37 +0100)]
[VPlan] Move emission of \\l\"+\n to dumpBasicBlock (NFC).

The patch standardizes printing of VPRecipes a bit, by hoisting out the
common emission of \\l\"+\n. It simplifies the code and is also a first
step towards untangling printing from DOT format output, with the goal
of making the DOT output optional and to provide a more concise debug
output if DOT output is disabled.

Reviewers: gilr, Ayal, rengolin

Reviewed By: gilr

Differential Revision: https://reviews.llvm.org/D78883

4 years ago[clangd] Remove extra qualification
Sam McCall [Thu, 14 May 2020 12:06:05 +0000 (14:06 +0200)]
[clangd] Remove extra qualification

4 years ago[clangd] Don't create as much garbage while building Dex index.
Sam McCall [Thu, 14 May 2020 00:43:27 +0000 (02:43 +0200)]
[clangd] Don't create as much garbage while building Dex index.

Summary:
The Token objects are relatively expensive and we were spending a lot of
CPU creating them for each trigram emitted. Instead, use a tiny trigram
structure until we're ready to finalize the index.

This improves the new BuildDex benchmark by 20%. This code is hot and on
the critical path in clangd: it runs after a new preamble is built.

Reviewers: kbobyrev

Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79918

4 years ago[lldb] Fix a "missing return" warning in XcodeSDK
Pavel Labath [Thu, 14 May 2020 11:28:47 +0000 (13:28 +0200)]
[lldb] Fix a "missing return" warning in XcodeSDK

4 years ago[lldb] Use llvm::MC for register numbers in AArch64 ABIs
Pavel Labath [Thu, 14 May 2020 11:25:57 +0000 (13:25 +0200)]
[lldb] Use llvm::MC for register numbers in AArch64 ABIs

Summary:
This is equivalent to previous patches (e.g. 07355c1c0) for the x86 ABIs.

One name fixup is needed -- lldb refers to the floating/vector registers by
their vector name (vN). Llvm does not use this name, so we map it to qN,
representing the register as a single 128 bit value (this choice is fairly
arbitrary -- any other name would also work fine as they all have the same
DWARF number).

Reviewers: JDevlieghere, jasonmolenda, omjavaid

Reviewed By: omjavaid

Subscribers: clayborg, danielkiss, aprantl, kristof.beyls, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D75607

4 years ago[clangd] Setting recovery-ast flag in buildCompilerInvocation, NFC.
Haojian Wu [Thu, 14 May 2020 11:08:59 +0000 (13:08 +0200)]
[clangd] Setting recovery-ast flag in buildCompilerInvocation, NFC.

This saves some duplicated code (in buildPreamble and buildAST).

4 years ago[libc++] Adjust how we guard the inclusion of unistd.h
John Brawn [Thu, 14 May 2020 10:51:13 +0000 (11:51 +0100)]
[libc++] Adjust how we guard the inclusion of unistd.h

unistd.h isn't guaranteed to exist when the target isn't Windows, in
particular if the target is bare-metal (i.e. no operating system).
Handle this by using __has_include instead, though in
filesystem/operations.cpp we already unconditionally include it so
just remove the extra include.

Differential Revision: https://reviews.llvm.org/D79784

4 years ago[LLD] [COFF] Try to fix test errors from 7f0e6c31c255303 on windows
Martin Storsjö [Thu, 14 May 2020 10:46:33 +0000 (13:46 +0300)]
[LLD] [COFF] Try to fix test errors from 7f0e6c31c255303 on windows

Just skip trying to match for the path separator explicitly (instead
of making it match either a forward or backwards slash), simplifying
the test a little.

4 years ago[libcxx testing] Remove ALLOW_RETRIES from two futures tests
David Zarzycki [Thu, 14 May 2020 10:12:54 +0000 (06:12 -0400)]
[libcxx testing] Remove ALLOW_RETRIES from two futures tests

These two tests do not use the "thread sleeps X milliseconds" pattern
that other libcxx tests use, so all we can do in order to remove
ALLOW_RETRIES workaround is remove the assumption that measuring the
"quick" return of `wait()` is possible (it is not). Let the test harness
verify overall that `wait()` does not hang.

As a bonus, have the spin-waiting threads `yield()`, which is what well
behaved code should do.

4 years ago[lldb/gdb-remote] Change default value of use-libraries-svr4 to true
Pavel Labath [Thu, 14 May 2020 10:10:56 +0000 (12:10 +0200)]
[lldb/gdb-remote] Change default value of use-libraries-svr4 to true

This setting was added last year, defaulting to false. There have been
no bug reports about the svr4 code path since then, and the using this
packet is definitely faster than walking the module list from lldb.

Set the default value of the setting to true, as that is a better
default. Users can still change it back if encountering problems, or we
can revert the change as well, in case of bigger issues.

I also add a note to the setting description that it is only effective
if lldb is built with xml support.

4 years ago[LLD] [COFF] Add options for disabling auto import and runtime pseudo relocs
Martin Storsjö [Sat, 25 Apr 2020 21:49:44 +0000 (00:49 +0300)]
[LLD] [COFF] Add options for disabling auto import and runtime pseudo relocs

Allow disabling either the full auto import feature, or just
forbidding the cases that require runtime fixups.

As long as all auto imported variables are referenced from separate
.refptr$<name> sections, we can alias them on top of the IAT entries
and don't actually need any runtime fixups via pseudo relocations.
LLVM generates references to variables in .refptr stubs, if it
isn't known that the variable for sure is defined in the same object
module. Runtime pseudo relocs are needed if the addresses of auto
imported variables are used in constant initializers though.

Fixing up runtime pseudo relocations requires the use of
VirtualProtect (which is disallowed in WinStore/UWP apps) or
VirtualProtectFromApp. To allow any risk of ambiguity, allow
rejecting cases that would require this at the linker stage.

This adds support for the --disable-runtime-pseudo-reloc and
--disable-auto-import options in the MinGW driver (matching GNU ld.bfd)
with corresponding lld private options in the COFF driver.

Differential Revision: https://reviews.llvm.org/D78923

4 years ago[lldb] Switch Section-dumping code to raw_ostream
Pavel Labath [Wed, 13 May 2020 09:13:19 +0000 (11:13 +0200)]
[lldb] Switch Section-dumping code to raw_ostream

Also, add a basic test for dumping sections.

4 years ago[lldb] Don't dissasemble large functions by default
Pavel Labath [Tue, 12 May 2020 15:14:20 +0000 (17:14 +0200)]
[lldb] Don't dissasemble large functions by default

Summary:
If we have a binary without symbol information (and without
LC_FUNCTION_STARTS, if on a mac), then we have to resort to using
heuristics to determine the function boundaries. However, these don't
always work, and so we can easily end up thinking we have functions
which are several megabytes in size. Attempting to (accidentally)
disassemble these can take a very long time spam the terminal with
thousands of lines of disassembly.

This patch works around that problem by adding a sanity check to the
disassemble command. If we are about to disassemble a function which is
larger than a certain threshold, we will refuse to disassemble such a
function unless the user explicitly specifies the number of instructions
to disassemble, uses start/stop addresses for disassembly, or passes the
(new) --force argument.

The threshold is currently fairly aggressive (4000 bytes ~~ 1000
instructions). If needed, we can increase it, or even make it
configurable.

Differential Revision: https://reviews.llvm.org/D79789

4 years ago[llvm-dwarfdump] Make commandline arguments consistent.
Xing GUO [Thu, 14 May 2020 09:33:49 +0000 (17:33 +0800)]
[llvm-dwarfdump] Make commandline arguments consistent.

Currently, llvm-dwarfdump's help message has two issues.

1. Most long options are printed in `--long-option`, except for some section dumping options, e.g., `-apple-names`, `-debug-addr`.

2. Most options are printed with consistent indention, except for some section dumping options.

This patch helps resolve these two issues.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D79618

4 years ago[clangd] Only emit default error/fatal diagnostices from included files.
Haojian Wu [Thu, 14 May 2020 07:23:42 +0000 (09:23 +0200)]
[clangd] Only emit default error/fatal diagnostices from included files.

Summary:
This would avoid adding too much noise when there is a "-Wall" in the
compile command.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79923

4 years ago[mlir] Fix the example for std.rank
Stephan Herhut [Wed, 13 May 2020 13:28:24 +0000 (15:28 +0200)]
[mlir] Fix the example for std.rank

Summary:
The assembly format for std.rank expects the operand type and not the
result type after the colon.

Differential Revision: https://reviews.llvm.org/D79857

4 years ago[GlobalISel][InlineAsm] Add support for basic input operand constraints
Konstantin Schwarz [Sun, 12 Apr 2020 14:16:30 +0000 (16:16 +0200)]
[GlobalISel][InlineAsm] Add support for basic input operand constraints

Reviewers: arsenm, dsanders, aemerson, volkan, t.p.northover, paquette

Reviewed By: arsenm

Subscribers: gargaroff, wdng, rovka, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78319

4 years agoOnly run pretty-printer tests for builds with debug-info.
Christian Sigg [Wed, 13 May 2020 19:53:00 +0000 (21:53 +0200)]
Only run pretty-printer tests for builds with debug-info.

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: tbosch, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79897

4 years ago[MLIR][cmake] don't glob for sources.
Stephen Neuendorffer [Wed, 13 May 2020 20:40:06 +0000 (13:40 -0700)]
[MLIR][cmake] don't glob for sources.

Generally speaking, this is bad practice.  It also causes the build to
break if there are editor temporary files.

Differential Revision: https://reviews.llvm.org/D79906

4 years agoFix typo in error message
Gabor Greif [Wed, 13 May 2020 17:03:22 +0000 (19:03 +0200)]
Fix typo in error message

4 years agoFix buildbots errors after comitting D78782.
Greg Clayton [Thu, 14 May 2020 05:01:57 +0000 (22:01 -0700)]
Fix buildbots errors after comitting D78782.

Rename "Ranges" variables to "DebugRanges" to avoid warnings/errors on machines that have extra settings enabled.

https://reviews.llvm.org/D78782

4 years agoDon't apply lvalue-to-rvalue conversion in DefaultLValueConversion to
Akira Hatanaka [Tue, 14 Apr 2020 02:07:16 +0000 (19:07 -0700)]
Don't apply lvalue-to-rvalue conversion in DefaultLValueConversion to
the expression that is passed to it if it has a function type or array
type

lvalue-to-rvalue conversion should only be applied to non-function,
non-array types, but clang was applying the conversion to discarded
value expressions of array types.

rdar://problem/61203170

Differential Revision: https://reviews.llvm.org/D78134

4 years ago[demangler] Support for 'this' expressions
Erik Pilkington [Thu, 14 May 2020 02:19:45 +0000 (22:19 -0400)]
[demangler] Support for 'this' expressions

llvm.org/PR45896

4 years agoFix PS4 build of compiler-rt runtime.
Douglas Yung [Thu, 14 May 2020 02:11:16 +0000 (02:11 +0000)]
Fix PS4 build of compiler-rt runtime.

In a previous change I added a shim for fork(), but when compiled from InstrProfiling.c, the
required header file was not included, so pid_t was undefined. This change adds that include.

4 years agoPropagate MIFlags in table gen
Michael Berg [Thu, 14 May 2020 01:19:38 +0000 (18:19 -0700)]
Propagate MIFlags in table gen

Summary: Add flag propagation to tablegen via OutMIs from originating MI in InstructionSelector::executeMatchTable.

Reviewers: dsanders, volkan

Reviewed By: dsanders

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74988

4 years ago[CodeGen][NFC] Fix test/CodeGen/pr45476.cpp to specify target triple.
Huihui Zhang [Thu, 14 May 2020 00:55:08 +0000 (17:55 -0700)]
[CodeGen][NFC] Fix test/CodeGen/pr45476.cpp to specify target triple.

Summary:
Use explicit target triple to match more accurately the output for libcall
or native atomic.

Similar to D74847, without explicit target triple, this test will fail for ARM.

This patch update test pr45476.cpp to check for both native atomic and libcall.

Reviewers: efriedma, ekatz, rjmccall, rsmith, luismarques

Reviewed By: efriedma

Subscribers: kristof.beyls, jfb, cfe-commits, llvm-commits

Tags: #llvm, #clang

Differential Revision: https://reviews.llvm.org/D79914

4 years ago[X86] Return true from trySADReplacement in the partial reduction pass when a change...
Craig Topper [Thu, 14 May 2020 00:51:45 +0000 (17:51 -0700)]
[X86] Return true from trySADReplacement in the partial reduction pass when a change is made.

Otherwise we don't signal to the pass manager that we changed IR.

4 years ago[cmake] fix typo.
Stephen Neuendorffer [Thu, 14 May 2020 00:42:46 +0000 (17:42 -0700)]
[cmake] fix typo.

4 years ago[cmake] Need PUBLIC dependencies for object targets even if LLVM_PTHREAD_LIB is unset
Stephen Neuendorffer [Thu, 14 May 2020 00:17:54 +0000 (17:17 -0700)]
[cmake] Need PUBLIC dependencies for object targets even if LLVM_PTHREAD_LIB is unset

Fix logic in previous patch.

4 years ago[SVE] Remove usages of VectorType::getNumElements() from Hexagon
Christopher Tetreault [Wed, 13 May 2020 23:00:20 +0000 (16:00 -0700)]
[SVE] Remove usages of VectorType::getNumElements() from Hexagon

Reviewers: efriedma, kmclaughlin, sdesmalen, kparzysz

Reviewed By: kparzysz

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79819

4 years ago[AARch64] Add Marvell ThunderX3T110 support
Wei Zhao [Wed, 13 May 2020 23:38:42 +0000 (16:38 -0700)]
[AARch64] Add Marvell ThunderX3T110 support

This is the first checkin to support Marvell ThunderX3T110.

Initial definition of the micro-ops of the instructions in ThunderX3T110
is included.

Differential Revision: https://reviews.llvm.org/D78129

4 years ago[cmake] Check for empty LLVM_PTHREAD_LIB
Stephen Neuendorffer [Wed, 13 May 2020 23:40:51 +0000 (16:40 -0700)]
[cmake] Check for empty LLVM_PTHREAD_LIB

Windows builds broke because LLVM_THREAD_LIB is not set.

4 years ago[Attributor] Improve the alignment of the loads
Omar Ahmed [Wed, 13 May 2020 21:48:49 +0000 (16:48 -0500)]
[Attributor] Improve the alignment of the loads

This patch introduces an improvement in the Alignment of the loads
generated in createReplacementValues() by querying AAAlign attribute for
the best Alignment for the base.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D76550

4 years ago[Attributor] Check lines accidentally not committed with D76208
Johannes Doerfert [Wed, 13 May 2020 22:43:01 +0000 (17:43 -0500)]
[Attributor] Check lines accidentally not committed with D76208

4 years agoAdd .debug_ranges support to the DWARF YAML.
Greg Clayton [Fri, 24 Apr 2020 02:25:12 +0000 (19:25 -0700)]
Add .debug_ranges support to the DWARF YAML.

Summary: This allows DIEs with DW_AT_ranges to be encoded and decoded _and_ actually have their address ranges be included instead of having DW_AT_ranges with a section offset value for a section that doesn't exist.

Reviewers: labath, aprantl, JDevlieghere, dblaikie, probinson

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78782

4 years ago[SVE] Remove usages of VectorType::getNumElements() from AMDGPU
Christopher Tetreault [Wed, 13 May 2020 22:19:07 +0000 (15:19 -0700)]
[SVE] Remove usages of VectorType::getNumElements() from AMDGPU

Reviewers: efriedma, arsenm, david-arm, fpetrogalli

Reviewed By: efriedma

Subscribers: dmgreen, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, tschuett, hiraditya, rkruppe, psnobl, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79807

4 years ago[AArch64] Don't promote constants with float ConstantExpr.
Florian Hahn [Wed, 13 May 2020 22:31:47 +0000 (23:31 +0100)]
[AArch64] Don't promote constants with float ConstantExpr.

Currently the AsmPrinter cannot emit some floating point constant
expressions in global initializers. Avoid generating them.

Reviewers: dmgreen, t.p.northover, arsenm, efriedma, Gerolf

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D79865