platform/upstream/llvm.git
5 years ago[x86] add tests for extractelement with undef index (PR42689); NFC
Sanjay Patel [Fri, 25 Oct 2019 19:58:35 +0000 (15:58 -0400)]
[x86] add tests for extractelement with undef index (PR42689); NFC

5 years agoUpdate version number in llvm python bindings
David Tenty [Fri, 25 Oct 2019 17:54:29 +0000 (13:54 -0400)]
Update version number in llvm python bindings

Summary:
The version number has come out of sync with what is in CMakeLists.txt,
causing loading the bindings to fail.

Reviewers: AustinWells, abhina.sree

Reviewed By: AustinWells

Subscribers: llvm-commits

Tags: #llvm

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

5 years ago Add the ability to pass extra args to a Python breakpoint callback.
Jim Ingham [Fri, 25 Oct 2019 21:05:07 +0000 (14:05 -0700)]
Add the ability to pass extra args to a Python breakpoint callback.

    For example, it is pretty easy to write a breakpoint command that implements "stop when my caller is Foo", and
    it is pretty easy to write a breakpoint command that implements "stop when my caller is Bar". But there's no
    way to write a generic "stop when my caller is..." function, and then specify the caller when you add the
    command to a breakpoint.

    With this patch, you can pass this data in a SBStructuredData dictionary. That will get stored in
    the PythonCommandBaton for the breakpoint, and passed to the implementation function (if it has the right
    signature) when the breakpoint is hit. Then in lldb, you can say:

    (lldb) break com add -F caller_is -k caller_name -v Foo

    More generally this will allow us to write reusable Python breakpoint commands.

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

5 years agoRevert "[ARM] Uses "Sun Style" syntax for section switching"
Jian Cai [Fri, 25 Oct 2019 21:03:07 +0000 (14:03 -0700)]
Revert "[ARM] Uses "Sun Style" syntax for section switching"

This reverts commit 03de2f84fc4acf06c719cd007b5459c9d4d0a20c.

5 years ago[AMDGPU] Fixed asan failure in SIFoldOperands
Stanislav Mekhanoshin [Fri, 25 Oct 2019 20:33:40 +0000 (13:33 -0700)]
[AMDGPU] Fixed asan failure in SIFoldOperands

Both tryFoldOMod() and tryFoldClamp() remove original instruction,
so the check MI.modifiesRegister() may use a deleted MI.

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

5 years agoGlobalISel: Implement widenScalar for G_INSERT_VECTOR_ELT
Matt Arsenault [Tue, 1 Oct 2019 19:51:37 +0000 (15:51 -0400)]
GlobalISel: Implement widenScalar for G_INSERT_VECTOR_ELT

5 years ago[Alignment][NFC] Convert AllocaInst to MaybeAlign
Guillaume Chatelet [Fri, 25 Oct 2019 20:26:23 +0000 (22:26 +0200)]
[Alignment][NFC] Convert AllocaInst to MaybeAlign

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Reviewed By: courbet

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

5 years ago[ARM] Uses "Sun Style" syntax for section switching
Jian Cai [Fri, 25 Oct 2019 18:05:31 +0000 (11:05 -0700)]
[ARM] Uses "Sun Style" syntax for section switching

Summary:
Support "Sun Style" syntax for section switching ("#alloc,#write" etc).
https://bugs.llvm.org/show_bug.cgi?id=43759

Reviewers: peter.smith, eli.friedman, kristof.beyls, t.p.northover

Reviewed By: peter.smith

Subscribers: MaskRay, llozano, manojgupta, nickdesaulniers, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

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

5 years agoAMDGPU/GlobalISel: Handle flat/global G_ATOMIC_CMPXCHG
Matt Arsenault [Tue, 8 Oct 2019 17:04:41 +0000 (10:04 -0700)]
AMDGPU/GlobalISel: Handle flat/global G_ATOMIC_CMPXCHG

Custom lower this to a target instruction with the merge operands. I
think it might be better to directly select this and emit a
REG_SEQUENCE, but this would be more work since it would require
splitting the tablegen patterns for these cases from the other
atomics.

5 years agoAMDGPU: Fix the broken dominator tree when creating waterfall loop for resource descr...
Changpeng Fang [Fri, 25 Oct 2019 20:08:04 +0000 (13:08 -0700)]
AMDGPU: Fix the broken dominator tree when creating waterfall loop for resource descriptor

Summary:
  In loadSRsrcFromVGPR, if MBB is the same as Succ, Remiander is not the immediate dominator of Succ.

Reviewer:
  arsenm

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

5 years ago[gicombiner] Add parse failure tests for defs/match
Daniel Sanders [Fri, 4 Oct 2019 01:49:27 +0000 (18:49 -0700)]
[gicombiner] Add parse failure tests for defs/match

5 years agoRevert "Add an instruction marker field to the ExtraInfo in MachineInstrs."
Amy Huang [Fri, 25 Oct 2019 19:40:38 +0000 (12:40 -0700)]
Revert "Add an instruction marker field to the ExtraInfo in MachineInstrs."

Reverting commit b85b4e5a6f8579c137fecb59a4d75d7bfb111f79 due to some
buildbot failures/ out of memory errors.

5 years ago[LLD][ThinLTO] Handle GUID collision in import global processing
Teresa Johnson [Fri, 25 Oct 2019 15:40:24 +0000 (08:40 -0700)]
[LLD][ThinLTO] Handle GUID collision in import global processing

Summary:
If there are a GUID collision between two globals checking the
summarylist from the import index to make assumption can be dangerous.

Do not assume that a GlobalValue that has a GlobalVarSummary
actually is a GlobalVariable as it can be another GlobalValue with
the same GUID that the summary is connected to.

Patch by Joel Klinghed (the_jk@opera.com)

Reviewers: evgeny777, tejohnson

Reviewed By: tejohnson

Subscribers: tejohnson, dblaikie, MaskRay, mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith, llvm-commits

Tags: #llvm

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

5 years ago[Alignment][NFC] getMemoryOpCost uses MaybeAlign
Guillaume Chatelet [Tue, 22 Oct 2019 15:16:52 +0000 (17:16 +0200)]
[Alignment][NFC] getMemoryOpCost uses MaybeAlign

Summary:
This is patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Reviewers: courbet

Subscribers: nemanjai, hiraditya, kbarton, MaskRay, jsji, llvm-commits

Tags: #llvm

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

5 years ago[CVP] add test for poison propagation bug (PR43802); NFC
Sanjay Patel [Fri, 25 Oct 2019 18:51:31 +0000 (14:51 -0400)]
[CVP] add test for poison propagation bug (PR43802); NFC

5 years agobuild: remove `LLVM_CXX_STD` extension point
Saleem Abdulrasool [Fri, 25 Oct 2019 17:57:52 +0000 (10:57 -0700)]
build: remove `LLVM_CXX_STD` extension point

This extension point is not needed. Provide the equivalent option
through `CMAKE_CXX_STANDARD` which mirrors the previous extension point. Rely on
CMake to provide the check for the compiler instead.

5 years ago[llvm-objcopy][MachO] Add support for min os version load commands
Alexander Shaposhnikov [Fri, 25 Oct 2019 00:35:10 +0000 (17:35 -0700)]
[llvm-objcopy][MachO] Add support for min os version load commands

Add support for min os version load commands.

Test plan: make check-all

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

5 years ago[AMDGPU] Fold AGPR reg_sequence initializers
Stanislav Mekhanoshin [Thu, 24 Oct 2019 19:36:24 +0000 (12:36 -0700)]
[AMDGPU] Fold AGPR reg_sequence initializers

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

5 years ago[AMDGPU] Disallow dpp combining for dpp instructions without Src2 operand (when Src2...
vpykhtin [Fri, 25 Oct 2019 17:42:52 +0000 (20:42 +0300)]
[AMDGPU] Disallow dpp combining for dpp instructions without Src2 operand (when Src2 is required)

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

5 years ago[Driver] Force llvm to install its handlers before lldb's
Vedant Kumar [Thu, 24 Oct 2019 20:15:37 +0000 (13:15 -0700)]
[Driver] Force llvm to install its handlers before lldb's

Install llvm's signal handlers up front to prevent lldb's handlers from being
ignored. This is (hopefully) a stopgap workaround.

When lldb invokes an llvm API that installs signal handlers (e.g.
llvm::sys::RemoveFileOnSignal, possibly via a compiler embedded within lldb),
lldb's signal handlers are overriden if llvm is installing its handlers for the
first time.

To work around llvm's behavior, force it to install its handlers up front, and
*then* install lldb's handlers. In practice this is used to prevent lldb test
processes from exiting due to IO_ERR when SIGPIPE is received.

Note that when llvm installs its handlers, it 1) records the old handlers it
replaces and 2) re-installs the old handlers when its new handler is invoked.
That means that a signal not explicitly handled by lldb can fall back to being
handled by llvm's handler the first time it is received, and then by the
default handler the second time it is received.

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

5 years agoFix compilation error in ObjectFileMachO::ParseSymtab
Vedant Kumar [Fri, 25 Oct 2019 18:16:51 +0000 (11:16 -0700)]
Fix compilation error in ObjectFileMachO::ParseSymtab

5 years ago[X86] Add a check for SSE2 to the top of combineReductionToHorizontal.
Craig Topper [Fri, 25 Oct 2019 00:41:05 +0000 (17:41 -0700)]
[X86] Add a check for SSE2 to the top of combineReductionToHorizontal.

Without this, we can create a PSADBW node that isn't legal.

5 years ago[DAGCombiner] widen zext of popcount based on target support
Sanjay Patel [Fri, 25 Oct 2019 17:34:40 +0000 (13:34 -0400)]
[DAGCombiner] widen zext of popcount based on target support

zext (ctpop X) --> ctpop (zext X)

This is a prerequisite step for canonicalizing in the other direction (narrow the popcount) in IR - PR43688:
https://bugs.llvm.org/show_bug.cgi?id=43688

I'm not sure if any other targets are affected, but I found a missing fold for PPC, so added tests based on that.
The reason we widen all the way to 64-bit in these tests is because the initial DAG looks something like this:

  t5: i8 = ctpop t4
  t6: i32 = zero_extend t5  <-- created based on IR, but unused node?
    t7: i64 = zero_extend t5

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

5 years agoAMDGPU/GlobalISel: Legalize FDIV16
Austin Kerbow [Wed, 23 Oct 2019 00:39:26 +0000 (17:39 -0700)]
AMDGPU/GlobalISel: Legalize FDIV16

Reviewers: arsenm

Reviewed By: arsenm

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, volkan, Petar.Avramovic, llvm-commits

Tags: #llvm

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

5 years agoCrt files are special cased by name when dealing with ctor and dtor
Sterling Augustine [Fri, 25 Oct 2019 18:04:56 +0000 (11:04 -0700)]
Crt files are special cased by name when dealing with ctor and dtor
sections, but the current code misses certain variants. In particular, those
named when clang takes the code path in
clang/lib/Driver/ToolChain.cpp:416, where crtfiles are named:

clang_rt.<component>-<arch>-<env>.<suffix>

Previously, the code only handled:
clang_rt.<component>.<suffix>
<component>.<suffix>

This revision fixes that.

5 years ago[NFC][libomptarget] move remaining device specific code out of omptarget-nvptx.h
Jon Chesterfield [Fri, 25 Oct 2019 06:20:46 +0000 (07:20 +0100)]
[NFC][libomptarget] move remaining device specific code out of omptarget-nvptx.h

Summary:
[NFC][libomptarget] move remaining device specific code out of omptarget-nvptx.h

Strictly there is one remaining difference wrt amdgcn - parallelLevel is
volatile qualified on amdgcn and not on nvptx. Determining whether this is
correct - and how to represent the different semantics of 'volatile' under
various conditions - is beyond the scope of this code motion patch.

Reviewers: ABataev, jdoerfert, grokos

Subscribers: openmp-commits

Tags: #openmp

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

5 years agoValueObject: Fix a crash related to children address type computation
Pavel Labath [Mon, 21 Oct 2019 17:41:42 +0000 (10:41 -0700)]
ValueObject: Fix a crash related to children address type computation

Summary:
This patch fixes a crash encountered when debugging optimized code. If some
variable has been completely optimized out, but it's value is nonetheless known,
the compiler can replace it with a DWARF expression computing its value. The
evaluating these expressions results in a eValueTypeHostAddress Value object, as
it's contents are computed into an lldb buffer. However, any value that is
obtained by dereferencing pointers in this object should no longer have the
"host" address type.

Lldb had code to account for this, but it was only present in the
ValueObjectVariable class. This wasn't enough when the object being described
was a struct, as then the object holding the actual pointer was a
ValueObjectChild. This caused lldb to dereference the contained pointer in the
context of the host process and crash.

Though I am not an expert on ValueObjects, it seems to me that this children
address type logic should apply to all types of objects (and indeed, applying
applying the same logic to ValueObjectChild fixes the crash). Therefore, I move
this code to the base class, and arrange it to be run everytime the value is
updated.

The test case is a reduced and simplified version of the original debug info
triggering the crash. Originally we were dealing with a local variable, but as
these require a running process to display, I changed it to use a global one
instead.

Reviewers: jingham, clayborg

Subscribers: aprantl, lldb-commits

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

5 years ago[SCEV] Add a clarifying comment around ExitLimit construction
Philip Reames [Fri, 25 Oct 2019 17:32:48 +0000 (10:32 -0700)]
[SCEV] Add a clarifying comment around ExitLimit construction

5 years ago[Sema][Typo Correction] Fix another infinite loop on ambiguity
David Goldman [Fri, 25 Oct 2019 17:15:25 +0000 (13:15 -0400)]
[Sema][Typo Correction] Fix another infinite loop on ambiguity

See also: D67515

- For the given call expression we would end up repeatedly
   trying to transform the same expression over and over again

- Fix is to keep the old TransformCache when checking for ambiguity

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

5 years ago[TableGen] Add asserts to make sure default values match property type
Jonas Devlieghere [Fri, 25 Oct 2019 17:17:09 +0000 (10:17 -0700)]
[TableGen] Add asserts to make sure default values match property type

This adds a few asserts to the property TableGen backend to prevent
mismatches between property types and their default values. This
would've prevented a copy-paste mistake we discovered downstream.

5 years ago[FPEnv] Teach the IRBuilder about correct use of the strictfp attribute.
Kevin P. Neal [Tue, 22 Oct 2019 17:07:15 +0000 (13:07 -0400)]
[FPEnv] Teach the IRBuilder about correct use of the strictfp attribute.

The IRBuilder needs to add the strictfp attribute to function
definitions and calls when constrained floating point is enabled.

Since so far all front ends have had to do is flip the constrained
switch, I've made this patch always add the required attributes
when said constrained switch is enabled. This continues to keep
changes to front ends minimal.

Differential Revision: D69312

5 years agogn build: Merge 8e567b0730f
LLVM GN Syncbot [Fri, 25 Oct 2019 16:49:07 +0000 (16:49 +0000)]
gn build: Merge 8e567b0730f

5 years ago[libcxx] [test] Run `chmod +x` on executables when testing via SSH
Louis Dionne [Fri, 25 Oct 2019 16:46:35 +0000 (09:46 -0700)]
[libcxx] [test] Run `chmod +x` on executables when testing via SSH

When running libc++ tests on a remote machine via SSH, we can encounter
a 'Permission denied' error.

Fix this with plain old 'chmod +x <executable>'.

Thanks to Sergej Jaskiewicz for the patch.

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

5 years ago[PowerPC] add test for popcnt with any_extend; NFC
Sanjay Patel [Fri, 25 Oct 2019 16:42:06 +0000 (12:42 -0400)]
[PowerPC] add test for popcnt with any_extend; NFC

A zext-specific variation of this case is proposed in D69127.

5 years ago[clangd] Revert define-inline action changes to un-break windows build-bots
Kadir Cetinkaya [Fri, 25 Oct 2019 16:40:01 +0000 (18:40 +0200)]
[clangd] Revert define-inline action changes to un-break windows build-bots

5 years agoAdd an instruction marker field to the ExtraInfo in MachineInstrs.
Amy Huang [Wed, 16 Oct 2019 23:50:18 +0000 (16:50 -0700)]
Add an instruction marker field to the ExtraInfo in MachineInstrs.

Summary:
Add instruction marker to MachineInstr ExtraInfo. This does almost the
same thing as Pre/PostInstrSymbols, except that it doesn't create a label until
printing instructions. This allows for labels to be put around instructions that
are deleted/duplicated somewhere.

Also undo the workaround in r375137.

Reviewers: rnk

Subscribers: MatzeB, hiraditya, llvm-commits

Tags: #llvm

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

5 years agobuild: reindent text (NFC)
Saleem Abdulrasool [Fri, 25 Oct 2019 15:54:39 +0000 (08:54 -0700)]
build: reindent text (NFC)

Replace some hard tabs with spaces.  NFC.

5 years ago[AMDGPU] Remove update_llc_test_checks for a test
Scott Linder [Fri, 25 Oct 2019 15:36:07 +0000 (11:36 -0400)]
[AMDGPU] Remove update_llc_test_checks for a test

The test split-arg-dbg-value.ll has a host-specific path in the
full output captured by update_llc_test_checks.

Fix for test failures introduced in https://reviews.llvm.org/D69402

Tags: #llvm

5 years ago[SLP] adjust code comment; NFC
Sanjay Patel [Thu, 24 Oct 2019 13:55:07 +0000 (09:55 -0400)]
[SLP] adjust code comment; NFC

(check commit access)

5 years ago[APInt] Add saturating left-shift ops
Roman Lebedev [Fri, 25 Oct 2019 15:17:48 +0000 (18:17 +0300)]
[APInt] Add saturating left-shift ops

Summary:
There are `*_ov()` functions already, so at least for consistency it may be good to also have saturating variants.
These may or may not be needed for `ConstantRange`'s `shlWithNoWrap()`

Reviewers: spatel, nikic

Reviewed By: nikic

Subscribers: hiraditya, dexonsmith, llvm-commits

Tags: #llvm

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

5 years ago[APInt] Add saturating multiply ops
Roman Lebedev [Fri, 25 Oct 2019 15:17:38 +0000 (18:17 +0300)]
[APInt] Add saturating multiply ops

Summary:
There are `*_ov()` functions already, so at least for consistency it may be good to also have saturating variants.
These may or may not be needed for `ConstantRange`'s `mulWithNoWrap()`

Reviewers: spatel, nikic

Reviewed By: nikic

Subscribers: hiraditya, dexonsmith, llvm-commits

Tags: #llvm

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

5 years ago[CodeGen][SelectionDAG] Fix tiny bug in ExpandIntRes_UADDSUBO
Itay Bookstein [Fri, 25 Oct 2019 15:10:41 +0000 (18:10 +0300)]
[CodeGen][SelectionDAG] Fix tiny bug in ExpandIntRes_UADDSUBO

Summary:
Ternary expression checks for ISD::ADD instead of ISD::UADDO inside DAGTypeLegalizer::ExpandIntRes_UADDSUBO.
This means the ternary expression will evaluate to ISD::SUBCARRY for both ISD::UADDO and ISD::USUBO nodes.
Targets are likely to implement both, so impact will be very limited in practice.

Reviewers: bogner, lebedev.ri

Reviewed By: lebedev.ri

Subscribers: lebedev.ri, hiraditya, llvm-commits

Tags: #llvm

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

5 years ago[clang-format] [NFC] update the documentation in Format.h to allow dump_format_style...
paulhoad [Fri, 25 Oct 2019 13:45:19 +0000 (14:45 +0100)]
[clang-format] [NFC] update the documentation in Format.h to allow dump_format_style.py to get a little closer to being correct.

Summary:
Running dump_format_style.py on the tip of the trunk causes ClangFormatStyleOptions.rst to have changes, which I think ideally it shouldn't.

Some recent commits have meant Format.h and ClangFormatStyleOptions.rst have become out of sync such that dump_format_style.py either couldn't be run or generated incorrect .rst files.

It's also important to remember to edit the IncludeStyles from Tooling.

Make a couple of changes {D6833} {D64695} which came from recent clang-format commits that missed this step. There are still a couple of other changes  from commit {D67541} {D68296} which also need to be looked at, but I'd like to park these first two changes first.

The authors of these original commits I've included in the reviewers, I'm happy to work on the changes, just really need to know which is the ground truth of the changes you want to keep (whats in the Format.h) or what is in the ClangFormatStyleOptions.rst

Reviewers: klimek, mitchell-stellar, owenpan, jvoung, Manikishan, sammccall

Reviewed By: mitchell-stellar

Subscribers: cfe-commits

Tags: #clang-format, #clang

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

5 years ago[NFC] Rename LLVM_NO_DEAD_STRIP
David Tenty [Thu, 24 Oct 2019 20:18:26 +0000 (16:18 -0400)]
[NFC] Rename LLVM_NO_DEAD_STRIP

Summary:
The variable LLVM_NO_DEAD_STRIP is set in LLVM cmake files when building executables that might make use of plugins .The name of the variable does not convey the actual intended usage (i.e. for use with tools that have plugins), just what the eventual effect of setting in on some (i.e. not garbage collecting unused symbols).

This patch renames it to LLVM_SUPPORT_PLUGINS to convey the intended usage, which will allow subsequent patches to add behavior to support that in different ways without confusion about whether it will do on, for example, non-gnu platforms.

Reviewers: hubert.reinterpretcast, stevewan

Reviewed By: stevewan

Subscribers: cfe-commits, mgorny, llvm-commits

Tags: #llvm, #clang

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

5 years agoOpenMP Tasks dependencies hash re-sizing fixed.
AndreyChurbanov [Fri, 25 Oct 2019 12:59:07 +0000 (15:59 +0300)]
OpenMP Tasks dependencies hash re-sizing fixed.

Details:
- nconflicts field initialized;
- formatting fix (moved declaration out of the long line);
- count conflicts in new hash as opposed to old one.

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

5 years ago[RISCV] Add support for half-precision floats
Luís Marques [Fri, 25 Oct 2019 12:52:40 +0000 (13:52 +0100)]
[RISCV] Add support for half-precision floats

Complete fp16 support by ensuring that load extension / truncate store
operations are properly expanded.

Reviewers: asb, lenary
Reviewed By: lenary
Differential Revision: https://reviews.llvm.org/D69246

5 years ago[clangd][NFC] Get rid of raw string literals in macros to make stage1 compiler happy
Kadir Cetinkaya [Fri, 25 Oct 2019 13:01:08 +0000 (15:01 +0200)]
[clangd][NFC] Get rid of raw string literals in macros to make stage1 compiler happy

5 years ago[MIPS GlobalISel] Select MSA vector generic and builtin fsqrt
Petar Avramovic [Fri, 25 Oct 2019 12:45:14 +0000 (14:45 +0200)]
[MIPS GlobalISel] Select MSA vector generic and builtin fsqrt

selectImpl is able to select G_FSQRT when we set bank for vector
operands to fprb. Add detailed tests.
Note: G_FSQRT is generated from llvm-ir intrinsics llvm.sqrt.*,
and at the moment MIPS is not able to generate this intrinsic for
vector type (some targets generate vector llvm.sqrt.* from calls
to a builtin function).
__builtin_msa_fsqrt_<format> will be transformed into G_FSQRT
in legalizeIntrinsic and selected in the same way.

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

5 years ago[clang-rename] NFC, make getCanonicalSymbolDeclaration robust on nullptr input.
Haojian Wu [Fri, 25 Oct 2019 12:22:21 +0000 (14:22 +0200)]
[clang-rename] NFC, make getCanonicalSymbolDeclaration robust on nullptr input.

5 years agoFix compilation error in clangd/refactor/tweaks/ExpandAutoType.cpp
Kadir Cetinkaya [Fri, 25 Oct 2019 12:15:48 +0000 (14:15 +0200)]
Fix compilation error in clangd/refactor/tweaks/ExpandAutoType.cpp

Summary:
During the compilation of the `clangd/refactor/tweaks/ExpandAutoType.cpp`, MSVC returns the following error:

llvm-monorepo\llvm\tools\clang\tools\extra\clangd\refactor\tweaks\ExpandAutoType.cpp(85): error C2146: syntax error: missing ')' before identifier 'and'
llvm-monorepo\llvm\tools\clang\tools\extra\clangd\refactor\tweaks\ExpandAutoType.cpp(85): error C2065: 'and': undeclared identifier
llvm-monorepo\llvm\tools\clang\tools\extra\clangd\refactor\tweaks\ExpandAutoType.cpp(86): error C2143: syntax error: missing ';' before '<template-id>'
llvm-monorepo\llvm\tools\clang\tools\extra\clangd\refactor\tweaks\ExpandAutoType.cpp(73): fatal error C1075: '{': no matching token found

So, && must be used instead of `and`.

Patch By Pavel Samolysov (@psamolysov) !

Reviewers: kadircet

Reviewed By: kadircet

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

Tags: #clang, #clang-tools-extra

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

5 years ago[clang] Switch arm-mve-intrinsics tests to use %clang_cc1.
Simon Tatham [Fri, 25 Oct 2019 09:57:47 +0000 (10:57 +0100)]
[clang] Switch arm-mve-intrinsics tests to use %clang_cc1.

It isn't really necessary for them to run the clang driver, and it's
more efficient not to (and also more stable against driver changes).
Now they invoke cc1 directly, more like the analogous NEON tests.

Reviewers: dmgreen

Subscribers: kristof.beyls, cfe-commits

Tags: #clang

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

5 years ago[LLD][ELF] - Update test case after yaml2obj change.
georgerim [Fri, 25 Oct 2019 10:40:44 +0000 (13:40 +0300)]
[LLD][ELF] - Update test case after yaml2obj change.

SHT_NOTE needs at least an empty "Content" in the YAML description.
Should fix http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast

5 years ago[yaml2obj, obj2yaml] - Add support for SHT_NOTE sections.
georgerim [Fri, 25 Oct 2019 10:03:19 +0000 (13:03 +0300)]
[yaml2obj, obj2yaml] - Add support for SHT_NOTE sections.

SHT_NOTE is the section that consists of
namesz, descsz, type, name + padding, desc + padding data.
This patch teaches yaml2obj, obj2yaml to dump and parse them.

This patch implements the section how it is described here:
https://docs.oracle.com/cd/E23824_01/html/819-0690/chapter6-18048.html
Which says: "For 64–bit objects and 32–bit objects, each entry is an array of 4-byte words in
the format of the target processor"

The official specification is different
http://www.sco.com/developers/gabi/latest/ch5.pheader.html#note_section
And says: "n 64-bit objects (files with e_ident[EI_CLASS] equal to ELFCLASS64), each entry is an array
of 8-byte words in the format of the target processor. In 32-bit objects (files with e_ident[EI_CLASS]
equal to ELFCLASS32), each entry is an array of 4-byte words in the format of the target processor"

Since LLVM uses the first, 32-bit way, this patch follows it.

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

5 years ago[clangd] Store Index in Tweak::Selection
Kadir Cetinkaya [Fri, 18 Oct 2019 12:57:11 +0000 (14:57 +0200)]
[clangd] Store Index in Tweak::Selection

Summary:
Incoming define out-of-line tweak requires access to index.

This patch simply propogates the index in ClangdServer to Tweak::Selection while
passing the AST. Also updates TweakTest to accommodate this change.

Reviewers: ilya-biryukov

Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

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

5 years ago[clangd] Implement GetEligiblePoints
Kadir Cetinkaya [Wed, 25 Sep 2019 09:35:38 +0000 (11:35 +0200)]
[clangd] Implement GetEligiblePoints

Summary:
This is an helper for incoming move definition out-of-line action to
figure out possible insertion locations for definition of a qualified name.

Reviewers: hokein, ilya-biryukov

Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

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

5 years agogn build: Merge 74d39a42f10
LLVM GN Syncbot [Fri, 25 Oct 2019 10:01:34 +0000 (10:01 +0000)]
gn build: Merge 74d39a42f10

5 years ago[clangd] DefineInline action apply logic with fully qualified names
Kadir Cetinkaya [Fri, 6 Sep 2019 07:49:40 +0000 (09:49 +0200)]
[clangd] DefineInline action apply logic with fully qualified names

Summary:
Initial version of DefineInline action that will fully qualify every
name inside function body.

Reviewers: sammccall, ilya-biryukov, hokein

Tags: #clang

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

5 years ago[clangd] DefineInline action availability checks
Kadir Cetinkaya [Thu, 5 Sep 2019 12:10:43 +0000 (14:10 +0200)]
[clangd] DefineInline action availability checks

Summary:
Introduces DefineInline action and initial version of
availability checks.

Reviewers: sammccall, ilya-biryukov, hokein

Tags: #clang

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

5 years ago[obj2yaml] - Better dumping for relocations without symbols associated.
georgerim [Fri, 25 Oct 2019 09:28:33 +0000 (12:28 +0300)]
[obj2yaml] - Better dumping for relocations without symbols associated.

This just reorders the code and removes an assignment
of an empty string for the case when a relocation has
no symbol associated. With this our output becomes
cleaner and shorter.

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

5 years ago[llvm/Object] - Fix the error message reported for a broken SHT_SYMTAB_SHNDX section.
georgerim [Fri, 25 Oct 2019 08:55:11 +0000 (11:55 +0300)]
[llvm/Object] - Fix the error message reported for a broken SHT_SYMTAB_SHNDX section.

SHT_SYMTAB_SHNDX should have the same number of entries as the symbol table
associated (https://www.sco.com/developers/gabi/latest/ch4.sheader.html)

We currently can report the following message:
"SHT_SYMTAB_SHNDX section has sh_size (24) which is not equal to the number of symbols (2)"

It is just broken. This patch refines/fixes it.

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

5 years agoFix a variable typo in LiveDebugValues [NFC]
David Stenberg [Fri, 25 Oct 2019 09:21:11 +0000 (11:21 +0200)]
Fix a variable typo in LiveDebugValues [NFC]

5 years ago[docs] Update Mips feature table in CodeGenerator.rst
Simon Atanasyan [Fri, 25 Oct 2019 09:16:22 +0000 (12:16 +0300)]
[docs] Update Mips feature table in CodeGenerator.rst

Patch by Miloš Stojanović

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

5 years agoFix file-ordering nit in D67161.
Simon Tatham [Fri, 25 Oct 2019 08:14:14 +0000 (09:14 +0100)]
Fix file-ordering nit in D67161.

Re-sorted the module names in clang/utils/TableGen/CMakeLists.txt back
into alphabetical order.

5 years ago[PowerPC] [Peephole] fold frame offset by using index form to save add.
czhengsz [Fri, 25 Oct 2019 08:13:30 +0000 (04:13 -0400)]
[PowerPC] [Peephole] fold frame offset by using index form to save add.

renamable $x6 = ADDI8 $x1, -80      ;;; 0 is replaced with -80
renamable $x6 = ADD8 killed renamable $x6, renamable $x5
STW killed renamable $r3, 4, killed renamable $x6 :: (store 4 into %ir.14, !tbaa !2)

After PEI there is a peephole opt opportunity to combine above -80 in ADDI8 with 4 in the STW to eliminate unnecessary ADD8.

Expected result:
renamable $x6 = ADDI8 $x1, -76
STWX killed renamable $r3, renamable $x5, killed renamable $x6 :: (store 4 into %ir.6, !tbaa !2)

Reviewed by: stefanp

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

5 years ago[lldb] [Host/netbsd] Set Arg0 for 'platform process list -v'
Michał Górny [Thu, 24 Oct 2019 17:47:49 +0000 (19:47 +0200)]
[lldb] [Host/netbsd] Set Arg0 for 'platform process list -v'

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

5 years ago[LiveDebugValues] Small code clean up; NFC
Djordje Todorovic [Thu, 24 Oct 2019 08:08:43 +0000 (10:08 +0200)]
[LiveDebugValues] Small code clean up; NFC

5 years agogit-llvm: Drop dependency on github module
Tom Stellard [Fri, 25 Oct 2019 07:04:31 +0000 (00:04 -0700)]
git-llvm: Drop dependency on github module

This was required for blocking merge commits, but now that we have
branch protections, we don't need this.

5 years agogit-llvm: Push to master branch by default
Tom Stellard [Fri, 25 Oct 2019 06:53:59 +0000 (23:53 -0700)]
git-llvm: Push to master branch by default

This allows pushing without specifying a branch, which is what the
documentations says to do.

5 years agogn build: Merge ffa214ef228
LLVM GN Syncbot [Fri, 25 Oct 2019 06:36:53 +0000 (06:36 +0000)]
gn build: Merge ffa214ef228

5 years agogn build: Merge d0bd3fc88be
LLVM GN Syncbot [Fri, 25 Oct 2019 06:36:53 +0000 (06:36 +0000)]
gn build: Merge d0bd3fc88be

5 years agogn build: Merge bb6a27fc257
LLVM GN Syncbot [Fri, 25 Oct 2019 06:36:52 +0000 (06:36 +0000)]
gn build: Merge bb6a27fc257

5 years agogn build: (manually) merge 08074cc9
Nico Weber [Fri, 25 Oct 2019 06:35:14 +0000 (02:35 -0400)]
gn build: (manually) merge 08074cc9

5 years agoFix compilation warning. NFC.
Michael Liao [Fri, 25 Oct 2019 05:05:34 +0000 (01:05 -0400)]
Fix compilation warning. NFC.

5 years ago[hip] Allow the declaration of functions with variadic arguments in HIP.
Michael Liao [Thu, 24 Oct 2019 15:41:11 +0000 (11:41 -0400)]
[hip] Allow the declaration of functions with variadic arguments in HIP.

Summary:
- As variadic parameters have the lowest rank in overload resolution,
  without real usage of `va_arg`, they are commonly used as the
  catch-all fallbacks in SFINAE. As the front-end still reports errors
  on calls to `va_arg`, the declaration of functions with variadic
  arguments should be allowed in general.

Reviewers: jlebar, tra, yaxunl

Subscribers: cfe-commits

Tags: #clang

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

5 years ago[X86][GISel] Remove unneeded custom selection code for handling shifts.
Craig Topper [Fri, 25 Oct 2019 03:29:45 +0000 (20:29 -0700)]
[X86][GISel] Remove unneeded custom selection code for handling shifts.

5 years agodocs: Update instructions for requesting commit access
Tom Stellard [Thu, 24 Oct 2019 22:46:08 +0000 (15:46 -0700)]
docs: Update instructions for requesting commit access

5 years ago[SCEV] Expose and use maximum constant exit counts for individual loop exits
Philip Reames [Fri, 25 Oct 2019 01:58:26 +0000 (18:58 -0700)]
[SCEV] Expose and use maximum constant exit counts for individual loop exits

We were already going to all of the trouble of computing maximum constant exit counts for each loop exit, we might as well expose them through the API.  The change in IndVars is mostly to demonstrate that the wired up code works, but it als very slightly strengthens the transform.  The strengthened case is rather narrow though: it requires one exactly analyzeable exit, one imprecisely analyzeable exit (with the upper bound less than the precise one), and one unanalyzeable exit.  I coudn't construct a reasonably stable test case.

This does increase the memory usage of the BackedgeTakenCount by a factor of 2 in the worst case.

I also noticed the loop in IndVars is O(#Exits ^ 2).  This doesn't change with this patch.  A future patch will cache this result inside of SCEV to avoid requering.

5 years agoFix Clang -Wcovered-switch-default warning by moving llvm_unreachable default to...
David Blaikie [Fri, 25 Oct 2019 01:45:49 +0000 (18:45 -0700)]
Fix Clang -Wcovered-switch-default warning by moving llvm_unreachable default to after the switch

5 years agoTest commit via git.
Kai Luo [Fri, 25 Oct 2019 01:36:55 +0000 (01:36 +0000)]
Test commit via git.

5 years ago[clang][DependencyScanning] clang-format.
Michael Spencer [Fri, 25 Oct 2019 01:25:28 +0000 (18:25 -0700)]
[clang][DependencyScanning] clang-format.

5 years ago[SCEV] Start reworking backedge taken count APIs to unify max handling [NFC]
Philip Reames [Fri, 25 Oct 2019 01:19:41 +0000 (18:19 -0700)]
[SCEV] Start reworking backedge taken count APIs to unify max handling [NFC]

This is a first step in figuring out a proper API for maximum (non constant) exit counts.  This may evolve a bit as we get experience with the API needs; suggestions very welcome.  This patch just tried to provide a framework that we can later add maximum too in a clean and obvious way.

5 years ago[clang][ThinLTO] Promote cc1 -fthin_link_bitcode to driver -fthinlto_link_bitcode
Yuanfang Chen [Thu, 24 Oct 2019 19:31:40 +0000 (12:31 -0700)]
[clang][ThinLTO] Promote cc1 -fthin_link_bitcode to driver -fthinlto_link_bitcode

Summary:
A necessary step to let build system caching work for its output.

Reviewers: tejohnson, steven_wu

Reviewed by: tejohnson

Subscribers: mehdi_amini, inglorion, dexonsmith, cfe-commits

Tags: #clang

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

5 years agoRevert "Recommit "[Clang] Pragma vectorize_width() implies vectorize(enable)""
Jordan Rupprecht [Thu, 24 Oct 2019 23:17:19 +0000 (16:17 -0700)]
Revert "Recommit "[Clang] Pragma vectorize_width() implies vectorize(enable)""

This reverts commit 80371c74ae63d2f260bcc75408be9c6f81e38465.

Given the following source:
```
void a() {
  for (;;)
    ;
}
```

It incorrectly enables vectorization (with vector width 1), as well as generating a warning that vectorization could not be performed.

5 years ago[CMake] Update Fuchsia build configuration
Petr Hosek [Thu, 24 Oct 2019 23:24:00 +0000 (16:24 -0700)]
[CMake] Update Fuchsia build configuration

This includes several changes to our toolchain build:
- Switch from RelWithDebInfo to Release as we don't currently use the
  debug info and therefore don't need to produce it.
- Disable unwind tables since we don't need them.
- Disable Clang static analyzer and ARCMT since we don't use it.
- Disable Go tests since we don't distribute Go bindings.
- Set the deployment target for macOS to 10.7 to make the toolchain
  usable on older systems.
- Restrict the targets we build runtimes for on Darwin only the ones
  we actually need.
- Drop llc and opt from the distribution since we don't need them.

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

5 years ago[SCEV] Delete unused code from header
Philip Reames [Thu, 24 Oct 2019 23:34:39 +0000 (16:34 -0700)]
[SCEV] Delete unused code from header

5 years ago[clang-scan-deps] Add basic support for modules.
Michael Spencer [Thu, 10 Oct 2019 21:40:17 +0000 (14:40 -0700)]
[clang-scan-deps] Add basic support for modules.

This fixes two issues that prevent simple uses of modules from working.

* We would previously minimize _every_ file opened by clang, even module maps
  and module pcm files. Now we only minimize files with known extensions. It
  would be better if we knew which files clang intended to open as a source
  file, but this works for now.

* We previously cached every lookup, even failed lookups. This is a problem
  because clang stats the module cache directory before building a module and
  creating that directory. If we cache that failure then the subsequent pcm
  load doesn't see the module cache and fails.

Overall this still leaves us building minmized modules on disk during scanning.
This will need to be improved eventually for performance, but this is correct,
and works for now.

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

5 years ago[clang]Fixup clang -Werror,,-Wcovered-switch-default build failures
Jinsong Ji [Thu, 24 Oct 2019 22:07:53 +0000 (22:07 +0000)]
[clang]Fixup clang -Werror,,-Wcovered-switch-default build failures

llvm/clang/lib/CodeGen/CGBuiltin.cpp:6877:3: error: default label in
switch which covers all enumeration values
[-Werror,-Wcovered-switch-default]

Similar to
https://reviews.llvm.org/rG7b3de1e811972b874d91554642ccb2ef5b32eed6

5 years agoAlways flush pending errors in MCAsmParser
Joerg Sonnenberger [Wed, 23 Oct 2019 13:39:10 +0000 (15:39 +0200)]
Always flush pending errors in MCAsmParser

This has become visible with the --fatal-warnings support.

5 years ago[compiler-rt] cmake: add include(BuiltinTests) to CompilerRTDarwinUtils
Puyan Lotfi [Thu, 24 Oct 2019 22:36:10 +0000 (18:36 -0400)]
[compiler-rt] cmake: add include(BuiltinTests) to CompilerRTDarwinUtils

In cmake, if TEST_COMPILE_ONLY is set
compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake invokes try_compile_only()
but try_compile_only() is defined in BuiltinTests.cmake and is not included in
CompilerRTDarwinUtils.cmake. This patch simply includes it BuiltinTests.

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

5 years agoTest commit access via git
Philip Reames [Thu, 24 Oct 2019 22:09:57 +0000 (15:09 -0700)]
Test commit access via git

5 years agoWhen diagnosing an ambiguity, only note the candidates that contribute
Richard Smith [Thu, 24 Oct 2019 00:54:10 +0000 (17:54 -0700)]
When diagnosing an ambiguity, only note the candidates that contribute
to the ambiguity, rather than noting all viable candidates.

5 years ago[CMake] Move LLDB_TEST_BUILD_DIRECTORY into test/CMakeLists.txt
Jonas Devlieghere [Thu, 24 Oct 2019 20:19:00 +0000 (13:19 -0700)]
[CMake] Move LLDB_TEST_BUILD_DIRECTORY into test/CMakeLists.txt

The LLDB_TEST_BUILD_DIRECTORY variable only matters to the different
test suites. Therefore they belong in test/CMakeLists.txt rather than
the top-level CMakeLists.txt.

5 years ago[CMake] Move test dependency tracking into test/CMakeLists.txt
Jonas Devlieghere [Thu, 24 Oct 2019 20:15:17 +0000 (13:15 -0700)]
[CMake] Move test dependency tracking into test/CMakeLists.txt

As the name suggests, the LLDB test dependencies only matter to the
different test suites. Therefore they belong in test/CMakeLists.txt
rather than the top-level CMakeLists.txt.

5 years ago[CMake] Don't set LLDB_TEST_* in the top-level CMakeLists
Jonas Devlieghere [Thu, 24 Oct 2019 20:09:23 +0000 (13:09 -0700)]
[CMake] Don't set LLDB_TEST_* in the top-level CMakeLists

All these variables only affect the API tests. Therefore they belong in
test/API/CMakeLists.txt rather than the top-level CMakeLists.txt.

5 years ago[CMake] Remove unused variable LLDB_TEST_CXX_COMPILER
Jonas Devlieghere [Thu, 24 Oct 2019 19:49:47 +0000 (12:49 -0700)]
[CMake] Remove unused variable LLDB_TEST_CXX_COMPILER

CMake allows you to set a custom CXX compiler for the API test suite.
However, this variable is never used, because dotest uses the same
compiler to build C and CXX sources.

I'm not sure if this variable was added with the intention of supporting
a different compiler or if this is just a remnant of old functionality.
Given that this hasn't been working for a while, I assume it's safe to
remove.

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

5 years agoFix lld detection in standalone compiler-rt.
Evgenii Stepanov [Thu, 24 Oct 2019 20:14:03 +0000 (13:14 -0700)]
Fix lld detection in standalone compiler-rt.

Summary:
Right now all hwasan tests on Android are silently disabled because they
require "has_lld" and standalone compiler-rt can not (and AFAIK was
never able to) set it.

Reviewers: pcc

Subscribers: dberris, mgorny, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

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

5 years agoTry harder to fix GCC 5.3 build
Hans Wennborg [Thu, 24 Oct 2019 21:42:01 +0000 (23:42 +0200)]
Try harder to fix GCC 5.3 build

(This time verified locally.)

It was failing with:

llvm/lib/MC/XCOFFObjectWriter.cpp:168:56: error: array must be initialized with a brace-enclosed initializer
   std::array<Section *const, 2> Sections = {&Text, &BSS};
                                                        ^

5 years ago[AMDGPU] Clean up update_llc_test_checks CodeGen tests
Scott Linder [Thu, 24 Oct 2019 20:02:26 +0000 (16:02 -0400)]
[AMDGPU] Clean up update_llc_test_checks CodeGen tests

Summary:
Some tests have been hand edited without removing the
update_llc_test_checks header, some have slightly outdated CHECK lines
which still pass, and some have additional comments which
update_llc_test_checks pushes towards the function body.

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Tags: #llvm

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

5 years ago[Concepts] Constraint Enforcement & Diagnostics
Saar Raz [Thu, 24 Oct 2019 21:09:37 +0000 (00:09 +0300)]
[Concepts] Constraint Enforcement & Diagnostics

Part of the C++20 concepts implementation effort.
- Associated constraints (requires clauses, currently) are now enforced when instantiating/specializing templates and when considering partial specializations and function overloads.
- Elaborated diagnostics give helpful insight as to why the constraints were not satisfied.
Phabricator: D41569

5 years agoFix cppcheck shadow variable warning. NFCI.
Simon Pilgrim [Thu, 24 Oct 2019 21:13:55 +0000 (22:13 +0100)]
Fix cppcheck shadow variable warning. NFCI.