platform/upstream/llvm.git
5 years ago[WebAssembly][NFC] Remove extra space in WebAssemblyInstrSIMD.td
Thomas Lively [Wed, 19 Sep 2018 00:54:20 +0000 (00:54 +0000)]
[WebAssembly][NFC] Remove extra space in WebAssemblyInstrSIMD.td

llvm-svn: 342522

5 years agoAArch64MacroFusion: Factor out some opcode handling code; NFC
Matthias Braun [Wed, 19 Sep 2018 00:23:37 +0000 (00:23 +0000)]
AArch64MacroFusion: Factor out some opcode handling code; NFC

llvm-svn: 342521

5 years agoScheduleDAG: Cleanup dumping code; NFC
Matthias Braun [Wed, 19 Sep 2018 00:23:35 +0000 (00:23 +0000)]
ScheduleDAG: Cleanup dumping code; NFC

- Instead of having both `SUnit::dump(ScheduleDAG*)` and
  `ScheduleDAG::dumpNode(ScheduleDAG*)`, just keep the latter around.
- Add `ScheduleDAG::dump()` and avoid code duplication in several
  places. Implement it for different ScheduleDAG variants.
- Add `ScheduleDAG::dumpNodeName()` in favor of the `SUnit::print()`
  functions. They were only ever used for debug dumping and putting the
  function into ScheduleDAG is consistent with the `dumpNode()` change.

llvm-svn: 342520

5 years agoThread safety analysis: Fix crash for function pointers
Aaron Puchert [Wed, 19 Sep 2018 00:19:38 +0000 (00:19 +0000)]
Thread safety analysis: Fix crash for function pointers

For function pointers, the FunctionDecl of the callee is unknown, so
getDirectCallee will return nullptr. We have to catch that case to avoid
crashing. We assume there is no attribute then.

llvm-svn: 342519

5 years ago[XRay][compiler-rt] FDRLogWriter Abstraction
Dean Michael Berris [Tue, 18 Sep 2018 23:59:32 +0000 (23:59 +0000)]
[XRay][compiler-rt] FDRLogWriter Abstraction

Summary:
This change introduces an `FDRLogWriter` type which is responsible for
serialising metadata and function records to character buffers. This is
the first step in a refactoring of the implementation of the FDR runtime
to allow for more granular testing of the individual components of the
implementation.

The main contribution of this change is a means of hiding the details of
how specific records are written to a buffer, and for managing the
extents of these buffers. We make use of C++ features (templates and
some metaprogramming) to reduce repetition in the act of writing out
specific kinds of records to the buffer.

In this process, we make a number of changes across both LLVM and
compiler-rt to allow us to use the `Trace` abstraction defined in the
LLVM project in the testing of the runtime implementation. This gives us
a closer end-to-end test which version-locks the runtime implementation
with the loading implementation in LLVM.

We also allow using gmock in compiler-rt unit tests, by adding the
requisite definitions in the `AddCompilerRT.cmake` module.

Finally, we've gone ahead and updated the FDR logging implementation to
use the FDRLogWriter for the lowest-level record-writing details.

Following patches will isolate the state machine transitions which
manage the set-up and tear-down of the buffers we're using in multiple
threads.

Reviewers: mboerger, eizan

Subscribers: mgorny, jfb, llvm-commits

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

llvm-svn: 342518

5 years agoAdd a callback for `__has_include` and use it for dependency scanning.
Volodymyr Sapsai [Tue, 18 Sep 2018 23:27:02 +0000 (23:27 +0000)]
Add a callback for `__has_include` and use it for dependency scanning.

This adds a preprocessor callback for the `__has_include` and
`__has_include_next` directives.

Successful checking for the presence of a header should add it to the list of
header dependencies so this overrides the callback in the dependency scanner.

Patch by Pete Cooper with some additions by me.

rdar://problem/39545636

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

llvm-svn: 342517

5 years ago[MS] Defer dllexport inline friend functions like other inline methods
Reid Kleckner [Tue, 18 Sep 2018 23:16:30 +0000 (23:16 +0000)]
[MS] Defer dllexport inline friend functions like other inline methods

This special case was added in r264841, but the code breaks our
invariants by calling EmitTopLevelDecl without first creating a
HandlingTopLevelDeclRAII scope.

This fixes the PCH crash in https://crbug.com/884427. I was never able
to make a satisfactory reduction, unfortunately. I'm not very worried
about this regressing since this change makes the code simpler while
passing the existing test that shows we do emit dllexported friend
function definitions. Now we just defer their emission until the tag is
fully complete, which is generally good.

llvm-svn: 342516

5 years agoDriver: extract a local variable for the Toolchain (NFC)
Saleem Abdulrasool [Tue, 18 Sep 2018 22:14:50 +0000 (22:14 +0000)]
Driver: extract a local variable for the Toolchain (NFC)

Create and store a reference to the current toolchain rather than calling
`getToolChain` throughout the function.  NFC.

llvm-svn: 342515

5 years ago[clang-tidy] Replace redundant checks with an assert().
Artem Belevich [Tue, 18 Sep 2018 21:51:02 +0000 (21:51 +0000)]
[clang-tidy] Replace redundant checks with an assert().

findStyleKind is only called if D is an explicit identifier with a name,
so the checks for operators will never return true. The explicit assert()
enforces this invariant.

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

llvm-svn: 342514

5 years ago[WebAssembly] v4f32.abs and v2f64.abs
Thomas Lively [Tue, 18 Sep 2018 21:45:12 +0000 (21:45 +0000)]
[WebAssembly] v4f32.abs and v2f64.abs

Summary: implement lowering of @llvm.fabs for vector types.

Reviewers: aheejin, dschuff

Subscribers:

llvm-svn: 342513

5 years agoDriver: hoist `-mlimit-float-precision` (NFC)
Saleem Abdulrasool [Tue, 18 Sep 2018 21:12:39 +0000 (21:12 +0000)]
Driver: hoist `-mlimit-float-precision` (NFC)

Move the floating point argument handling into the RenderFloatingPointOptions
helper.  This relocation just puts the floating point related options into a
single location.

llvm-svn: 342512

5 years agobuild: clean up some unnecessary cached variables
Saleem Abdulrasool [Tue, 18 Sep 2018 20:33:01 +0000 (20:33 +0000)]
build: clean up some unnecessary cached variables

The CMAKE_<LANG>_ARCHIVE_FINISH rule doesn't need to be cleared for Darwin
static libraries.  Avoid resetting the variables in the SIP case.  If
CMAKE_RANLIB is cached, then CMake's Ninja generator will invoke ranlib during
installation, not due to the CMAKE_<LANG>_ARCHIVE_FINISH rule.

llvm-svn: 342511

5 years agoFix fomit-frame-pointe+pg error
David Blaikie [Tue, 18 Sep 2018 20:11:45 +0000 (20:11 +0000)]
Fix fomit-frame-pointe+pg error

llvm-svn: 342510

5 years agoRevert r342494 as it was failing on a bot and the author cannot look at it until...
Douglas Yung [Tue, 18 Sep 2018 19:34:05 +0000 (19:34 +0000)]
Revert r342494 as it was failing on a bot and the author cannot look at it until tomorrow.

Failing bot: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/36708

llvm-svn: 342509

5 years agoAllow use of self.filecheck in LLDB tests (c.f self.expect)
Vedant Kumar [Tue, 18 Sep 2018 19:31:47 +0000 (19:31 +0000)]
Allow use of self.filecheck in LLDB tests (c.f self.expect)

Add a "filecheck" method to the LLDB test base. This allows test authors
to pattern match command output using FileCheck, making it possible to
write stricter tests than what `self.expect` allows.

For context (motivation, examples of stricter checking, etc), see the
lldb-dev thread: "Using FileCheck in lldb inline tests".

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

llvm-svn: 342508

5 years ago[benchmark] Mention another cherry-picked change in README.LLVM. NFC.
Martin Storsjo [Tue, 18 Sep 2018 19:31:09 +0000 (19:31 +0000)]
[benchmark] Mention another cherry-picked change in README.LLVM. NFC.

This was cherry-picked in SVN r342450.

llvm-svn: 342506

5 years ago[clangd] Fix error handling for SymbolID parsing (notably YAML and dexp)
Sam McCall [Tue, 18 Sep 2018 19:00:59 +0000 (19:00 +0000)]
[clangd] Fix error handling for SymbolID parsing (notably YAML and dexp)

llvm-svn: 342505

5 years ago[builtins] Fix c?zdi2 on sparc64/Linux and ignore riscv32
Kristina Brooks [Tue, 18 Sep 2018 18:56:52 +0000 (18:56 +0000)]
[builtins] Fix c?zdi2 on sparc64/Linux and ignore riscv32

On sparc64/Linux, sparc64 isn't defined; the canonical way of
checking for sparc64 is sparc && arch64, which also works on the
BSDs and Solaris. Since this problem does not occur on 32-bit
architectures, riscv32 can be ignored. This fixes and refines rL324593.

Patch by jrtc27 (James Clarke)

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

llvm-svn: 342504

5 years ago[bugpoint] Revert r318459
Don Hinton [Tue, 18 Sep 2018 18:39:27 +0000 (18:39 +0000)]
[bugpoint] Revert r318459

Summary: Revert r318459 which introduced a TempFile scoping bug.

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

llvm-svn: 342503

5 years agoRemove svn:executable from a documentation file.
Kristina Brooks [Tue, 18 Sep 2018 18:37:16 +0000 (18:37 +0000)]
Remove svn:executable from a documentation file.

Should fix the buildbot failure caused by it.

llvm-svn: 342502

5 years agoFix logic around determining use of frame pointer with -pg.
Stephen Hines [Tue, 18 Sep 2018 18:34:33 +0000 (18:34 +0000)]
Fix logic around determining use of frame pointer with -pg.

Summary:
As part of r342165, I rewrote the logic to check whether
-fno-omit-frame-pointer was passed after a -fomit-frame-pointer
argument. This CL switches that logic to use the consolidated
shouldUseFramePointer() function. This fixes a potential issue where -pg
gets used with -fomit-frame-pointer on a platform that must always retain
frame pointers.

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: cfe-commits

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

llvm-svn: 342501

5 years ago[Docs] [Support] System Library to Support Library transition along with minor correc...
Kristina Brooks [Tue, 18 Sep 2018 18:05:38 +0000 (18:05 +0000)]
[Docs] [Support] System Library to Support Library transition along with minor corrections to reflect it.

System Library has been a long deprecated term along with the path lib/System, having been superseded/renamed
to the Support Library a long time ago. These patches reflect those changes in documentation as well as
update some outdated examples and provide context to the origin of the Support Library.

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

llvm-svn: 342500

5 years ago[Modules] Add platform and environment features to requires clause
Bruno Cardoso Lopes [Tue, 18 Sep 2018 17:11:13 +0000 (17:11 +0000)]
[Modules] Add platform and environment features to requires clause

Allows module map writers to add build requirements based on
platform/os. This helps when target features and language dialects
aren't enough to conditionalize building a module, among other things,
it allow module maps for different platforms to live in the same file.

rdar://problem/43909745

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

llvm-svn: 342499

5 years agoDo not optimize atomic load to non-atomic memcmp
Christy Lee [Tue, 18 Sep 2018 17:02:42 +0000 (17:02 +0000)]
Do not optimize atomic load to non-atomic memcmp

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

llvm-svn: 342498

5 years ago[AMDGPU] Match udot8 pattern
Farhana Aleen [Tue, 18 Sep 2018 16:59:48 +0000 (16:59 +0000)]
[AMDGPU] Match udot8 pattern

Summary: D.u32 = S0.u4[0] * S1.u4[0] +

         S0.u4[1] * S1.u4[1] +
         S0.u4[2] * S1.u4[2] +
         S0.u4[3] * S1.u4[3] +
         S0.u4[4] * S1.u4[4] +
         S0.u4[5] * S1.u4[5] +
         S0.u4[6] * S1.u4[6] +
         S0.u4[7] * S1.u4[7] +
         S2.u32

Author: FarhanaAleen

Reviewed By: arsenm, nhaehnle

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

llvm-svn: 342497

5 years agoFix function signature to actually be an override.
Zachary Turner [Tue, 18 Sep 2018 16:58:17 +0000 (16:58 +0000)]
Fix function signature to actually be an override.

llvm-svn: 342496

5 years ago[PGO][CHR] Add opt remarks.
Hiroshi Yamauchi [Tue, 18 Sep 2018 16:50:10 +0000 (16:50 +0000)]
[PGO][CHR] Add opt remarks.

Reviewers: davidxl

Reviewed By: davidxl

Subscribers: llvm-commits

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

llvm-svn: 342495

5 years agoCheck lines before using alias analysis to check for interference
Christy Lee [Tue, 18 Sep 2018 16:43:44 +0000 (16:43 +0000)]
Check lines before using alias analysis to check for interference

This diff is to show the difference before and after D51550

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

llvm-svn: 342494

5 years ago[PDB] Better support for enumerating pointer types.
Zachary Turner [Tue, 18 Sep 2018 16:35:05 +0000 (16:35 +0000)]
[PDB] Better support for enumerating pointer types.

There were several issues with the previous implementation.

1) There were no tests.
2) We didn't support creating PDBSymbolTypePointer records for
   builtin types since those aren't described by LF_POINTER
   records.
3) We didn't support a wide enough variety of builtin types even
   ignoring pointers.

This patch fixes all of these issues.  In order to add tests,
it's helpful to be able to ignore the symbol index id hierarchy
because it makes the golden output from the DIA version not match
our output, so I've extended the dumper to disable dumping of id
fields.

llvm-svn: 342493

5 years ago[PostRASink] Make sure to remove subregisters from live-ins as well
Krzysztof Parzyszek [Tue, 18 Sep 2018 16:10:51 +0000 (16:10 +0000)]
[PostRASink] Make sure to remove subregisters from live-ins as well

llvm-svn: 342492

5 years ago[NFC] Update comments regarding BufferSize for ProcResources
Jinsong Ji [Tue, 18 Sep 2018 15:38:56 +0000 (15:38 +0000)]
[NFC] Update comments regarding BufferSize for ProcResources

llvm-svn: 342491

5 years agoRevert rL342465: Added function to set a register to a particular value + tests.
Simon Pilgrim [Tue, 18 Sep 2018 15:38:16 +0000 (15:38 +0000)]
Revert rL342465: Added function to set a register to a particular value + tests.

rL342465 is breaking the MSVC buildbots.

llvm-svn: 342490

5 years agoRevert rL342466: [llvm-exegesis] Improve Register Setup.
Simon Pilgrim [Tue, 18 Sep 2018 15:35:49 +0000 (15:35 +0000)]
Revert rL342466: [llvm-exegesis] Improve Register Setup.

rL342465 is breaking the MSVC buildbots, but I need to revert this dependent revision as well.

Summary:
Added function to set a register to a particular value + tests.
Add EFLAGS test, use new setRegTo instead of setRegToConstant.

Reviewers: courbet, javed.absar

Subscribers: mgorny, tschuett, llvm-commits

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

llvm-svn: 342489

5 years ago[RISCV][MC] Use a custom ParserMethod for the bare_symbol operand type
Alex Bradbury [Tue, 18 Sep 2018 15:18:16 +0000 (15:18 +0000)]
[RISCV][MC] Use a custom ParserMethod for the bare_symbol operand type

This allows the hard-coded shouldForceImmediate logic to be removed because
the generated MatchOperandParserImpl makes use of the current context (i.e.
the current mnemonic) to determine parsing behaviour, and so won't first try
to parse a register before parsing a symbol name.

No functional change is intended. gas accepts immediate arguments for call,
tail and lla. This patch doesn't address this discrepancy.

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

llvm-svn: 342488

5 years ago[RISCV][MC] Reject bare symbols for the simm12 operand type
Alex Bradbury [Tue, 18 Sep 2018 15:13:29 +0000 (15:13 +0000)]
[RISCV][MC] Reject bare symbols for the simm12 operand type

addi a0, a0, foo and lw a0, foo(a0) and similar are now rejected. An explicit
%lo and %pcrel_lo modifier is required. This matches gas behaviour.

llvm-svn: 342487

5 years ago[RISCV][MC] Tighten up checking of sybol operands to lui and auipc
Alex Bradbury [Tue, 18 Sep 2018 15:08:35 +0000 (15:08 +0000)]
[RISCV][MC] Tighten up checking of sybol operands to lui and auipc

Reject bare symbols and accept only %pcrel_hi(sym) for auipc and %hi(sym) for
lui. Also test valid operand modifiers in rv32i-valid.s.

Note this is slightly stricter than gas, which will accept either %pcrel_hi or
%hi for both lui and auipc.

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

llvm-svn: 342486

5 years agoRemove dead function user_cache_directory()
Nico Weber [Tue, 18 Sep 2018 15:06:16 +0000 (15:06 +0000)]
Remove dead function user_cache_directory()

It's been unused since it was added almost 3 years ago in
https://reviews.llvm.org/D13801

Motivated by https://reviews.llvm.org/rL342002 since it removes one of the
functions keeping a ref to SHGetKnownFolderPath.

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

llvm-svn: 342485

5 years ago[index] Enhance indexing for module references
Argyrios Kyrtzidis [Tue, 18 Sep 2018 15:02:56 +0000 (15:02 +0000)]
[index] Enhance indexing for module references

* Create a USR for the occurrences of the 'module' symbol kind
* Record module references for each identifier in an import declaration

llvm-svn: 342484

5 years ago[llvm-mca] Add the ability to mark register reads/writes associated with dep-breaking...
Andrea Di Biagio [Tue, 18 Sep 2018 15:00:06 +0000 (15:00 +0000)]
[llvm-mca] Add the ability to mark register reads/writes associated with dep-breaking instructions. NFCI

This patch adds two new boolean fields:
  - Field `ReadState::IndependentFromDef`.
  - Field `WriteState::WritesZero`.

Field `IndependentFromDef` is set for ReadState objects associated with
dependency-breaking instructions. It is used by the simulator when updating data
dependencies between registers.

Field `WritesZero` is set by WriteState objects associated with dependency
breaking zero-idiom instructions. It helps the PRF identify which writes don't
consume any physical registers.

llvm-svn: 342483

5 years agoRevert r342457 "Fixes removal of dead elements from PressureDiff (PR37252)."
Hans Wennborg [Tue, 18 Sep 2018 14:12:54 +0000 (14:12 +0000)]
Revert r342457 "Fixes removal of dead elements from PressureDiff (PR37252)."

This broke the lit tests on a bunch of buildbots, e.g.
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/36679

> Reviewed By: MatzeB
>
> Differential Revision: https://reviews.llvm.org/D51495

llvm-svn: 342482

5 years agoUse pass-by-reference for-range loop. NFCI.
Simon Pilgrim [Tue, 18 Sep 2018 14:05:07 +0000 (14:05 +0000)]
Use pass-by-reference for-range loop. NFCI.

llvm-svn: 342481

5 years ago[llvm-mca] Slightly refactor class InstRef. NFC.
Andrea Di Biagio [Tue, 18 Sep 2018 14:03:46 +0000 (14:03 +0000)]
[llvm-mca] Slightly refactor class InstRef. NFC.

llvm-svn: 342480

5 years ago[ThinLTO] Update LangRef doc for summary parsing
Teresa Johnson [Tue, 18 Sep 2018 13:44:13 +0000 (13:44 +0000)]
[ThinLTO] Update LangRef doc for summary parsing

Summary:
Remove note about summary being ignored. Update to reflect the
fact that summary is now parsed by llvm-as.

While here, fix one summary format that changed since the initial
implementation.

Reviewers: dexonsmith

Subscribers: inglorion, llvm-commits

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

llvm-svn: 342479

5 years ago[PowerPC] Do not emit record-form rotates when record-form andi/andis suffices
Nemanja Ivanovic [Tue, 18 Sep 2018 13:43:16 +0000 (13:43 +0000)]
[PowerPC] Do not emit record-form rotates when record-form andi/andis suffices

This is a follow-up to the previous patch that eliminated some of the rotates.
With this addition, we will also emit the record-form andis.

This patch increases the number of record-form rotates we eliminate by
more than 70%.

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

llvm-svn: 342478

5 years ago[LTO] Make detection of WPD remark enablement more robust
Teresa Johnson [Tue, 18 Sep 2018 13:42:24 +0000 (13:42 +0000)]
[LTO] Make detection of WPD remark enablement more robust

Summary:
Currently only the first function in the module is checked to
see if it has remarks enabled. If that first function is a declaration,
remarks will be incorrectly skipped. Change to look for the first
non-empty function.

Reviewers: pcc

Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits

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

llvm-svn: 342477

5 years ago[LLVM-C][OCaml] Add UnifyFunctionExitNodes pass to C and OCaml APIs
whitequark [Tue, 18 Sep 2018 13:36:03 +0000 (13:36 +0000)]
[LLVM-C][OCaml] Add UnifyFunctionExitNodes pass to C and OCaml APIs

Summary:
Adds LLVMAddUnifyFunctionExitNodesPass to expose
createUnifyFunctionExitNodesPass to the C and OCaml APIs.

Reviewers: whitequark, deadalnix

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342476

5 years ago[LLVM-C][OCaml] Add LowerAtomic pass to C and OCaml APIs
whitequark [Tue, 18 Sep 2018 13:35:50 +0000 (13:35 +0000)]
[LLVM-C][OCaml] Add LowerAtomic pass to C and OCaml APIs

Summary:
Adds LLVMAddLowerAtomicPass to expose createLowerAtomicPass in the C
and OCaml APIs.

Reviewers: whitequark, deadalnix

Reviewed By: whitequark

Subscribers: jfb, llvm-commits

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

llvm-svn: 342475

5 years ago[OCaml] Add OCaml API for LLVMGetIndices
whitequark [Tue, 18 Sep 2018 13:35:39 +0000 (13:35 +0000)]
[OCaml] Add OCaml API for LLVMGetIndices

Summary:
This patch adds a thin wrapper around LLVMGetNumIndices and
LLVMGetIndices to return the indices of ExtractValue or InsertValue
instructions as an OCaml array. It has not seemed to be necessary to
expose LLVMGetNumIndices separately.

Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342474

5 years ago[clangd] Get rid of Decls parameter in indexMainDecls. NFC
Eric Liu [Tue, 18 Sep 2018 13:35:16 +0000 (13:35 +0000)]
[clangd] Get rid of Decls parameter in indexMainDecls. NFC

It's already available in ParsedAST.

llvm-svn: 342473

5 years ago[PowerPC] Optimize compares fed by ANDISo
Nemanja Ivanovic [Tue, 18 Sep 2018 13:21:58 +0000 (13:21 +0000)]
[PowerPC] Optimize compares fed by ANDISo

Both ANDIo and ANDISo (and the 64-bit versions) are record-form instructions.
When optimizing compares, we handle the former in order to eliminate the compare
instruction but not the latter. This patch just adds the latter to the set of
instructions we optimize.
The reason these instructions need to be handled separately is that they are not
part of the RecFormRel map (since they don't have a non-record-form). The
missing "and-immediate-shifted" is just an oversight in the initial
implementation.

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

llvm-svn: 342472

5 years ago[TargetLowering] Android has sincos functions
John Brawn [Tue, 18 Sep 2018 13:18:21 +0000 (13:18 +0000)]
[TargetLowering] Android has sincos functions

Since Android API version 9 the Android libm has had the sincos functions, so
they should be recognised as libcalls and sincos optimisation should be applied.

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

llvm-svn: 342471

5 years agocl-options.c: Fix negative -cfguard check
Hans Wennborg [Tue, 18 Sep 2018 13:07:55 +0000 (13:07 +0000)]
cl-options.c: Fix negative -cfguard check

llvm-svn: 342470

5 years agoFix signed/unsigned comparison warning. NFCI.
Simon Pilgrim [Tue, 18 Sep 2018 12:01:25 +0000 (12:01 +0000)]
Fix signed/unsigned comparison warning. NFCI.

llvm-svn: 342469

5 years ago[clang-tidy] use CHECK-NOTES in bugprone-unused-return-value
Jonas Toth [Tue, 18 Sep 2018 11:49:20 +0000 (11:49 +0000)]
[clang-tidy] use CHECK-NOTES in bugprone-unused-return-value

Reviewers: aaron.ballman, alexfh, hokein

Reviewed By: alexfh

Subscribers: xazax.hun, cfe-commits

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

llvm-svn: 342468

5 years ago[TableGen] CodeGenDAGPatterns::GenerateVariants - full caching of matching predicates
Simon Pilgrim [Tue, 18 Sep 2018 11:30:30 +0000 (11:30 +0000)]
[TableGen] CodeGenDAGPatterns::GenerateVariants - full caching of matching predicates

Further extension to D51035, this patch avoids all repeated predicates[] matching by caching as it collects the patterns that have multiple variants.

Saves around 25secs in debug builds of x86 -gen-dag-isel.

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

llvm-svn: 342467

5 years ago[llvm-exegesis] Improve Register Setup.
Guillaume Chatelet [Tue, 18 Sep 2018 11:26:48 +0000 (11:26 +0000)]
[llvm-exegesis] Improve Register Setup.

Summary:
Added function to set a register to a particular value + tests.
Add EFLAGS test, use new setRegTo instead of setRegToConstant.

Reviewers: courbet, javed.absar

Subscribers: mgorny, tschuett, llvm-commits

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

llvm-svn: 342466

5 years agoAdded function to set a register to a particular value + tests.
Guillaume Chatelet [Tue, 18 Sep 2018 11:26:35 +0000 (11:26 +0000)]
Added function to set a register to a particular value + tests.

llvm-svn: 342465

5 years agoImprove Register Setup
Guillaume Chatelet [Tue, 18 Sep 2018 11:26:27 +0000 (11:26 +0000)]
Improve Register Setup

llvm-svn: 342464

5 years agoRemove trailing whitespace introduced in r342440.
Alexander Kornienko [Tue, 18 Sep 2018 10:53:13 +0000 (10:53 +0000)]
Remove trailing whitespace introduced in r342440.

llvm-svn: 342463

5 years ago[X86][SSE] LowerShift - pull out repeated getTargetVShiftUniformOpcode calls. NFCI.
Simon Pilgrim [Tue, 18 Sep 2018 10:44:44 +0000 (10:44 +0000)]
[X86][SSE] LowerShift - pull out repeated getTargetVShiftUniformOpcode calls. NFCI.

llvm-svn: 342462

5 years ago[Xray] llvm-xray fix possible segfault
David Carlier [Tue, 18 Sep 2018 10:31:10 +0000 (10:31 +0000)]
[Xray] llvm-xray fix possible segfault

top argument when superior to the instrumentated code list capacity can lead to a segfault.

Reviewers: dberris

Reviewed By: dberris

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

llvm-svn: 342461

5 years ago[clangd] Merge ClangdServer::DynamicIndex into FileIndex. NFC.
Eric Liu [Tue, 18 Sep 2018 10:30:44 +0000 (10:30 +0000)]
[clangd] Merge ClangdServer::DynamicIndex into FileIndex. NFC.

Summary:
FileIndex now provides explicit interfaces for preamble and main file updates.
This avoids growing parameter list when preamble and main symbols diverge
further (e.g. D52078). This also gets rid of the hack in `indexAST` that
inferred main file index based on `TopLevelDecls`.

Also separate `indexMainDecls` from `indexAST`.

Reviewers: sammccall

Reviewed By: sammccall

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

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

llvm-svn: 342460

5 years ago[clang-tidy] use CHECK-NOTES in bugprone-forwarding-reference-overload
Jonas Toth [Tue, 18 Sep 2018 10:21:33 +0000 (10:21 +0000)]
[clang-tidy] use CHECK-NOTES in bugprone-forwarding-reference-overload

Reviewers: aaron.ballman, alexfh, hokein

Reviewed By: alexfh

Subscribers: xazax.hun, cfe-commits

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

llvm-svn: 342459

5 years ago[clang-tidy] use CHECK-NOTES in tests for bugprone-argument-comment
Jonas Toth [Tue, 18 Sep 2018 10:15:15 +0000 (10:15 +0000)]
[clang-tidy] use CHECK-NOTES in tests for bugprone-argument-comment

Summary:
This patch uses CHECK-NOTES for the tests.
Its part of an effort to test *ALL* generated diagnostics in clang-tidy,
as emitted notes were previously ignored.

Reviewers: alexfh, aaron.ballman, hokein

Reviewed By: alexfh

Subscribers: xazax.hun, cfe-commits

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

llvm-svn: 342458

5 years agoFixes removal of dead elements from PressureDiff (PR37252).
Yury Gribov [Tue, 18 Sep 2018 09:53:42 +0000 (09:53 +0000)]
Fixes removal of dead elements from PressureDiff (PR37252).

Reviewed By: MatzeB

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

llvm-svn: 342457

5 years ago[clangd] dexp tool uses llvm::cl to parse its flags.
Sam McCall [Tue, 18 Sep 2018 09:49:57 +0000 (09:49 +0000)]
[clangd] dexp tool uses llvm::cl to parse its flags.

Summary:
We can use cl::ResetCommandLineParser() to support different types of
command-lines, as long as we're careful about option lifetimes.
(I tried using subcommands, but the error messages were bad)
I found a mostly-reasonable pattern to isolate the fiddly parts.

Added -scope and -limit flags to the `find` command to demonstrate.
(Note that scope support seems to be broken in dex?)

Fixed symbol lookup to parse symbol IDs.

Caveats:
 - with command help (e.g. `find -help`), you also get some spam
   about required arguments. This is a bug in llvm::cl, which prints
   these to errs() rather than the designated stream.

Reviewers: kbobyrev

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

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

llvm-svn: 342456

5 years ago[AArch64] Attempt to parse more operands as expressions
David Green [Tue, 18 Sep 2018 09:44:53 +0000 (09:44 +0000)]
[AArch64] Attempt to parse more operands as expressions

This tries to make use of evaluateAsRelocatable in AArch64AsmParser::classifySymbolRef
to parse more complex expressions as relocatable operands. It is hopefully better than
the existing code which only handles Symbol +- Constant.

This allows us to parse more complex adr/adrp, mov, ldr/str and add operands. It also
loosens the requirements on parsing addends in ld/st and mov's and adds a number of
tests.

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

llvm-svn: 342455

5 years ago[clangd] Update code completion for #include completions in r342449
Sam McCall [Tue, 18 Sep 2018 09:08:28 +0000 (09:08 +0000)]
[clangd] Update code completion for #include completions in r342449

llvm-svn: 342453

5 years ago[clangd] Adapt API change after 342451.
Eric Liu [Tue, 18 Sep 2018 08:52:14 +0000 (08:52 +0000)]
[clangd] Adapt API change after 342451.

llvm-svn: 342452

5 years ago[Index] Add an option to collect macros from preprocesor.
Eric Liu [Tue, 18 Sep 2018 08:51:08 +0000 (08:51 +0000)]
[Index] Add an option to collect macros from preprocesor.

Summary: Also added unit tests for the index library; lit+c-index-test is painful...

Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

Subscribers: mgorny, cfe-commits

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

llvm-svn: 342451

5 years ago[benchmark] Lowercase windows specific includes
Martin Storsjo [Tue, 18 Sep 2018 08:44:57 +0000 (08:44 +0000)]
[benchmark] Lowercase windows specific includes

The windows SDK headers don't have self-consistent casing anyway,
so we consistently use lowercase for these in other places, in order
to fix crosscompilation with mingw headers.

This applies an upstream commit:
https://github.com/google/benchmark/commit/52613079824ac58d06c070aa9fbbb186a5859e2c

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

llvm-svn: 342450

5 years ago[CodeComplete] Add completions for filenames in #include directives.
Sam McCall [Tue, 18 Sep 2018 08:40:41 +0000 (08:40 +0000)]
[CodeComplete] Add completions for filenames in #include directives.

Summary:
The dir component ("somedir" in #include <somedir/fo...>) is considered fixed.
We append "foo" to each directory on the include path, and then list its files.

Completions are of the forms:
 #include <somedir/fo^
                   foo.h>
                   fox/

The filter is set to the filename part ("fo"), so fuzzy matching can be
applied to the filename only.

No fancy scoring/priorities are set, and no information is added to
CodeCompleteResult to make smart scoring possible. Could be in future.

Reviewers: ilya-biryukov

Subscribers: cfe-commits

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

llvm-svn: 342449

5 years ago[COFF] Fix the name mangling of a function in the autoexport exclusion list
Martin Storsjo [Tue, 18 Sep 2018 07:22:05 +0000 (07:22 +0000)]
[COFF] Fix the name mangling of a function in the autoexport exclusion list

The __NULL_IMPORT_DESCRIPTOR symbol has two leading underscores on
architectures other than i386 as well; it is not a mangled symbol name.

llvm-svn: 342448

5 years ago[COFF] Add support for delay loading DLLs for ARM64
Martin Storsjo [Tue, 18 Sep 2018 07:22:01 +0000 (07:22 +0000)]
[COFF] Add support for delay loading DLLs for ARM64

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

llvm-svn: 342447

5 years ago[COFF] Fix a block with incorrect indentation. NFC.
Martin Storsjo [Tue, 18 Sep 2018 07:21:55 +0000 (07:21 +0000)]
[COFF] Fix a block with incorrect indentation. NFC.

llvm-svn: 342446

5 years ago[pp-trace] Remove unused using directives
Fangrui Song [Tue, 18 Sep 2018 06:57:58 +0000 (06:57 +0000)]
[pp-trace] Remove unused using directives

llvm-svn: 342445

5 years ago[IndVars] Remove unreasonable checks in rewriteLoopExitValues
Max Kazantsev [Tue, 18 Sep 2018 04:57:18 +0000 (04:57 +0000)]
[IndVars] Remove unreasonable checks in rewriteLoopExitValues

A piece of logic in rewriteLoopExitValues has a weird check on number of
users which allowed an unprofitable transform in case if an instruction has
more than 6 users.

Differential Revision: https://reviews.llvm.org/D51404
Reviewed By: etherzhhb

llvm-svn: 342444

5 years agoAMDGPU: Don't form fmed3 if it will require materialization
Matt Arsenault [Tue, 18 Sep 2018 02:34:54 +0000 (02:34 +0000)]
AMDGPU: Don't form fmed3 if it will require materialization

If there is a single use constant, it can be folded into the
min/max, but not into med3.

llvm-svn: 342443

5 years agoLSV: Fix adjust alloca alignment trick for AMDGPU
Matt Arsenault [Tue, 18 Sep 2018 02:05:44 +0000 (02:05 +0000)]
LSV: Fix adjust alloca alignment trick for AMDGPU

This was checking the hardcoded address space 0 for the stack.
Additionally, this should be checking for legality with
the adjusted alignment, so defer the alignment check.

Also try to split if the unaligned access isn't allowed.

llvm-svn: 342442

5 years ago[PowerPC] Add Itineraries of IIC_IntMulHD for P7/P8
QingShan Zhang [Tue, 18 Sep 2018 02:05:18 +0000 (02:05 +0000)]
[PowerPC] Add Itineraries of IIC_IntMulHD for P7/P8

When doing some instruction scheduling work, we noticed some missing itineraries.
Before we switch to machine scheduler, those missing itineraries might not have impact to actually scheduling,
because we can still get same latency due to default values.

With machine scheduler, however, itineraries will have impact to scheduling.
eg: NumMicroOps will default to be 0 if there is NO itineraries for specific instruction class.
And most of the instruction class with itineraries will have NumMicroOps default to 1.

This will has impact on the count of RetiredMOps, affects the Pending/Available Queue,
then causing different scheduling or suboptimal scheduling further.

Patch By: jsji (Jinsong Ji)
Differential Revision: https://reviews.llvm.org/D52040

llvm-svn: 342441

5 years ago[PowerPC][NFC] Add a mulld testcase for scheduling check.
QingShan Zhang [Tue, 18 Sep 2018 01:59:22 +0000 (01:59 +0000)]
[PowerPC][NFC] Add a mulld testcase for scheduling check.
This patch add a mulld testcase for scheduling check.

Patch By: jsji (Jinsong Ji)
Differential Revision: https://reviews.llvm.org/D52039

llvm-svn: 342440

5 years agoAMDGPU: Expand vector canonicalizes
Matt Arsenault [Tue, 18 Sep 2018 01:51:33 +0000 (01:51 +0000)]
AMDGPU: Expand vector canonicalizes

llvm-svn: 342439

5 years ago[OCaml] Add OCaml API for LLVMIsCleanup
whitequark [Tue, 18 Sep 2018 01:48:01 +0000 (01:48 +0000)]
[OCaml] Add OCaml API for LLVMIsCleanup

Summary: Expose test for whether or not a landingpad is a cleanup.

Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342438

5 years ago[NFC][OCaml] Fix copy paste error in file header
whitequark [Tue, 18 Sep 2018 01:47:53 +0000 (01:47 +0000)]
[NFC][OCaml] Fix copy paste error in file header

Summary: Just copypasta resulting in the wrong file name in the header.

Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342437

5 years ago[NFC][OCaml] Fix implicit declaration compilation warnings
whitequark [Tue, 18 Sep 2018 01:47:44 +0000 (01:47 +0000)]
[NFC][OCaml] Fix implicit declaration compilation warnings

Summary:
2dd4f35c7fc75639920ebc473a4a57ea91864c10 moved LLVMAddLowerSwitchPass
and LLVMAddPromoteMemoryToRegisterPass declarations from
llvm-c/Transforms/Scalar.h to llvm-c/Transforms/Utils.h

Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342436

5 years ago[LLVM-C][OCaml] Add C and OCaml APIs for llvm::StructType::isLiteral
whitequark [Tue, 18 Sep 2018 01:47:37 +0000 (01:47 +0000)]
[LLVM-C][OCaml] Add C and OCaml APIs for llvm::StructType::isLiteral

Summary:
This patch adds LLVMIsLiteralStruct to the C API to expose
StructType::isLiteral. This is then used to implement the analogous
addition to the OCaml API.

Reviewers: whitequark, deadalnix

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342435

5 years ago[LLVM-C] Add support for ConstantExpr in LLVMGetNumIndices and LLVMGetIndices
whitequark [Tue, 18 Sep 2018 01:47:25 +0000 (01:47 +0000)]
[LLVM-C] Add support for ConstantExpr in LLVMGetNumIndices and LLVMGetIndices

Summary:
ConstantExpr supports getIndices, but prior to this patch
LLVMGetNumIndices and LLVMGetIndices would error on them.

Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342434

5 years ago[OCaml] Add OCaml APIs for Invoke arguments and destinations
whitequark [Tue, 18 Sep 2018 01:47:18 +0000 (01:47 +0000)]
[OCaml] Add OCaml APIs for Invoke arguments and destinations

Summary:
This patch adds OCaml APIs for LLVMGetNormalDest and LLVMGetUnwindDest
on InvokeInsts, as well as LLVMGetNumArgOperands on CallInsts and
InvokeInsts.

Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342433

5 years ago[ELF] Set Out::TlsPhdr earlier for encoding packed reloc tables
Ryan Prichard [Tue, 18 Sep 2018 00:24:48 +0000 (00:24 +0000)]
[ELF] Set Out::TlsPhdr earlier for encoding packed reloc tables

Summary:
For --pack-dyn-relocs=android, finalizeSections calls
LinkerScript::assignAddresses and
AndroidPackedRelocationSection::updateAllocSize in a loop,
where assignAddresses lays out the ELF image, then updateAllocSize
determines the size of the Android packed relocation table by encoding it.
Encoding the table requires knowing the values of relocation addends.

To get the addend of a TLS relocation, updateAllocSize can call getSymVA
on a TLS symbol before setPhdrs has initialized Out::TlsPhdr, producing an
error:

    <file> has an STT_TLS symbol but doesn't have an SHF_TLS section

Fix the problem by initializing Out::TlsPhdr immediately after the program
headers are created. The segment's p_vaddr field isn't initialized until
setPhdrs, so use FirstSec->Addr, which is what setPhdrs would use.
FirstSec will typically refer to the .tdata or .tbss output section, whose
(tentative) address was computed by assignAddresses.

Android currently avoids this problem because it uses emutls and doesn't
support ELF TLS. This problem doesn't apply to --pack-dyn-relocs=relr
because SHR_RELR only handles relative relocations without explicit addends
or info.

Fixes https://bugs.llvm.org/show_bug.cgi?id=37841.

Reviewers: ruiu, pcc, chh, javed.absar, espindola

Subscribers: emaste, arichardson, llvm-commits, srhines

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

llvm-svn: 342432

5 years agoRevert "[ARM] Cleanup ARM CGP isSupportedValue"
Volodymyr Sapsai [Tue, 18 Sep 2018 00:11:55 +0000 (00:11 +0000)]
Revert "[ARM] Cleanup ARM CGP isSupportedValue"

This reverts r342395 as it caused error

> Argument value type does not match pointer operand type!
>   %0 = atomicrmw volatile xchg i8* %_Value1, i32 1 monotonic, !dbg !25
>  i8in function atomic_flag_test_and_set
> fatal error: error in backend: Broken function found, compilation aborted!

on bot http://green.lab.llvm.org/green/job/clang-stage1-configure-RA/

More details are available at https://reviews.llvm.org/D52080

llvm-svn: 342431

5 years agoWork around grep vs. CRLF issue in Thumb2 test by matching excess whitespace
Reid Kleckner [Tue, 18 Sep 2018 00:04:29 +0000 (00:04 +0000)]
Work around grep vs. CRLF issue in Thumb2 test by matching excess whitespace

There seems to be a separate command line tokenization issue that
prevents just ':\s*$' from working, since then the pattern argument
isn't quoted, and grep.exe misinterprets the backslash somehow.

llvm-svn: 342430

5 years ago[OCaml] Add GlobalIFunc value kind to OCaml API
whitequark [Tue, 18 Sep 2018 00:01:12 +0000 (00:01 +0000)]
[OCaml] Add GlobalIFunc value kind to OCaml API

Summary:
The GlobalIFunc value kind has not yet been added to the OCaml
API. This patch only extends the enum, so that e.g. classify_value
will not crash. No support for manipulating or building GlobalIFuncs
is added at this point.

Reviewers: whitequark, deadalnix

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342429

5 years ago[OCaml] Add Token type to kind enum in OCaml API
whitequark [Tue, 18 Sep 2018 00:01:01 +0000 (00:01 +0000)]
[OCaml] Add Token type to kind enum in OCaml API

Summary:
The token type has not yet been added to the OCaml API. This
patch only extends the enum, so that e.g. classify_type will not
crash. No support for manipulating or building tokens is added at this
point.

Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342428

5 years ago[OCaml] Add missing instruction opcodes to OCaml API
whitequark [Tue, 18 Sep 2018 00:00:53 +0000 (00:00 +0000)]
[OCaml] Add missing instruction opcodes to OCaml API

Summary:
The OCaml bindings have become out of date and several opcodes have
been added to the C API without corresponding additions to the OCaml
API.

Reviewers: whitequark, mgorny

Reviewed By: whitequark

Subscribers: llvm-commits

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

llvm-svn: 342427

5 years agobuild: fix standalone builds for compiler-rt on Darwin
Saleem Abdulrasool [Mon, 17 Sep 2018 23:25:36 +0000 (23:25 +0000)]
build: fix standalone builds for compiler-rt on Darwin

When building static fat libraries, we need to ensure that we use libtool rather
than llvm-ar to create the library.  Duplicate the rules from LLVM to ensure
that we correctly build the fat libraries when building compiler-rt standalone.
This also requires that we duplicate the workaround for the `DYLD_LIBRARY_PATH`
for SIP.  Additionally, ensure that we set the `CMAKE_*_ARCHIVE_FINISH` variable
to ensure that we do not try to use `ranlib` on that target.

llvm-svn: 342425

5 years agoRevert "[DataFormatters] Add formatter for C++17 std::variant"
Shafik Yaghmour [Mon, 17 Sep 2018 23:15:35 +0000 (23:15 +0000)]
Revert "[DataFormatters] Add formatter for C++17 std::variant"

This reverts commit r342421.

Because it breaks build bot http://green.lab.llvm.org/green/job/lldb-cmake-clang-5.0.2//418/console

llvm-svn: 342424

5 years ago[libFuzzer] Avoid fuzzer symbols being hidden.
Matt Morehouse [Mon, 17 Sep 2018 23:08:15 +0000 (23:08 +0000)]
[libFuzzer] Avoid fuzzer symbols being hidden.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1490845#c5.

Patch By: Mike Hommey

llvm-svn: 342423

5 years ago[EarlyCSEwMemorySSA] Add MSSA verification and tests to make EarlyCSE failures easier...
Alina Sbirlea [Mon, 17 Sep 2018 22:35:21 +0000 (22:35 +0000)]
[EarlyCSEwMemorySSA] Add MSSA verification and tests to make EarlyCSE failures easier to track.

Summary:
EarlyCSE can make IR changes that will leave MemorySSA with accesses claiming to be optimized, but for which a subsequent MemorySSA run will yield a different optimized result.
Due to relying on AA queries, we can't fix this in general, unless we recompute MemorySSA.
Adding some tests to track this and a basic verify for future potential failures.

Reviewers: george.burgess.iv, gberry

Subscribers: sanjoy, jlebar, Prazek, llvm-commits

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

llvm-svn: 342422

5 years ago[DataFormatters] Add formatter for C++17 std::variant
Shafik Yaghmour [Mon, 17 Sep 2018 22:10:44 +0000 (22:10 +0000)]
[DataFormatters] Add formatter for C++17 std::variant

rdar://problem/43691454

Patch by Shafik Yaghmour.

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

llvm-svn: 342421

5 years agoAdd #include <cassert>
Zachary Turner [Mon, 17 Sep 2018 22:04:56 +0000 (22:04 +0000)]
Add #include <cassert>

This should fix the broken builds on some bots.

llvm-svn: 342420