platform/upstream/llvm.git
5 years agoSplit ActOnCallExpr into an ActOnCallExpr to be called by the parser,
Richard Smith [Wed, 8 May 2019 01:36:36 +0000 (01:36 +0000)]
Split ActOnCallExpr into an ActOnCallExpr to be called by the parser,
and a BuildCallExpr to be called internally within Sema to build /
rebuild calls.

llvm-svn: 360217

5 years agoPropagate command interpreter errors from lldlbinit
Jonas Devlieghere [Wed, 8 May 2019 01:23:47 +0000 (01:23 +0000)]
Propagate command interpreter errors from lldlbinit

This patch ensures that we propagate errors coming from the lldbinit
file trough the command/script interpreter. Before, if you did something
like command script import syntax_error.py, and the python file
contained a syntax error, lldb wouldn't tell you about it. This changes
with the current patch: errors are now propagated by default.

PS: Jim authored this change and I added testing.

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

llvm-svn: 360216

5 years ago[libFuzzer] extend the test for data flow tracer and coverage; also hopefully fix...
Kostya Serebryany [Wed, 8 May 2019 01:03:05 +0000 (01:03 +0000)]
[libFuzzer] extend the test for data flow tracer and coverage; also hopefully fix it on the bot

llvm-svn: 360215

5 years ago[hip] Fix ambiguity from `>>>` of CUDA.
Michael Liao [Wed, 8 May 2019 00:52:33 +0000 (00:52 +0000)]
[hip] Fix ambiguity from `>>>` of CUDA.

Summary:
- For template arguments ending with `>>>`, we should cease lookahead
  and treat it as type-id firstly, so that deduction could work
  properly.

Reviewers: tra, yaxunl

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 360214

5 years ago[libFuzzer] extend the data flow tracer to also produce basic block coverage for...
Kostya Serebryany [Wed, 8 May 2019 00:51:15 +0000 (00:51 +0000)]
[libFuzzer] extend the data flow tracer to also produce basic block coverage for every input. An extended test coming in a separte change.

llvm-svn: 360213

5 years agoFix build on NetBSD 8.99.38
Kamil Rytarowski [Wed, 8 May 2019 00:44:41 +0000 (00:44 +0000)]
Fix build on NetBSD 8.99.38

With recent changes the dev/nvmm/nvmm_ioctl.h header is no longer
a standalone NVMM header. Disable it until the NVMM operations will
stabilize and be included in the ioctl(2) interceptors.

llvm-svn: 360212

5 years ago[libFuzzer] disable two tests on i386 that are causing timeouts on the bots
Kostya Serebryany [Wed, 8 May 2019 00:43:12 +0000 (00:43 +0000)]
[libFuzzer] disable two tests on i386 that are causing timeouts on the bots

llvm-svn: 360211

5 years ago[Tests] Expand coverage of small memset zero idioms
Philip Reames [Tue, 7 May 2019 23:48:42 +0000 (23:48 +0000)]
[Tests] Expand coverage of small memset zero idioms

llvm-svn: 360210

5 years ago[Docs] Add timestamp
Jonas Devlieghere [Tue, 7 May 2019 23:14:06 +0000 (23:14 +0000)]
[Docs] Add timestamp

llvm-svn: 360209

5 years ago[Expression] Remove unused dependency
Alex Langford [Tue, 7 May 2019 23:11:05 +0000 (23:11 +0000)]
[Expression] Remove unused dependency

lldbExpression was linking against lldbPluginExpressionParserClang, and
lldbPluginExpressionParserClang was linking against lldbExpression.
There's no reason lldbExpression should need anything from
lldbPluginExpressionParserClang, so let's remove that dependency.

llvm-svn: 360208

5 years ago[COFF] Use COFF stubs for extern_weak functions
Reid Kleckner [Tue, 7 May 2019 23:06:21 +0000 (23:06 +0000)]
[COFF] Use COFF stubs for extern_weak functions

Summary:
A COFF stub indirects the reference to a symbol through memory. A
.refptr.$sym global variable pointer is created to refer to $sym.
Typically mingw uses these for external global variable declarations,
but we can use them for weak function declarations as well.

Updates the dso_local classification to add a special case for
extern_weak symbols on COFF in both clang and LLVM.

Fixes PR37598

Reviewers: smeenai, mstorsjo

Subscribers: hiraditya, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

llvm-svn: 360207

5 years ago[ValueTracking] add logic for known-never-nan with minnum/maxnum
Sanjay Patel [Tue, 7 May 2019 22:58:31 +0000 (22:58 +0000)]
[ValueTracking] add logic for known-never-nan with minnum/maxnum

From the LangRef: "Returns NaN only if both operands are NaN."

llvm-svn: 360206

5 years agoReapply r360194 "[JITLink] Add support for MachO .alt_entry atoms." with fixes.
Lang Hames [Tue, 7 May 2019 22:56:40 +0000 (22:56 +0000)]
Reapply r360194 "[JITLink] Add support for MachO .alt_entry atoms." with fixes.

This patch modifies MachOAtomGraphBuilder to use setLayoutNext rather than
addEdge, and fixes a bug in the section layout algorithm that could result in
atoms appearing more than once in the section ordering (which resulted in those
atoms being assigned invalid addresses during layout).

llvm-svn: 360205

5 years agoRegenerate test case again after last revert
Reid Kleckner [Tue, 7 May 2019 22:40:40 +0000 (22:40 +0000)]
Regenerate test case again after last revert

llvm-svn: 360204

5 years agoDelete test cases added in r360162 that should have been deleted in r360190
Reid Kleckner [Tue, 7 May 2019 22:35:56 +0000 (22:35 +0000)]
Delete test cases added in r360162 that should have been deleted in r360190

llvm-svn: 360203

5 years ago[analyzer] Fix a crash when doing RVO from within blocks.
Artem Dergachev [Tue, 7 May 2019 22:33:13 +0000 (22:33 +0000)]
[analyzer] Fix a crash when doing RVO from within blocks.

When looking for the location context of the call site, unwrap block invocation
contexts because they are attached to the current AnalysisDeclContext
while what we need is the previous AnalysisDeclContext.

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

llvm-svn: 360202

5 years ago[MemorySSA] Fix CHECKs in test. [NFC]
Alina Sbirlea [Tue, 7 May 2019 22:26:52 +0000 (22:26 +0000)]
[MemorySSA] Fix CHECKs in test. [NFC]

llvm-svn: 360201

5 years agoRevert r360194 "[JITLink] Add support for MachO .alt_entry atoms."
Lang Hames [Tue, 7 May 2019 22:19:29 +0000 (22:19 +0000)]
Revert r360194 "[JITLink] Add support for MachO .alt_entry atoms."

The testcase is asserting on some bots - reverting while I investigate.

llvm-svn: 360200

5 years ago[AMDGPU] Check MI bundles for hazards
Austin Kerbow [Tue, 7 May 2019 22:12:15 +0000 (22:12 +0000)]
[AMDGPU] Check MI bundles for hazards

Summary: GCNHazardRecognizer fails to identify hazards that are in and around bundles. This patch allows the hazard recognizer to consider bundled instructions in both scheduler and hazard recognizer mode. We ignore “bundledness” for the purpose of detecting hazards and examine the instructions individually.

Reviewers: arsenm, msearles, rampitec

Reviewed By: rampitec

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

Tags: #llvm

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

llvm-svn: 360199

5 years ago[CodeGen] Rename DEBUG_TYPE for default hazard recognizer.
Austin Kerbow [Tue, 7 May 2019 22:09:04 +0000 (22:09 +0000)]
[CodeGen] Rename DEBUG_TYPE for default hazard recognizer.

Summary:
The DEBUG_TYPE of the default hazard recognizer should be updated to
match the DEBUG_TYPE of the machine-scheduler pass.

Reviewers: rampitec

Reviewed By: rampitec

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

llvm-svn: 360198

5 years ago[InstSimplify] add tests for minnum/maxnum and NaN; NFC
Sanjay Patel [Tue, 7 May 2019 21:50:09 +0000 (21:50 +0000)]
[InstSimplify] add tests for minnum/maxnum and NaN; NFC

llvm-svn: 360197

5 years ago[CMake] Detecting python modules should be cached
Chris Bieneman [Tue, 7 May 2019 21:46:55 +0000 (21:46 +0000)]
[CMake] Detecting python modules should be cached

Summary: This requres exec-ing python, which in a trace I ran of the CMake re-configure time took ~2% of the reconfigure time.

Reviewers: phosek, smeenai, compnerd

Subscribers: mgorny, llvm-commits

Tags: #llvm

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

llvm-svn: 360196

5 years ago-frewrite-imports: Add support for wildcard rules in umbrella modules with
David Blaikie [Tue, 7 May 2019 21:38:51 +0000 (21:38 +0000)]
-frewrite-imports: Add support for wildcard rules in umbrella modules with

This trips over a few other limitations, but in the interests of incremental development I'm starting here & I'll look at the issues with -verify and filesystem checks (the fact that the behavior depends on the existence of a 'foo' directory even though it shouldn't need it), etc.

Reviewers: rsmith

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

llvm-svn: 360195

5 years ago[JITLink] Add support for MachO .alt_entry atoms.
Lang Hames [Tue, 7 May 2019 21:35:14 +0000 (21:35 +0000)]
[JITLink] Add support for MachO .alt_entry atoms.

The MachO .alt_entry directive is applied to a symbol to indicate that it is
locked (in terms of address layout and liveness) to its predecessor atom. I.e.
it is an alternate entry point, at a fixed offset, for the previous atom.

This patch updates MachOAtomGraphBuilder to check for the .alt_entry flag on
symbols and add a corresponding LayoutNext edge to the atom-graph. It also
updates MachOAtomGraphBuilder_x86_64 to generalize handling of the
X86_64_RELOC_SUBTRACTOR relocation: previously either the minuend or
subtrahend of the subtraction had to be the same as the atom being fixed up,
now it is only necessary for the minuend or subtrahend to be locked (via any
chain of alt_entry directives) to the atom being fixed up.

llvm-svn: 360194

5 years ago[Core] Remove unused dependencies
Alex Langford [Tue, 7 May 2019 21:34:44 +0000 (21:34 +0000)]
[Core] Remove unused dependencies

llvm-svn: 360193

5 years agoRevert "[OpenMP][Clang] Support for target math functions"
Jonas Devlieghere [Tue, 7 May 2019 21:08:15 +0000 (21:08 +0000)]
Revert "[OpenMP][Clang] Support for target math functions"

This commit appears to be breaking stage-2 builds on GreenDragon. The
OpenMP wrappers for cmath and math.h are copied into the root of the
resource directory and cause a cyclic dependency in module 'Darwin':
Darwin -> std -> Darwin. This blows up when CMake is testing for modules
support and breaks all stage 2 module builds, including the ThinLTO bot
and all LLDB bots.

CMake Error at cmake/modules/HandleLLVMOptions.cmake:497 (message):
  LLVM_ENABLE_MODULES is not supported by this compiler

llvm-svn: 360192

5 years agorevert r360162 as it breaks most of the buildbots
Kostya Serebryany [Tue, 7 May 2019 20:57:11 +0000 (20:57 +0000)]
revert r360162 as it breaks most of the buildbots

llvm-svn: 360190

5 years ago[ConstantRange] Simplify makeGNWR implementation; NFC
Nikita Popov [Tue, 7 May 2019 20:34:46 +0000 (20:34 +0000)]
[ConstantRange] Simplify makeGNWR implementation; NFC

Compute results in more direct ways, avoid subset intersect
operations. Extract the core code for computing mul nowrap ranges
into separate static functions, so they can be reused.

llvm-svn: 360189

5 years ago[COFF] Store Chunk RVAs and section offsets as uint32_t
Reid Kleckner [Tue, 7 May 2019 20:30:41 +0000 (20:30 +0000)]
[COFF] Store Chunk RVAs and section offsets as uint32_t

Saves 8 bytes on SectionChunk, one of the most commonly allocated data
structures.

llvm-svn: 360188

5 years ago[mips] Fix ld instruction in PLT entries on MIPS64
Simon Atanasyan [Tue, 7 May 2019 20:26:23 +0000 (20:26 +0000)]
[mips] Fix ld instruction in PLT entries on MIPS64

Use `ld` and `daddiu` instructions in MIPS64 PLT records. That fixes a
segmentation fault.

Patch by Qiao Pengcheng.

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

llvm-svn: 360187

5 years ago[mips] Rename test case. NFC
Simon Atanasyan [Tue, 7 May 2019 20:26:12 +0000 (20:26 +0000)]
[mips] Rename test case. NFC

This test case checks MIPS PLT records for N64 ABI. For the N32 ABI case
there is a separate test case `mips-plt-n32.s`.

llvm-svn: 360186

5 years ago[InstCombine] Add new combine to add folding
Robert Lougher [Tue, 7 May 2019 19:36:41 +0000 (19:36 +0000)]
[InstCombine] Add new combine to add folding

(X | C1) + C2 --> (X | C1) ^ C1 iff (C1 == -C2)

I verified the correctness using Alive:
https://rise4fun.com/Alive/YNV

This transform enables the following transform that already exists in
instcombine:

(X | Y) ^ Y --> X & ~Y

As a result, the full expected transform is:

(X | C1) + C2 --> X & ~C1 iff (C1 == -C2)

There already exists the transform in the sub case:

(X | Y) - Y --> X & ~Y

However this does not trigger in the case where Y is constant due to an earlier
transform:

X - (-C) --> X + C

With this new add fold, both the add and sub constant cases are handled.

Patch by Chris Dawson.

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

llvm-svn: 360185

5 years agoMake sure that the DAG combiner doesn't merge stores that we explicitly
Eric Christopher [Tue, 7 May 2019 19:25:34 +0000 (19:25 +0000)]
Make sure that the DAG combiner doesn't merge stores that we explicitly
asked not be greater than preferred vector width for the vectorizer.
Test for both 128 and 256 with a skylake architecture.

llvm-svn: 360183

5 years agoDisable eh-frame-dwarf-unwind.test on windows
Pavel Labath [Tue, 7 May 2019 19:24:28 +0000 (19:24 +0000)]
Disable eh-frame-dwarf-unwind.test on windows

It fails on the windows bot. Disable until I can figure out what's the
reason.

llvm-svn: 360182

5 years ago[compiler-rt] Create install targets for Darwin libraries
Shoaib Meenai [Tue, 7 May 2019 19:00:37 +0000 (19:00 +0000)]
[compiler-rt] Create install targets for Darwin libraries

Darwin targets were generating CMake install rules but not the
corresponding install targets. Centralize the existing install target
creation to a function and use that function for both Darwin and
non-Darwin builds.

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

llvm-svn: 360181

5 years ago[InstCombine] allow sinking fneg operands through an FP min/max
Sanjay Patel [Tue, 7 May 2019 18:58:07 +0000 (18:58 +0000)]
[InstCombine] allow sinking fneg operands through an FP min/max

Fundamentally/generally, we should not have to rely on bailouts/crippling of
folds. In this particular case, I think we always recognize the inverted
predicate min/max pattern, so there should not be any loss of optimization.
Codegen looks better because we are eliminating an fneg.

llvm-svn: 360180

5 years ago[CommandLine] Allow Options to specify multiple OptionCategory's.
Don Hinton [Tue, 7 May 2019 18:57:01 +0000 (18:57 +0000)]
[CommandLine] Allow Options to specify multiple OptionCategory's.

Summary:
It's not uncommon for separate components to share common
Options, e.g., it's common for related Passes to share Options in
addition to the Pass specific ones.

With this change, components can use OptionCategory's to simply help
output even if some of the options are shared.

Reviewed By: MaskRay

Tags: #llvm

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

llvm-svn: 360179

5 years ago[Host] Clean up dependencies of HostMacOSXObjCXX
Alex Langford [Tue, 7 May 2019 18:08:06 +0000 (18:08 +0000)]
[Host] Clean up dependencies of HostMacOSXObjCXX

llvm-svn: 360178

5 years ago[Tests] Yet more combination of tests for unordered.atomic memset
Philip Reames [Tue, 7 May 2019 17:45:52 +0000 (17:45 +0000)]
[Tests] Yet more combination of tests for unordered.atomic memset

llvm-svn: 360177

5 years agoDebug Info: Support address space attributes on rvalue references.
Adrian Prantl [Tue, 7 May 2019 17:42:38 +0000 (17:42 +0000)]
Debug Info: Support address space attributes on rvalue references.

DWARF5, 2.12 20ff says that

Any debugging information entry representing a pointer or reference
type [may have a DW_AT_address_class attribute].

The existing code (https://reviews.llvm.org/D29670) seems to take a
quite literal interpretation of that wording. I don't see a reason why
an rvalue reference isn't a reference type in the spirit of that
paragraph. This patch allows rvalue references to also have address
spaces.

rdar://problem/50511483

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

llvm-svn: 360176

5 years ago[PowerPC][NFC] Update build-vector-tests.ll using utils/update_llc_test_checks.py
Jinsong Ji [Tue, 7 May 2019 17:29:44 +0000 (17:29 +0000)]
[PowerPC][NFC] Update build-vector-tests.ll using utils/update_llc_test_checks.py

build-vector-tests.ll is a huge testcase, it is hard to maintain: eg:
any fundamental changes might need to update hundreds of lines. We should
leverage the script to maintain it.

This patch simply run utils/update_llc_test_checks.py on it. There
should be no missing test points.

llvm-svn: 360175

5 years agoGuard __builtin_available() with __has_builtin to support older host compilers.
Adrian Prantl [Tue, 7 May 2019 17:10:27 +0000 (17:10 +0000)]
Guard __builtin_available() with __has_builtin to support older host compilers.

llvm-svn: 360174

5 years agoRegenerate test to try and fix buildbots
Simon Pilgrim [Tue, 7 May 2019 17:10:10 +0000 (17:10 +0000)]
Regenerate test to try and fix buildbots

llvm-svn: 360173

5 years ago[Driver] Add command line option to allow loading local lldbinit file.
Jonas Devlieghere [Tue, 7 May 2019 16:57:17 +0000 (16:57 +0000)]
[Driver] Add command line option to allow loading local lldbinit file.

This patch adds a command line flag that allows lldb to load local
lldbinit files.

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

llvm-svn: 360172

5 years ago[DAGCombiner] Avoid creating large tokenfactors in visitTokenFactor
Florian Hahn [Tue, 7 May 2019 16:47:27 +0000 (16:47 +0000)]
[DAGCombiner] Avoid creating large tokenfactors in visitTokenFactor

When simplifying TokenFactors, we potentially iterate over all
operands of a large number of TokenFactors. This causes quadratic
compile times in some cases and the large token factors cause additional
scalability problems elsewhere.

This patch adds some limits to the number of nodes explored for the
cases mentioned above.

Reviewers: niravd, spatel, craig.topper

Reviewed By: niravd

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

llvm-svn: 360171

5 years ago[InstCombine] add tests for FP min/max with negated operands; NFC
Sanjay Patel [Tue, 7 May 2019 16:25:43 +0000 (16:25 +0000)]
[InstCombine] add tests for FP min/max with negated operands; NFC

llvm-svn: 360170

5 years agoFixup r360161
Pavel Labath [Tue, 7 May 2019 16:13:10 +0000 (16:13 +0000)]
Fixup r360161

Remove SymbolVendorMacOSX from the test, as this plugin is not available
on non-mac platforms, and it does not seem to be necessary anyway.

Declare inlined-functions.yaml as an input of the test in cmake.

llvm-svn: 360169

5 years agoMake eh-frame-dwarf-unwind.test run on non-linux platforms
Pavel Labath [Tue, 7 May 2019 16:13:05 +0000 (16:13 +0000)]
Make eh-frame-dwarf-unwind.test run on non-linux platforms

This was meant to be a part of r360158, but I forgot to squash the
commits before pushing.

llvm-svn: 360168

5 years agoMark private function __sign as constexpr.
Marshall Clow [Tue, 7 May 2019 16:07:24 +0000 (16:07 +0000)]
Mark private function __sign as constexpr.

llvm-svn: 360167

5 years agoPostfixExpression: Use signed integers in IntegerNode
Pavel Labath [Tue, 7 May 2019 15:58:20 +0000 (15:58 +0000)]
PostfixExpression: Use signed integers in IntegerNode

Summary:
This is necessary to support parsing expressions like ".cfa -16 + ^", as
that format is used in breakpad STACK CFI expressions.

Since the PDB expressions use the same parser, this change will affect
them too, but I don't believe that should be a problem in practice. If
PDBs do contain the negative values, it's very likely that they are
intended to be parsed the same way, and if they don't, then it doesn't
matter.

In case that we do ever need to handle this differently, we can always
make the parser behavior customizable, or just use a different parser.

To make sure that the integer size is big enough for everyone, I switch
from using a (unsigned) 32-bit integer to a 64-bit (signed) one.

Reviewers: amccarth, clayborg, aleksandr.urakov

Subscribers: markmentovai, lldb-commits

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

llvm-svn: 360166

5 years ago[WebAssembly] Don't generate unused table entries.
Sam Clegg [Tue, 7 May 2019 15:46:30 +0000 (15:46 +0000)]
[WebAssembly] Don't generate unused table entries.

When generating PIC output only relocations of type
R_WASM_TABLE_INDEX_REL_SLEB should generate table entries.

R_WASM_TABLE_INDEX_I32 get resolved at runtime via the auto-generated
__wasm_apply_relocs functions.

R_WASM_TABLE_INDEX_SLEB are not allowed in PIC code.

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

llvm-svn: 360165

5 years agoAvoid use-after-move warnings by using swap instead. NFCI.
Simon Pilgrim [Tue, 7 May 2019 15:45:00 +0000 (15:45 +0000)]
Avoid use-after-move warnings by using swap instead. NFCI.

Swap should be as quick in these cases, and leaves the original variables in a known (empty) state.

llvm-svn: 360164

5 years ago[scudo][standalone] Introduce the Quarantine
Kostya Kortchinsky [Tue, 7 May 2019 15:40:09 +0000 (15:40 +0000)]
[scudo][standalone] Introduce the Quarantine

Summary:
The Quarantine is used to hold chunks for a little while prior to
actually releasing them for potential reuse. The code is pretty much
the same as the sanitizer_common one, with additional shuffling of
the quarantine batches to decrease predictability of allocation
patterns when it is enabled.

Reviewers: vitalybuka, eugenis, hctim, morehouse

Reviewed By: morehouse

Subscribers: mgorny, delcypher, jfb, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

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

llvm-svn: 360163

5 years ago[DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop...
Orlando Cazalet-Hyams [Tue, 7 May 2019 15:37:38 +0000 (15:37 +0000)]
[DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop even after completion

Summary:
Bug: https://bugs.llvm.org/show_bug.cgi?id=39024

The bug reports that a vectorized loop is stepped through 4 times and each step through the loop seemed to show a different path. I found two problems here:

A) An incorrect line number on a preheader block (for.body.preheader) instruction causes a step into the loop before it begins.
B) Instructions in the middle block have different line numbers which give the impression of another iteration.

In this patch I give all of the middle block instructions the line number of the scalar loop latch terminator branch. This seems to provide the smoothest debugging experience because the vectorized loops will always end on this line before dropping into the scalar loop. To solve problem A I have altered llvm::SplitBlockPredecessors to accommodate loop header blocks.

Reviewers: samsonov, vsk, aprantl, probinson, anemet, hfinkel

Reviewed By: hfinkel

Subscribers: bjope, jmellorcrummey, hfinkel, gbedwell, hiraditya, zzheng, llvm-commits

Tags: #llvm, #debug-info

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

llvm-svn: 360162

5 years agoAdded missing files from 360071.
Greg Clayton [Tue, 7 May 2019 15:37:28 +0000 (15:37 +0000)]
Added missing files from 360071.

llvm-svn: 360161

5 years ago[JITLink] Fix some copy/paste related typos in a test case.
Lang Hames [Tue, 7 May 2019 15:35:43 +0000 (15:35 +0000)]
[JITLink] Fix some copy/paste related typos in a test case.

Several X86_64_RELOC_SUBTRACTOR tests for subtrahend handling were incorrectly
labeled as tests for kinds of minuend handling.

llvm-svn: 360160

5 years ago[SCEV] Add explicit representations of umin/smin
Keno Fischer [Tue, 7 May 2019 15:28:47 +0000 (15:28 +0000)]
[SCEV] Add explicit representations of umin/smin

Summary:
Currently we express umin as `~umax(~x, ~y)`. However, this becomes
a problem for operands in non-integral pointer spaces, because `~x`
is not something we can compute for `x` non-integral. However, since
comparisons are generally still allowed, we are actually able to
express `umin(x, y)` directly as long as we don't try to express is
as a umax. Support this by adding an explicit umin/smin representation
to SCEV. We do this by factoring the existing getUMax/getSMax functions
into a new function that does all four. The previous two functions were
largely identical.

Reviewed By: sanjoy
Differential Revision: https://reviews.llvm.org/D50167

llvm-svn: 360159

5 years agoRegisterContextLLDB: Push CFA value on DWARF stack when evaluating register expressions
Pavel Labath [Tue, 7 May 2019 15:27:35 +0000 (15:27 +0000)]
RegisterContextLLDB: Push CFA value on DWARF stack when evaluating register expressions

Summary:
This behavior is specified in the Section 6.4.2.3 (Register Rule
instructions) of the DWARF4 spec. We were not doing that, which meant
that any register rule which was relying on the cfa value being there
was not evaluated correctly (it was aborted due to "out of bounds"
access).

I'm not sure how come this wasn't noticed before, but I guess this has
something to do with the fact that dwarf unwind expressions are not used
very often, and when they are, the situation is so complicated that the
CFA is of no use. I noticed this when I started emitting dwarf
expressions for the unwind information present in breakpad symbol files.

Reviewers: jasonmolenda, clayborg

Subscribers: aprantl, lldb-commits

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

llvm-svn: 360158

5 years agoFix local shadow variable warning. NFCI.
Simon Pilgrim [Tue, 7 May 2019 14:56:34 +0000 (14:56 +0000)]
Fix local shadow variable warning. NFCI.

llvm-svn: 360157

5 years ago[ASTImporter] Corrected type of integer constant in a test.
Balazs Keri [Tue, 7 May 2019 14:53:04 +0000 (14:53 +0000)]
[ASTImporter] Corrected type of integer constant in a test.

llvm-svn: 360156

5 years agoAdd an explicit triple to this test to hopefully appease the build bots.
Aaron Ballman [Tue, 7 May 2019 14:40:37 +0000 (14:40 +0000)]
Add an explicit triple to this test to hopefully appease the build bots.

llvm-svn: 360155

5 years ago[lldb] [lit] Update constants in write Register tests
Michal Gorny [Tue, 7 May 2019 14:35:59 +0000 (14:35 +0000)]
[lldb] [lit] Update constants in write Register tests

Update the constants used for XMM/YMM/ZMM registers to match read tests.

llvm-svn: 360154

5 years ago[Tooling] Add -x flags when inferring compile commands for files with no/invalid...
Sam McCall [Tue, 7 May 2019 14:34:06 +0000 (14:34 +0000)]
[Tooling] Add -x flags when inferring compile commands for files with no/invalid extension.

Summary: We treat them as headers, as the motivating case is C++ standard library.

Reviewers: kadircet

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 360153

5 years ago[OpenCL] Prevent mangling kernel functions.
Anastasia Stulova [Tue, 7 May 2019 14:22:34 +0000 (14:22 +0000)]
[OpenCL] Prevent mangling kernel functions.

Kernel function names have to be preserved as in the original
source to be able to access them from the host API side.

This commit also adds restriction to kernels that prevents them
from being used in overloading, templates, etc.

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

llvm-svn: 360152

5 years ago[clangd] Introduce intermediate representation of formatted text
Ilya Biryukov [Tue, 7 May 2019 14:18:18 +0000 (14:18 +0000)]
[clangd] Introduce intermediate representation of formatted text

Summary: That can render to markdown or plain text. Used for findHover requests.

Reviewers: malaperle, sammccall, kadircet

Reviewed By: sammccall

Subscribers: mgorny, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

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

llvm-svn: 360151

5 years agolld-link: Allow /? as option prefix, like -? is allowed
Nico Weber [Tue, 7 May 2019 14:15:35 +0000 (14:15 +0000)]
lld-link: Allow /? as option prefix, like -? is allowed

link.exe seems to allow `/?foo` and `-?foo` in addition to `/foo` and `-foo`.

Since lld-link already supports the `-?foo` spelling, support `/?foo` as well.

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

llvm-svn: 360150

5 years agoPrecommit tests for or/add transform. NFC.
Robert Lougher [Tue, 7 May 2019 14:14:29 +0000 (14:14 +0000)]
Precommit tests for or/add transform. NFC.

llvm-svn: 360149

5 years ago[lldb] [lit] Fix Register tests to reference arrays via %0 and %1
Michal Gorny [Tue, 7 May 2019 14:02:11 +0000 (14:02 +0000)]
[lldb] [lit] Fix Register tests to reference arrays via %0 and %1

Fix Register tests to reference memory access to arrays via %0 and %1,
rather than via referencing %rax and %rbx directly.  This fixes test
build failures on 32-bit x86.

llvm-svn: 360148

5 years agoAllow field offset lookups in types with incomplete arrays within libclang.
Aaron Ballman [Tue, 7 May 2019 14:00:49 +0000 (14:00 +0000)]
Allow field offset lookups in types with incomplete arrays within libclang.

Patch thanks to Jorn Vernee

llvm-svn: 360147

5 years ago[lldb] Add MacroQualified switch cases for r360109
Krasimir Georgiev [Tue, 7 May 2019 13:59:30 +0000 (13:59 +0000)]
[lldb] Add MacroQualified switch cases for r360109

Summary:
r360109 added a new enum case, causing lldb build to fail with several errors like:
lldb/source/Symbol/ClangASTContext.cpp:4342:11: error: enumeration value 'MacroQualified' not handled in switch [-Werror,-Wswitch]
  switch (qual_type->getTypeClass()) {
          ^
This adds the missing switch cases.
I'm not an lldb maintainer and just used my best judgement that it's probably expected that we break in these cases. Feel free to ping / revert / fix this change if this behavior is not appropriate.

Reviewers: gribozavr

Reviewed By: gribozavr

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

llvm-svn: 360146

5 years agoAdd typo correction for command-line flags to ELF and COFF lld drivers
Nico Weber [Tue, 7 May 2019 13:48:30 +0000 (13:48 +0000)]
Add typo correction for command-line flags to ELF and COFF lld drivers

For lld-link, unknown '/'-style flags are treated as filenames on POSIX
systems, so only '-'-style flags get typo correction for now. This
matches clang-cl.

PR37006.

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

llvm-svn: 360145

5 years ago[PowerPC] Use the two-constant NR algorithm for refining estimates
Nemanja Ivanovic [Tue, 7 May 2019 13:48:03 +0000 (13:48 +0000)]
[PowerPC] Use the two-constant NR algorithm for refining estimates

The single-constant algorithm produces infinities on a lot of denormal values.
The precision of the two-constant algorithm is actually sufficient across the
range of denormals. We will switch to that algorithm for now to avoid the
infinities on denormals. In the future, we will re-evaluate the algorithm to
find the optimal one for PowerPC.

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

llvm-svn: 360144

5 years ago[llvm-objdump] - Print relocation record in a GNU format.
George Rimar [Tue, 7 May 2019 13:14:18 +0000 (13:14 +0000)]
[llvm-objdump] - Print relocation record in a GNU format.

This fixes the https://bugs.llvm.org/show_bug.cgi?id=41355.

Previously with -r we printed relocation section name instead of the target section name.
It was like this: "RELOCATION RECORDS FOR [.rel.text]"
Now it is: "RELOCATION RECORDS FOR [.text]"

Also when relocation target section has more than one relocation section,
we did not combine the output. Now we do.

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

llvm-svn: 360143

5 years agominor cmake formatting style fix
Nico Weber [Tue, 7 May 2019 13:14:14 +0000 (13:14 +0000)]
minor cmake formatting style fix

llvm-svn: 360142

5 years agogn build: Merge r360116
Nico Weber [Tue, 7 May 2019 13:07:23 +0000 (13:07 +0000)]
gn build: Merge r360116

llvm-svn: 360141

5 years agogn build: Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`
Nico Weber [Tue, 7 May 2019 13:02:18 +0000 (13:02 +0000)]
gn build: Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`

llvm-svn: 360140

5 years ago[LLD][ELF] - Remove symbol-name-offset.elf binary from test cases.
George Rimar [Tue, 7 May 2019 12:59:44 +0000 (12:59 +0000)]
[LLD][ELF] - Remove symbol-name-offset.elf binary from test cases.

It was possible to convert the test case to YAML test.
After that, we have only one binary test left in LLD/ELF.

llvm-svn: 360139

5 years ago[llvm-exegesis] BenchmarkRunner::runConfiguration(): write small snippet to memory
Roman Lebedev [Tue, 7 May 2019 12:28:08 +0000 (12:28 +0000)]
[llvm-exegesis] BenchmarkRunner::runConfiguration(): write small snippet to memory

It was previously writing this temporary snippet to file,
then reading it back, but leaving the tmp file in place.
This is both unefficient, and results in huge garbage pileup
in /tmp.

One would have thought it would have been caught during D60317..

llvm-svn: 360138

5 years ago[yaml2obj] - Allow setting st_value explicitly for Symbol.
George Rimar [Tue, 7 May 2019 12:10:51 +0000 (12:10 +0000)]
[yaml2obj] - Allow setting st_value explicitly for Symbol.

In some cases it is useful to explicitly set symbol's st_name value.
For example, I am using it in a patch for LLD to remove the broken
binary from a test case and replace it with a YAML test.

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

llvm-svn: 360137

5 years agoRevert "[TableGen] Fix a typo"
Krasimir Georgiev [Tue, 7 May 2019 11:39:35 +0000 (11:39 +0000)]
Revert "[TableGen] Fix a typo"

Summary:
This reverts commit r360106.

The revisioin causes llvm-tblgen to hang while generating info for
RISCV.td. The root cause might be in the RISCV.td definition but I don't
know enough about this to investigate further.

Command that starts hangning after r360106:
`llvm-build/bin/llvm-tblgen -I llvm/include -I llvm/tools/clang/include -I llvm/lib/Target/RISCV -gen-instr-info llvm/lib/Target/RISCV/RISCV.td`

Reviewers: sammccall, yan_luo, craig.topper, gribozavr

Reviewed By: gribozavr

Subscribers: PkmX, llvm-commits

Tags: #llvm

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

llvm-svn: 360136

5 years ago[ARM GlobalISel] Widen G_SELECT operands
Diana Picus [Tue, 7 May 2019 11:39:30 +0000 (11:39 +0000)]
[ARM GlobalISel] Widen G_SELECT operands

...except for the condition operand.

llvm-svn: 360135

5 years ago[X86][AVX] Fold concat(packus(),packus()) -> packus(concat(),concat()) (PR34773)
Simon Pilgrim [Tue, 7 May 2019 11:17:39 +0000 (11:17 +0000)]
[X86][AVX] Fold concat(packus(),packus()) -> packus(concat(),concat()) (PR34773)

Basic "revectorization" combine, we can probably do more opcodes here but it can be a tricky cost-benefit depending on where the subvectors came from - but this case helps shuffle combining.

llvm-svn: 360134

5 years agoFixed "Value stored to 'Opc' is never read" warning. NFCI.
Simon Pilgrim [Tue, 7 May 2019 11:09:16 +0000 (11:09 +0000)]
Fixed "Value stored to 'Opc' is never read" warning. NFCI.

llvm-svn: 360133

5 years ago[ASTImporter] Import TemplateParameterLists in function templates.
Balazs Keri [Tue, 7 May 2019 10:55:11 +0000 (10:55 +0000)]
[ASTImporter] Import TemplateParameterLists in function templates.

Summary: Correct missing import of TemplateParameterList in function decl.

Reviewers: martong, a.sidorin, shafik

Reviewed By: martong

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

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

llvm-svn: 360132

5 years ago[X86] Reduce scope of variables where possible. NFCI.
Simon Pilgrim [Tue, 7 May 2019 10:50:11 +0000 (10:50 +0000)]
[X86] Reduce scope of variables where possible. NFCI.

Fixes cppcheck warnings.

llvm-svn: 360131

5 years ago[ARM GlobalISel] Widen G_INTTOPTR/G_PTRTOINT
Diana Picus [Tue, 7 May 2019 10:48:01 +0000 (10:48 +0000)]
[ARM GlobalISel] Widen G_INTTOPTR/G_PTRTOINT

We actually have a couple of G_PTRTOINT to s8 when building clang, so
we should do something about them.

llvm-svn: 360130

5 years ago[ELF] Reorder BitcodeFiles.empty() to call thinLTOCreateEmptyIndexFiles() in only...
Fangrui Song [Tue, 7 May 2019 10:40:26 +0000 (10:40 +0000)]
[ELF] Reorder BitcodeFiles.empty() to call thinLTOCreateEmptyIndexFiles() in only one place

It makes the --plugin-opt=obj-path= and --plugin-opt=thinlto-index-only=
behavior more consistent - the files will be created in the
BitcodeFiles.empty() case, but I assume whether it behaves this way is
not required by anyone.

LTOObj->run() cannot run with empty BitcodeFiles. There would be an error:

    ld.lld: error: No available targets are compatible with triple ""

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

llvm-svn: 360129

5 years agoFix uninitialized variable warning. NFCI.
Simon Pilgrim [Tue, 7 May 2019 10:30:22 +0000 (10:30 +0000)]
Fix uninitialized variable warning. NFCI.

This also fixes a scan-build "array subscript is undefined" warning.

llvm-svn: 360128

5 years ago[ARM GlobalISel] Widen G_GEP index operand
Diana Picus [Tue, 7 May 2019 10:11:57 +0000 (10:11 +0000)]
[ARM GlobalISel] Widen G_GEP index operand

llvm-svn: 360127

5 years ago[libFuzzer] Increase timeouts on fork tests and skip one on aarch64
Peter Smith [Tue, 7 May 2019 09:31:14 +0000 (09:31 +0000)]
[libFuzzer] Increase timeouts on fork tests and skip one on aarch64

The tests fork.text, fork.sigusr.test and fork-ubsan.test intermittently
fail on the aarch64 buildbots. Input gathered from the fork.sigusr.test
implies that when the builder is under load the timeout value is not
sufficient. The fork-ubsan.test doesn't have a timeout and I think is not
always finding the error after 10000 runs so I've marked it as unsupported
for now.

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

llvm-svn: 360126

5 years agoTest commit access
Orlando Cazalet-Hyams [Tue, 7 May 2019 09:30:55 +0000 (09:30 +0000)]
Test commit access

llvm-svn: 360125

5 years ago[llvm-exegesis] InstructionBenchmark::writeYamlTo(): don't forget to flush()
Roman Lebedev [Tue, 7 May 2019 09:21:13 +0000 (09:21 +0000)]
[llvm-exegesis] InstructionBenchmark::writeYamlTo(): don't forget to flush()

This *APPEARS* to fix a *very* infuriating issue of Yaml's being corrupted,
partially written, truncated. Or at least i'm not seeing the issue
on a new benchmark sweep.

The issue is somewhat rare, happens maybe once in 1000 benchmarks.
Which means there are up to hundreds of broken benchmarks
for a full x86 sweep in a single mode.

llvm-svn: 360124

5 years agoAMDGPU: Verify that SOP2/SOPC instructions have at most one immediate operand
Nicolai Haehnle [Tue, 7 May 2019 09:19:09 +0000 (09:19 +0000)]
AMDGPU: Verify that SOP2/SOPC instructions have at most one immediate operand

Summary:
No test case because I don't know of a way to trigger this, but I
accidentally caused this to fail while working on a different change.

Change-Id: I8015aa447fe27163cc4e4902205a203bd44bf7e3

Reviewers: arsenm, rampitec

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

Tags: #llvm

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

llvm-svn: 360123

5 years ago[Tooling] Don't mmap the JSONCompilationDatabase, it's not correct for long-lived...
Sam McCall [Tue, 7 May 2019 09:05:15 +0000 (09:05 +0000)]
[Tooling] Don't mmap the JSONCompilationDatabase, it's not correct for long-lived processes.

Reviewers: ilya-biryukov

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 360122

5 years ago[clangd] Oops, switchSourceHeader still needs to return a URI.
Sam McCall [Tue, 7 May 2019 08:30:32 +0000 (08:30 +0000)]
[clangd] Oops, switchSourceHeader still needs to return a URI.

Reviewers: kadircet

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

Tags: #clang

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

llvm-svn: 360121

5 years ago[Sema] Add missing VisitMacroQualifiedTypeLoc to TypeSpecLocFiller
Leonard Chan [Tue, 7 May 2019 08:12:28 +0000 (08:12 +0000)]
[Sema] Add missing VisitMacroQualifiedTypeLoc to TypeSpecLocFiller

To hopefully fix greenbot failures

llvm-svn: 360120

5 years ago[clangd] switchSourceHeader uses null not empty string as sentinel.
Sam McCall [Tue, 7 May 2019 07:55:35 +0000 (07:55 +0000)]
[clangd] switchSourceHeader uses null not empty string as sentinel.

As far as I can see, only theia actually implements this, and it expects null.

llvm-svn: 360119

5 years ago[clangd] Add test that r360116 accidentally fixed a duplicate-edits bug in rename...
Sam McCall [Tue, 7 May 2019 07:45:41 +0000 (07:45 +0000)]
[clangd] Add test that r360116 accidentally fixed a duplicate-edits bug in rename. NFC

llvm-svn: 360118

5 years agoImprove function / variable disambiguation.
Richard Smith [Tue, 7 May 2019 07:36:07 +0000 (07:36 +0000)]
Improve function / variable disambiguation.

Keep looking for decl-specifiers after an unknown identifier. Don't
issue diagnostics about an error type specifier conflicting with later
type specifiers.

llvm-svn: 360117

5 years ago[clangd] Move Rename into its own file, and add unit test. NFC
Sam McCall [Tue, 7 May 2019 07:11:56 +0000 (07:11 +0000)]
[clangd] Move Rename into its own file, and add unit test. NFC

Reviewers: kadircet

Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, jfb, cfe-commits

Tags: #clang

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

llvm-svn: 360116