platform/upstream/llvm.git
4 years agoInclude the mangled name in -ast-dump=json
Alex Richardson [Fri, 15 Nov 2019 12:33:16 +0000 (12:33 +0000)]
Include the mangled name in -ast-dump=json

I am planning to use this feature to make update_cc_test_checks.py less fragile
by obtaining the mangled names directly from -ast-dump=json. Currently,
it uses c-index-test which ignores the -triple=, etc. arguments that are
in the RUN: line and therefore does not generate checks for some targets.

The AST dump tests were updated using the following command:
`python $LLVM_BINDIR/gen_ast_dump_json_test.py --update --source $LLVM_SRC/clang/test/AST/*-json.*`

Reviewers: aaron.ballman

Reviewed By: aaron.ballman

Subscribers: rsmith, MaskRay, cfe-commits

Tags: #clang

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

4 years ago[NFC] Regenerate ast-dump-json tests
Alex Richardson [Tue, 12 Nov 2019 12:02:07 +0000 (12:02 +0000)]
[NFC] Regenerate ast-dump-json tests

This was done by running `python $LLVM_BINDIR/gen_ast_dump_json_test.py --update --source $LLVM_SRC/clang/test/AST/*-json.*`
Only changes are whitespace and line endings.

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

4 years ago[gen_ast_dump_json_test.py] Allow updating multiple files in one go
Alex Richardson [Tue, 12 Nov 2019 12:00:51 +0000 (12:00 +0000)]
[gen_ast_dump_json_test.py] Allow updating multiple files in one go

With this change it is possible to update all JSON dump tests using the
following command:
python $LLVM_BINDIR/gen_ast_dump_json_test.py --update --source $LLVM_SRC/clang/test/AST/*-json.*

See https://reviews.llvm.org/D70119

4 years ago[gen_ast_dump_json_test.py] Copy to binary directory to omit --clang argument
Alex Richardson [Tue, 12 Nov 2019 11:47:54 +0000 (11:47 +0000)]
[gen_ast_dump_json_test.py] Copy to binary directory to omit --clang argument

The script will now check if a clang binary exists in the same directory
and default to that instead of requiring a --clang argument. The script
is copied to the clang build directory using CMake configure_file() with
COPYONLY. This ensures that the version in the build directory is updated
any time the source version changes.

See https://reviews.llvm.org/D70119

4 years ago[gen_ast_dump_json_test.py] Skip manual tests when using --update
Alex Richardson [Tue, 29 Oct 2019 12:58:10 +0000 (12:58 +0000)]
[gen_ast_dump_json_test.py] Skip manual tests when using --update

See https://reviews.llvm.org/D70119

4 years ago[gen_ast_dump_json_test.py] Infer --filters flags when using --update
Alex Richardson [Tue, 29 Oct 2019 12:32:16 +0000 (12:32 +0000)]
[gen_ast_dump_json_test.py] Infer --filters flags when using --update

See https://reviews.llvm.org/D70119

4 years ago[gen_ast_dump_json_test.py] Parse RUN: lines with --update
Alex Richardson [Tue, 29 Oct 2019 12:06:46 +0000 (12:06 +0000)]
[gen_ast_dump_json_test.py] Parse RUN: lines with --update

See https://reviews.llvm.org/D70119

4 years ago[gen_ast_dump_json_test.py] Add a --update flag
Alex Richardson [Tue, 29 Oct 2019 11:50:08 +0000 (11:50 +0000)]
[gen_ast_dump_json_test.py] Add a --update flag

This will allow updating the JSON tests for new format changes. Instead of
simply appending the JSON to the input file, the script will now make a
copy of the input file up to the "CHECK lines have been autogenerated"
disclaimer and then append the new JSON.

See https://reviews.llvm.org/D70119

4 years agoDWARFDebugLoc(v4): Add an incremental parsing function
Pavel Labath [Tue, 5 Nov 2019 13:46:54 +0000 (14:46 +0100)]
DWARFDebugLoc(v4): Add an incremental parsing function

Summary:
This adds a visitLocationList function to the DWARF v4 location lists,
similar to what already exists for DWARF v5. It follows the approach
outlined in previous patches (D69672), where the parsed form is always
stored in the DWARF v5 format, which makes it easier for generic code to
be built on top of that. v4 location lists are "upgraded" during
parsing, and then this upgrade is undone while dumping.

Both "inline" and section-based dumping is rewritten to reuse the
existing "generic" location list dumper. This means that the output
format is consistent for all location lists (the only thing one needs to
implement is the function which prints the "raw" form of a location
list), and that debug_loc dumping correctly processes base address
selection entries, etc.

The previous existing debug_loc functionality (e.g.,
parseOneLocationList) is rewritten on top of the new API, but it is not
removed as there is still code which uses them. This will be done in
follow-up patches, after I build the API to access the "interpreted"
location lists in a generic way (as that is what those users really
want).

Reviewers: dblaikie, probinson, JDevlieghere, aprantl, SouraVX

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[CodeGen] Increase the size of a SmallVector
Jay Foad [Fri, 15 Nov 2019 11:05:39 +0000 (11:05 +0000)]
[CodeGen] Increase the size of a SmallVector

The SmallVector reserve() call in
MachineInstrExpressionTrait::getHashValue accounted for over 3% of all
calls to malloc() when I compiled a bunch of graphics shaders for the
AMDGPU target. Its initial size was only enough for machine instructions
with up to 7 operands, but for AMDGPU 8 and 10 operands are very common.
Here's a histogram of number of operands for each call to getHashValue,
gathered from the same collection of shaders:

1  13503
2  254273
3  135781
4  422508
5  614997
6  194953
7  287248
8  1517255
9  31218
10 1191269
11 70731
12 24
13 77
15 84
17 4692
27 16
33 705
49 6

Typical instructions with 8 and 10 operands are floating point
arithmetic and multiply-accumulate instructions like:

%83:vgpr_32 = V_MUL_F32_e64 0, killed %82:vgpr_32, 0, killed %81:vgpr_32, 0, 0, implicit $exec
%330:vgpr_32 = V_MAC_F32_e64 0, killed %327:vgpr_32, 0, killed %329:sgpr_32, 0, %328:vgpr_32(tied-def 0), 0, 0, implicit $exec

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

4 years agoRevert "[clang] Remove the DIFlagArgumentNotModified debug info flag"
Djordje Todorovic [Fri, 15 Nov 2019 10:59:47 +0000 (11:59 +0100)]
Revert "[clang] Remove the DIFlagArgumentNotModified debug info flag"

This reverts commit rG1643734741d2 due to LLDB test failure.

4 years ago[ARM][MVE] tail-predication
Sjoerd Meijer [Fri, 15 Nov 2019 11:01:13 +0000 (11:01 +0000)]
[ARM][MVE] tail-predication

This is a follow up of d90804d, to also flag fmcp instructions as instructions
that we do not support in tail-predicated vector loops.

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

4 years ago[MIPS GlobalISel] Select andi, ori and xori
Petar Avramovic [Fri, 15 Nov 2019 10:41:25 +0000 (11:41 +0100)]
[MIPS GlobalISel] Select andi, ori and xori

Introduce IntImmLeaf version of PatLeaf immZExt16 for 32-bit immediates.
Change immZExt16 with imm32ZExt16 for andi, ori and xori.
This keeps same behavior for SDAG and allows for GlobalISel selectImpl
to select 'G_CONSTANT imm' + G_AND, G_OR, G_XOR into ANDi, ORi, XORi,
respectively, when 32-bit imm satisfies imm32ZExt16 predicate: zero
extending 16 low bits of imm is equal to imm.
Large number of test changes comes from zero extending of small types
which is transformed into 'and' with bitmask in legalizer.

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

4 years ago[MIPS GlobalISel] Select addiu
Petar Avramovic [Fri, 15 Nov 2019 10:36:13 +0000 (11:36 +0100)]
[MIPS GlobalISel] Select addiu

Introduce IntImmLeaf version of PatLeaf immSExt16 for 32-bit immediates.
Change immSExt16 with imm32SExt16 for addiu.
This keeps same behavior for SDAG and allows for GlobalISel selectImpl
to select 'G_CONSTANT imm' + G_ADD into ADDIu when 32-bit imm satisfies
imm32SExt16 predicate: sign extending 16 low bits of imm is equal to imm.

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

4 years ago[Scalarizer] Treat values from unreachable blocks as undef
Mikael Holmen [Fri, 15 Nov 2019 09:29:47 +0000 (10:29 +0100)]
[Scalarizer] Treat values from unreachable blocks as undef

Summary:
When scalarizing PHI nodes we might try to examine/rewrite
InsertElement nodes in predecessors. If those predecessors
are unreachable from entry, then the IR in those blocks could
have unexpected properties resulting in infinite loops in
Scatterer::operator[].
By simply treating values originating from instructions in
unreachable blocks as undef we do not need to analyse them
further.

This fixes PR41723.

Reviewers: bjope

Reviewed By: bjope

Subscribers: bjope, hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[clang] Remove the DIFlagArgumentNotModified debug info flag
Djordje Todorovic [Fri, 15 Nov 2019 09:47:35 +0000 (10:47 +0100)]
[clang] Remove the DIFlagArgumentNotModified debug info flag

It turns out that the ExprMutationAnalyzer can be very slow when AST
gets huge in some cases. The idea is to move this analysis to the LLVM
back-end level (more precisely, in the LiveDebugValues pass). The new
approach will remove the performance regression, simplify the
implementation and give us front-end independent implementation.

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

4 years ago[ARM,MVE] Add intrinsics for vector get/set lane.
Simon Tatham [Fri, 15 Nov 2019 09:53:15 +0000 (09:53 +0000)]
[ARM,MVE] Add intrinsics for vector get/set lane.

This adds the `vgetq_lane` and `vsetq_lane` families, to copy between
a scalar and a specified lane of a vector.

One of the new `vgetq_lane` intrinsics returns a `float16_t`, which
causes a compile error if `%clang_cc1` doesn't get the option
`-fallow-half-arguments-and-returns`. The driver passes that option to
cc1 already, but I've had to edit all the explicit cc1 command lines
in the existing MVE intrinsics tests.

A couple of fixes are included for the code I wrote up front in
MveEmitter to support lane-index immediates (and which nothing has
tested until now): the type was wrong (`uint32_t` instead of `int`)
and the range was off by one.

I've also added a method of bypassing the default promotion to `i32`
that is done by the MveEmitter code generation: it's sensible to
promote short scalars like `i16` to `i32` if they're going to be
passed to custom IR intrinsics representing a machine instruction
operating on GPRs, but not if they're going to be passed to standard
IR operations like `insertelement` which expect the exact type.

Reviewers: ostannard, MarkMurrayARM, dmgreen

Reviewed By: dmgreen

Subscribers: kristof.beyls, cfe-commits

Tags: #clang

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

4 years ago[ARM,MVE] Add intrinsics for 'administrative' vector operations.
Simon Tatham [Wed, 13 Nov 2019 15:23:38 +0000 (15:23 +0000)]
[ARM,MVE] Add intrinsics for 'administrative' vector operations.

This batch of intrinsics includes lots of things that move vector data
around or change its type without really affecting its value very
much. It includes the `vreinterpretq` family (cast one vector type to
another); `vuninitializedq` (create a vector of a given type with
don't-care contents); and `vcreateq` (make a 128-bit vector out of two
`uint64_t` halves).

These are all implemented using completely standard IR that's already
tested in existing LLVM unit tests, so I've just written a clang test
to check the IR is correct, and left it at that.

I've also added some richer infrastructure to the MveEmitter Tablegen
backend, to make it specify the exact integer type of integer
arguments passed to IR construction functions, and wrap those
arguments in a `static_cast` in the autogenerated C++. That was
necessary to prevent an overloading ambiguity when passing the integer
literal `0` to `IRBuilder::CreateInsertElement`, because otherwise, it
could mean either a null pointer `llvm::Value *` or a zero `uint64_t`.

Reviewers: ostannard, MarkMurrayARM, dmgreen

Subscribers: kristof.beyls, cfe-commits

Tags: #clang

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

4 years ago[AST] Use written names instead of `type-param-0-0` in more cases when printing types...
Sam McCall [Thu, 14 Nov 2019 13:16:14 +0000 (14:16 +0100)]
[AST] Use written names instead of `type-param-0-0` in more cases when printing types and decls.

Summary:
This doesn't cover decls in diagnostics, which use NamedDecl::getNameForDiagnostic().
(That should also be fixed later I think).

This covers some cases of https://github.com/clangd/clangd/issues/76
(hover, but not outline or sighelp)

Reviewers: hokein

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

Tags: #clang

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

4 years agoFix GCC -Wcast-qual warnings
Hans Wennborg [Fri, 15 Nov 2019 08:48:50 +0000 (09:48 +0100)]
Fix GCC -Wcast-qual warnings

4 years agoGCC 5.3 build fix
Hans Wennborg [Fri, 15 Nov 2019 08:46:44 +0000 (09:46 +0100)]
GCC 5.3 build fix

It was failing with

  llvm/lib/ExecutionEngine/Orc/DebugUtils.cpp:56:10:
  error: could not convert ‘Obj’ from ‘std::unique_ptr<llvm::MemoryBuffer>’
  to ‘llvm::Expected<std::unique_ptr<llvm::MemoryBuffer> >’
     return Obj;
            ^

4 years agoAMDGPU: Change boolean content type to 0 or 1
Matt Arsenault [Mon, 11 Nov 2019 09:16:38 +0000 (14:46 +0530)]
AMDGPU: Change boolean content type to 0 or 1

The usage of target boolean checks is overly inflexible, since sext
and zext of a compare are equally cheap. The choice is arbitrary, but
using 0/1 to some degree is the choice of lower resistance since
that's what most targets use. This enables a few combines that don't
bother to support ZeroOrNegativeOneBooleanContent.

4 years agoAMDGPU: Try to commute sub of boolean ext
Matt Arsenault [Thu, 14 Nov 2019 08:03:33 +0000 (13:33 +0530)]
AMDGPU: Try to commute sub of boolean ext

Avoids another regression in a future patch.

4 years agoGlobalISel: Lower s1 source G_SITOFP/G_UITOFP
Matt Arsenault [Fri, 15 Nov 2019 06:29:12 +0000 (11:59 +0530)]
GlobalISel: Lower s1 source G_SITOFP/G_UITOFP

4 years agoUnbreak the clang test suite when hexagon-link is not available
David Zarzycki [Fri, 15 Nov 2019 06:45:20 +0000 (08:45 +0200)]
Unbreak the clang test suite when hexagon-link is not available

All of the other tests are of the form {{hexagon-link|ld}} so this
probably should be too.

4 years agogn build: Merge 16f38dda292
LLVM GN Syncbot [Fri, 15 Nov 2019 05:27:58 +0000 (05:27 +0000)]
gn build: Merge 16f38dda292

4 years ago[ORC] Add a utility to support dumping JIT'd objects to disk for debugging.
Lang Hames [Thu, 14 Nov 2019 23:58:21 +0000 (15:58 -0800)]
[ORC] Add a utility to support dumping JIT'd objects to disk for debugging.

Adds a DumpObjects utility that can be used to dump JIT'd objects to disk.
Instances of DebugObjects may be used by ObjectTransformLayer as no-op
transforms.

This patch also adds an ObjectTransformLayer to LLJIT and an example of how
to use this utility to dump JIT'd objects in LLJIT.

4 years ago[llvm-objcopy][MachO] Implement --remove-section
Seiya Nuta [Fri, 15 Nov 2019 03:37:55 +0000 (12:37 +0900)]
[llvm-objcopy][MachO] Implement --remove-section

Reviewers: alexshap, rupprecht, jhenderson

Reviewed By: rupprecht, jhenderson

Subscribers: jakehehrlich, abrachet, llvm-commits

Tags: #llvm

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

4 years agoAdd a test to cover structural match for recursive data types
Bruno Cardoso Lopes [Thu, 14 Nov 2019 21:44:18 +0000 (13:44 -0800)]
Add a test to cover structural match for recursive data types

This didn't use to work prior to r370639, now that this is supported
add a testcase to prevent regressions.

rdar://problem/53602368

4 years ago[InstCombine] Don't use getFirstNonPHI in FoldIntegerTypedPHI
Francis Visoiu Mistrih [Fri, 15 Nov 2019 01:45:27 +0000 (17:45 -0800)]
[InstCombine] Don't use getFirstNonPHI in FoldIntegerTypedPHI

getFirstNonPHI iterates over all the instructions in a block until it
finds a non-PHI.

Then, the loop starts from the beginning of the block and goes through
all the instructions until it reaches the instruction found by
getFirstNonPHI.

Instead of doing that, just stop when a non-PHI is found.

This reduces the compile-time of a test case discussed in
https://reviews.llvm.org/D47023 by 13x.

Not entirely sure how to come up with a test case for this since it's a
compile time issue that would significantly slow down running the tests.

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

4 years ago[WinEH] Fix the wrong alignment orientation during calculating EH frame.
Wang, Pengfei [Thu, 14 Nov 2019 07:12:07 +0000 (15:12 +0800)]
[WinEH] Fix the wrong alignment orientation during calculating EH frame.

Summary: This is a bug fix for further issues in PR43585.

Reviewers: rnk, RKSimon, craig.topper, andrew.w.kaylor

Subscribers: hiraditya, llvm-commits, annita.zhang

Tags: #llvm

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

4 years ago[Utility] Remove a dead header [PPC64LE_ehframe_Registers.h]
Davide Italiano [Thu, 14 Nov 2019 23:29:28 +0000 (15:29 -0800)]
[Utility] Remove a dead header [PPC64LE_ehframe_Registers.h]

4 years agoAdd missing includes needed to prune LLVMContext.h include, NFC
Reid Kleckner [Thu, 14 Nov 2019 23:15:48 +0000 (15:15 -0800)]
Add missing includes needed to prune LLVMContext.h include, NFC

These are a pre-requisite to removing #include "llvm/Support/Options.h"
from LLVMContext.h: https://reviews.llvm.org/D70280

4 years ago[libc++] [P0920] [P1661] Update status page.
Marek Kurdej [Thu, 14 Nov 2019 23:12:34 +0000 (00:12 +0100)]
[libc++] [P0920] [P1661] Update status page.

4 years ago[LLDB] Fix more -Wdocumentation issues (NFC)
Jonas Devlieghere [Thu, 14 Nov 2019 22:30:11 +0000 (14:30 -0800)]
[LLDB] Fix more -Wdocumentation issues (NFC)

4 years ago[COFF] Avoid CodeView include in header
Reid Kleckner [Thu, 14 Nov 2019 22:27:48 +0000 (14:27 -0800)]
[COFF] Avoid CodeView include in header

Most LLD/COFF files don't care about CodeView. Avoid using CodeView
types in InputFiles.h.

4 years agoForward declare the DWARFCache to avoid including LLVM DWARF details
Reid Kleckner [Thu, 14 Nov 2019 22:16:21 +0000 (14:16 -0800)]
Forward declare the DWARFCache to avoid including LLVM DWARF details

LLD's DWARF.h header leaks a lot of LLVM DWARF includes that LLD doesn't
need. For Chunks.cpp, I see a compile time decrease of 3.1s to 2.7s.

4 years ago[Reproducer] Enable crash reports for reproducer tests
Jonas Devlieghere [Thu, 14 Nov 2019 19:11:37 +0000 (11:11 -0800)]
[Reproducer] Enable crash reports for reproducer tests

For some reason the reproducer tests seem really proficient at
uncovering structural issues in LLDB related to how we tear down things,
but of course only on the bots.

The pretty stack trace helps a bit, but what I really want is the crash
reports which contain much more information, such as what other threads
we doing.

Crash reports are automatically suppressed by lit. This patch
(temporarily) disables that for the reproducer tests.

4 years ago[BPF] Restrict preserve_access_index attribute to C only
Yonghong Song [Thu, 14 Nov 2019 18:34:35 +0000 (10:34 -0800)]
[BPF] Restrict preserve_access_index attribute to C only

This patch is a follow-up for commit 4e2ce228ae79
  [BPF] Add preserve_access_index attribute for record definition
to restrict attribute for C only. A new test case is added
to check for this restriction.

Additional code polishing is done based on
Aaron Ballman's suggestion in https://reviews.llvm.org/D69759/new/.

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

4 years ago[SanitizerCommon] Print the current value of options when printing out help.
Dan Liew [Tue, 29 Oct 2019 00:53:38 +0000 (17:53 -0700)]
[SanitizerCommon] Print the current value of options when printing out help.

Summary:
Previously it wasn't obvious what the default value of various sanitizer
options were. A very close approximation of the "default values" for the
options are the current value of the options at the time of printing the
help output.

In the case that no other options are provided then the current values
are the default values (apart from `help`).

```
ASAN_OPTIONS=help=1 ./program
```

This patch causes the current option values to be printed when the
`help` output is enabled. The original intention for this patch was to append
`(Default: <value>)` to an option's help text. However because this
is technically wrong (and misleading) I've opted to append
`(Current Value: <value>)` instead.

When trying to implement a way of displaying the default value of the
options I tried another solution where the default value used in `*.inc` files
were used to create compile time strings that where used when printing
the help output. This solution was not satisfactory for several reasons:

* Stringifying the default values with the preprocessor did not work very
well in several cases.  Some options contain boolean operators which no
amount of macro expansion can get rid of.
* It was much more invasive than this patch. Every sanitizer had to be changed.
* The settings of `__<sanitizer>_default_options()` are ignored.

For those reasons I opted for the solution in this patch.

rdar://problem/42567204

Reviewers: kubamracek, yln, kcc, dvyukov, vitalybuka, cryptoad, eugenis, samsonov

Subscribers: #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

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

4 years ago[COFF] Don't include llvm/LTO/LTO.h in a header
Reid Kleckner [Thu, 14 Nov 2019 21:46:00 +0000 (13:46 -0800)]
[COFF] Don't include llvm/LTO/LTO.h in a header

LLVM's LTO header includes all of llvm/IR, which most of the COFF linker
doesn't need.

4 years agoRevert "Temporarily Revert:"
Alexey Bataev [Thu, 14 Nov 2019 19:35:28 +0000 (14:35 -0500)]
Revert "Temporarily Revert:"

This reverts commit e511c4b0dff1692c267addf17dce3cebe8f97faa:

    Temporarily Revert:

     "[SLP] Generalization of stores vectorization."
     "[SLP] Fix -Wunused-variable. NFC"
     "[SLP] Vectorize jumbled stores."

after fixing the problem with compile time.

4 years ago[llvm-dis] Fix the disable-output flag
Matthew Voss [Thu, 14 Nov 2019 20:33:52 +0000 (12:33 -0800)]
[llvm-dis] Fix the disable-output flag

My change in llvmorg-10-init-9872-g141bb5f308f broke this flag.

Thanks to @rsmith for the bug.

4 years ago[GPGPU] Fix depricated warning.
Michael Kruse [Thu, 14 Nov 2019 21:17:16 +0000 (15:17 -0600)]
[GPGPU] Fix depricated warning.

setAlignment(unsigned) was deprecated in commit:

0e62011df891d0e7ad904524edf705d07d12d5d4
[Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned)

4 years ago[X86] Fix the implementation of __readcr3/__writecr3 to work in 64-bit mode
Craig Topper [Thu, 14 Nov 2019 21:21:35 +0000 (13:21 -0800)]
[X86] Fix the implementation of __readcr3/__writecr3 to work in 64-bit mode

We need to use a 64-bit type in 64-bit mode so a 64-bit register
will get used in the generated assembly. I've also changed the
constraints to just use "r" intead of "q". "q" forces to a only
an a/b/c/d register in 32-bit mode, but I see no reason that
would matter here.

Fixes Nico's note in PR19301 over 4 years ago.

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

4 years ago[DebugInfo] Allow spill slots in call site parameter descriptions
Vedant Kumar [Thu, 14 Nov 2019 17:20:58 +0000 (09:20 -0800)]
[DebugInfo] Allow spill slots in call site parameter descriptions

Allow call site paramter descriptions to reference spill slots. Spill
slots are not visible to high-level LLVM IR, so they can safely be
referenced during entry value evaluation (as they cannot be clobbered by
some other function).

This gives a 5% increase in the number of call site parameter DIEs in an
LTO x86_64 build of the xnu kernel.

This reverts commit eb4c98ca3d2590bad9f6542afbf3a7824d2b53fa (
[DebugInfo] Exclude memory location values as parameter entry values),
effectively reintroducing the portion of D60716 which dealt with memory
locations (authored by Djordje, Nikola, Ananth, and Ivan).

This partially addresses llvm.org/PR43343. However, not all memory
operands forwarded to callees live in spill slots. In the xnu build, it
may be possible to use an escape analysis to increase the number of call
site parameter by another 15% (more details in PR43343).

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

4 years ago[yaml2obj][COFF] Add support for extended relocation tables
Sergey Dmitriev [Thu, 14 Nov 2019 20:31:13 +0000 (12:31 -0800)]
[yaml2obj][COFF] Add support for extended relocation tables

Summary:
The tool does not correctly handle COFF sections with extended relocation tables (with IMAGE_SCN_LNK_NRELOC_OVFL bit set), this patch fixes this problem.

But I have cheated a bit in the test (to make it smaller) because extended relocation table is supposed to be used when the number of relocations exceeds 65534. Otherwise the test size would be pretty big.

Reviewers: jhenderson, MaskRay, mstorsjo

Reviewed By: mstorsjo

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[GPGPU] Fix #includes.
Michael Kruse [Thu, 14 Nov 2019 20:34:39 +0000 (14:34 -0600)]
[GPGPU] Fix #includes.

Adapt for 05da2fe52162 "Sink all InitializePasses.h includes" which
forgot the GPGPU files (presumably because POLLY_ENABLE_GPGPU_CODEGEN
is OFF by default).

4 years ago[globalisel][irtanslator] The IRTranslator should preserve TBAA information
Daniel Sanders [Thu, 14 Nov 2019 20:11:00 +0000 (12:11 -0800)]
[globalisel][irtanslator] The IRTranslator should preserve TBAA information

4 years ago[lldb][Editline] Support ctrl+left/right arrow word navigation.
Jordan Rupprecht [Tue, 12 Nov 2019 19:37:23 +0000 (11:37 -0800)]
[lldb][Editline] Support ctrl+left/right arrow word navigation.

Summary:
This adds several 5C/5D escape codes that allow moving forward/backward words similar to bash command line navigation.

On my terminal, `ctrl+v ctrl+<left arrow>` prints `^[[1;5D`. However, it seems inputrc also maps other escape variants of this to forward/backward word, so I've included those too. Similar for 5C = ctrl+right arrow.

Reviewers: JDevlieghere, labath

Reviewed By: JDevlieghere, labath

Subscribers: merge_guards_bot, lldb-commits

Tags: #lldb

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

4 years agoFix up lit's tests to run in a multi-config build environment.
Paul Robinson [Thu, 14 Nov 2019 16:56:32 +0000 (08:56 -0800)]
Fix up lit's tests to run in a multi-config build environment.

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

4 years ago[Pipeliner] Fix an assertion caused by iterator invalidation.
Sumanth Gundapaneni [Thu, 14 Nov 2019 19:08:06 +0000 (13:08 -0600)]
[Pipeliner] Fix an assertion caused by iterator invalidation.

4 years ago[Hexagon] Validate the iterators before converting them to mux.
Sumanth Gundapaneni [Thu, 14 Nov 2019 19:01:16 +0000 (13:01 -0600)]
[Hexagon] Validate the iterators before converting them to mux.

The conditional instructions that are translated to mux instructions
are deleted and the iterators to these deleted instructions are being
used later. This patch fixed this issue.

4 years ago[Hexagon] Fix clang driver to parse -mcpu/-mvXX and -march properly.
Sumanth Gundapaneni [Thu, 14 Nov 2019 18:59:15 +0000 (12:59 -0600)]
[Hexagon] Fix clang driver to parse -mcpu/-mvXX and -march properly.

Before this patch if we pass "-mcpu=hexagonv65 -march=hexagon" in this order,
the driver fails to figure out the correct cpu version. This patch fixed this
issue.

4 years agoUpdate lit infra to detect "MemoryWithOrigins' sanitizer build.
Sumanth Gundapaneni [Thu, 14 Nov 2019 18:40:10 +0000 (12:40 -0600)]
Update lit infra to detect "MemoryWithOrigins' sanitizer build.

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

4 years ago[RISCV] Use addi rather than add x0
Sam Elliott [Thu, 14 Nov 2019 18:42:33 +0000 (18:42 +0000)]
[RISCV] Use addi rather than add x0

Summary:
The RISC-V backend used to generate `add <reg>, x0, <reg>` in a few
instances. It seems most places no longer generate this sequence.

This is semantically equivalent to `addi <reg>, <reg>, 0`, but the
latter has the advantage of being noted to be the canonical instruction
to be used for moves (which microarchitectures can and should recognise
as such).

The changed testcases use instruction aliases - `mv <reg>, <reg>` is an
alias for `addi <reg>, <reg>, 0`.

Reviewers: luismarques

Reviewed By: luismarques

Subscribers: hiraditya, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, pzheng, sameer.abuasal, llvm-commits

Tags: #llvm

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

4 years agoAdd support for multi-module bitcode files to llvm-dis
Matthew Voss [Wed, 13 Nov 2019 00:29:37 +0000 (16:29 -0800)]
Add support for multi-module bitcode files to llvm-dis

Summary:
This change allows llvm-dis to disassemble multi-module bitcode
files, including the associated module summary.

Reviewers: tejohnson, pcc, mehdi_amini

Subscribers: llvm-commits

Tags: #llvm

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

4 years ago[llvm-objcopy][COFF] Add support for extended relocation tables
Sergey Dmitriev [Thu, 14 Nov 2019 17:50:36 +0000 (09:50 -0800)]
[llvm-objcopy][COFF] Add support for extended relocation tables

Summary: This patch adds support for COFF objects with extended relocation tables to the llvm-objcopy tool.

Reviewers: jhenderson, MaskRay, mstorsjo, alexshap, rupprecht

Reviewed By: mstorsjo

Subscribers: jakehehrlich, abrachet, seiya, llvm-commits

Tags: #llvm

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

4 years ago[RISCV] Fix wrong CFI directives
Luís Marques [Thu, 14 Nov 2019 18:27:42 +0000 (18:27 +0000)]
[RISCV] Fix wrong CFI directives

Summary: Removes CFI CFA directives that could incorrectly propagate
beyond the basic block they were inteded for. Specifically it removes
the epilogue CFI directives. See the branch_and_tail_call test for an
example of the issue. Should fix the stack unwinding issues caused by
the incorrect directives.

Reviewers: asb, lenary, shiva0217
Reviewed By: lenary
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69723

4 years ago[ExpandReductions] Don't push all intrinsics to the worklist. Just push reductions.
Craig Topper [Thu, 14 Nov 2019 18:02:51 +0000 (10:02 -0800)]
[ExpandReductions] Don't push all intrinsics to the worklist. Just push reductions.

We were previously pushing all intrinsics used in a function to the
worklist. This is wasteful for memory in a function with a lot of
intrinsics.

We also ask TTI if we should expand every intrinsic, but we only
have expansion support for the reduction intrinsics. This just
wastes time for the non-reduction intrinsics.

This patch only pushes reduction intrinsics into the worklist and
skips other intrinsics.

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

4 years ago[clang-format] Fixed edge-case with SpacesInSquareBrackets with trailing bare "&...
Mitchell Balan [Thu, 14 Nov 2019 18:18:34 +0000 (13:18 -0500)]
[clang-format] Fixed edge-case with SpacesInSquareBrackets with trailing bare "&" lambda capture.

Summary:
Lambda captures allow for a lone `&` capture, so `&]` needs to be properly handled.

`int foo = [& ]() {}` is fixed to give `int foo = [ & ]() {}`

Reviewers: MyDeveloperDay

Reviewed by: MyDeveloperDay

Subscribers: cfe-commits

Tags: #clang, #clang-format

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

4 years agoReplace wrongly deleted header banner, fix formatting
Reid Kleckner [Thu, 14 Nov 2019 18:19:36 +0000 (10:19 -0800)]
Replace wrongly deleted header banner, fix formatting

I reviewed the diff hunks of 05da2fe52162c80dfa that don't contain
'#include' lines, and found two unintended changes. I deleted a header
banner inadvertently while inserting a header, and changed the
indentation of a constructor in an odd way. Add back the banner, and
reformat the constructor.

4 years ago[cmake] Emit an error for -DBUILD_SHARED_LIBS=ON on Windows
Tom Stellard [Thu, 14 Nov 2019 17:18:44 +0000 (09:18 -0800)]
[cmake] Emit an error for -DBUILD_SHARED_LIBS=ON on Windows

Summary:
The BUILD_SHARED_LIBS=ON build fails on Windows, so prevent users from
enabling it.

Reviewers: beanz, smeenai, compnerd, phosek

Reviewed By: beanz

Subscribers: mgorny, llvm-commits

Tags: #llvm

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

4 years agoDocument more specifically the rounding for "llvm.round".
Kevin P. Neal [Thu, 14 Nov 2019 18:11:54 +0000 (13:11 -0500)]
Document more specifically the rounding for "llvm.round".

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

4 years ago[InstCombine] remove duplicate code for simplifying a shuffle; NFCI
Sanjay Patel [Thu, 14 Nov 2019 17:06:50 +0000 (12:06 -0500)]
[InstCombine] remove duplicate code for simplifying a shuffle; NFCI

The transform is already handled by InstSimplify or earlier
in InstCombine, so trying to do it again is not necessary.

4 years agoMake the language more consistent since I'm about to commit a content
Kevin P. Neal [Thu, 10 Oct 2019 16:24:51 +0000 (12:24 -0400)]
Make the language more consistent since I'm about to commit a content
change next.

4 years ago[clang-include-fixer] Skip .rc files when finding symbols
Reid Kleckner [Wed, 13 Nov 2019 19:25:42 +0000 (11:25 -0800)]
[clang-include-fixer] Skip .rc files when finding symbols

Summary:
For some reason CMake includes entries for .rc files, but
find-all-symbols handles them improperly.

See PR43993

Reviewers: sammccall, bkramer

Subscribers: cfe-commits

Tags: #clang

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

4 years ago[OPENMP]Add assignment operator in UDR test, NFC.
Alexey Bataev [Thu, 14 Nov 2019 17:58:49 +0000 (12:58 -0500)]
[OPENMP]Add assignment operator in UDR test, NFC.

Add assignment operator in the test to check that even if the operator
was declare explicitly, the constructor is called in the user-defined
reduction initializer anyway.

4 years agoFix incorrect comment.
Adrian Prantl [Thu, 14 Nov 2019 17:55:24 +0000 (09:55 -0800)]
Fix incorrect comment.

4 years agoConvert condition to early exit (NFC)
Adrian Prantl [Thu, 14 Nov 2019 17:38:49 +0000 (09:38 -0800)]
Convert condition to early exit (NFC)

4 years agoConvert UpdateExternalModuleListIfNeeded to use early exits.
Adrian Prantl [Thu, 14 Nov 2019 17:35:06 +0000 (09:35 -0800)]
Convert UpdateExternalModuleListIfNeeded to use early exits.

4 years agoRename DWO -> Clang module to avoid confusion. (NFC)
Adrian Prantl [Thu, 14 Nov 2019 17:13:04 +0000 (09:13 -0800)]
Rename DWO -> Clang module to avoid confusion. (NFC)

4 years ago[LLDB] Make a clear distinction between usage & development docs
Jonas Devlieghere [Thu, 14 Nov 2019 17:02:35 +0000 (09:02 -0800)]
[LLDB] Make a clear distinction between usage & development docs

This renames the "Goals & Status" section to "Project" and the
"Resources" section to "Development". To better match this layout I've
moved the releases page under "Project".

4 years agoUse ForEachExternalModule in ParseTypeFromClangModule (NFC)
Adrian Prantl [Thu, 14 Nov 2019 16:57:32 +0000 (08:57 -0800)]
Use ForEachExternalModule in ParseTypeFromClangModule (NFC)

I wanted to further simplify ParseTypeFromClangModule by replacing the
hand-rolled loop with ForEachExternalModule, and then realized that
ForEachExternalModule also had the problem of visiting the same leaf
node an exponential number of times in the worst-case. This adds a set
of searched_symbol_files set to the function as well as the ability to
early-exit from it.

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

4 years ago[AMDGPU][HIP] Change default DWARF version to 4
Scott Linder [Wed, 13 Nov 2019 17:31:50 +0000 (12:31 -0500)]
[AMDGPU][HIP] Change default DWARF version to 4

Summary:
Tooling around DWARF 5 is still not mature enough for this to be a sane
default, and the AMDGPU and HIP toolchains should agree on a single
default.

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

Tags: #clang

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

4 years agoImprove VFS compatibility on Windows
Adrian McCarthy [Thu, 7 Nov 2019 18:50:33 +0000 (10:50 -0800)]
Improve VFS compatibility on Windows

Keys in a virtual file system can be in Posix or Windows form or even
a combination of the two.  Many VFS tests (and a few Clang tests) were
XFAILed on Windows because of false negatives when comparing paths.

First, we default CaseSenstive to false on Windows.  This allows
drive letters like "D:" to match "d:".  Windows filesystems are, by
default, case insensitive, so this makes sense even beyond the drive
letter.

Second, we allow slashes to match backslashes when they're used as the
root component of a path.

Both of these changes are limited to RedirectingFileSystems, so there's
little chance of affecting other path handling.

These changes allow eleven of the VFS tests to pass on Windows as well
as three other Clang tests, so they have re-enabled.

This solves the majority of PR43272.  Additional VFS test failures will
be fixed in separate patches.

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

4 years ago[clangd] Ignore more implicit nodes in computing selection.
Sam McCall [Wed, 13 Nov 2019 19:16:23 +0000 (20:16 +0100)]
[clangd] Ignore more implicit nodes in computing selection.

Summary:
The DeclRefExpr for the callee of overloaded `operator()` and `operator[]` are
assigned the range of the paren/bracket lists in the AST.
These are better thought of as implicit (at least `()` - `[] is murkier).
But there's no bit on Expr for implicit, so just ignore them on our side.

While here, deal with the case where an implicit stmt (e.g. implicit-this)
is wrapped in an implicit cast. Previously we ignored the statement but not
the cast, and so the cast ended up being selected.

Fixes https://github.com/clangd/clangd/issues/195

Reviewers: kadircet, lh123

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

Tags: #clang

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

4 years ago[clangd] Expose value of enumerators to Hover API. (not UI yet)
Sam McCall [Wed, 13 Nov 2019 21:24:17 +0000 (22:24 +0100)]
[clangd] Expose value of enumerators to Hover API. (not UI yet)

Summary: This is part of https://github.com/clangd/clangd/issues/180.

Reviewers: kadircet

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

Tags: #clang

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

4 years ago[ADT] Move drop_begin from iterator_range.h into STLExtras.
Lang Hames [Wed, 13 Nov 2019 17:13:03 +0000 (09:13 -0800)]
[ADT] Move drop_begin from iterator_range.h into STLExtras.

Summary:
drop_begin depends on adl_begin/adl_end, which are defined in STLExtras.h,
but we can't just #include STLExtras.h in iterator_range.h as that would
introduce a circular reference (STLExtras.h already depends on
iterator_range.h). The simplest solution is to move drop_begin into
STLExtras.h, which is a reasonable home for it anyway.

Reviewers: dblaikie

Subscribers: dexonsmith, ributzka, llvm-commits

Tags: #llvm

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

4 years ago[Analyzer][NFC] Separate white-box tests for iterator modelling from iterator checker...
Adam Balogh [Fri, 8 Nov 2019 11:52:09 +0000 (12:52 +0100)]
[Analyzer][NFC] Separate white-box tests for iterator modelling from iterator checker tests

The recently committed debug.IteratorDebugging checker enables
standalone white-box testing of the modelling of containers and
iterators. For the three checkers based on iterator modelling only
simple tests are needed.

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

4 years ago[lldb] Fix dwo variant of TestLibCxxFunction
Pavel Labath [Thu, 14 Nov 2019 15:16:25 +0000 (16:16 +0100)]
[lldb] Fix dwo variant of TestLibCxxFunction

The test was failing due to a bug in SymbolFileDWARF::FindFunctions --
the function was searching the main dwarf unit for DW_TAG_subprograms,
but the main unit is empty in case of split dwarf.  The fix is simple --
search the non-skeleton unit instead.

This bug went unnoticed because this function is expensive, and so one
generally avoids calling it.

4 years ago[InstCombine] regenerate test CHECKs; NFC
Sanjay Patel [Thu, 14 Nov 2019 15:20:48 +0000 (10:20 -0500)]
[InstCombine] regenerate test CHECKs; NFC

There's a discussion about changing a shufflevector
transform in:
https://bugs.llvm.org/show_bug.cgi?id=43958

It would protect against our current undef/poison
behavior, and these are all tests that could be affected.

4 years agoRevert "[ThinLTO] Add correctness check for RO/WO variable import"
Benjamin Kramer [Thu, 14 Nov 2019 15:07:13 +0000 (16:07 +0100)]
Revert "[ThinLTO] Add correctness check for RO/WO variable import"

This reverts commit a2292cc537b561416c21e8d4017715d652c144cc. Breaks
clang selfhost w/ThinLTO.

4 years agoOn FreeBSD use AT_EXECPATH from ELF auxiliary vectors for getExecutablePath
Ed Maste [Wed, 13 Nov 2019 18:24:23 +0000 (13:24 -0500)]
On FreeBSD use AT_EXECPATH from ELF auxiliary vectors for getExecutablePath

/proc/curproc/file and the KERN_PROC_PATHNAME sysctl may not return the
desired path if there are multiple hardlinks to the file, or if the path has
expired from the namecache.

Reviewed By: theraven

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

4 years agoARM: allow rewriting frame indexes for all prefetch variants.
Tim Northover [Thu, 14 Nov 2019 13:26:53 +0000 (13:26 +0000)]
ARM: allow rewriting frame indexes for all prefetch variants.

For some reason we could handle PLD but not PLDW or PLI, but all of them can
potentially refer to the stack region (if weirdly for PLI).

4 years agoGCOVProfiling - fix uninitialized variable warnings + make getFuncChecksum() const...
Simon Pilgrim [Thu, 14 Nov 2019 13:55:28 +0000 (13:55 +0000)]
GCOVProfiling - fix uninitialized variable warnings + make getFuncChecksum() const. NFCI.

4 years agoWholeProgramDevirt - fix uninitialized variable warnings. NFCI.
Simon Pilgrim [Thu, 14 Nov 2019 13:54:29 +0000 (13:54 +0000)]
WholeProgramDevirt - fix uninitialized variable warnings. NFCI.

4 years agoFix uninitialized variable warning. NFCI.
Simon Pilgrim [Thu, 14 Nov 2019 13:53:35 +0000 (13:53 +0000)]
Fix uninitialized variable warning. NFCI.

4 years agoFix uninitialized variable warning. NFCI.
Simon Pilgrim [Thu, 14 Nov 2019 13:52:46 +0000 (13:52 +0000)]
Fix uninitialized variable warning. NFCI.

4 years agoSROA - fix uninitialized variable warnings. NFCI.
Simon Pilgrim [Thu, 14 Nov 2019 13:52:02 +0000 (13:52 +0000)]
SROA - fix uninitialized variable warnings. NFCI.

4 years agoFix uninitialized variable warnings. NFCI.
Simon Pilgrim [Thu, 14 Nov 2019 13:50:38 +0000 (13:50 +0000)]
Fix uninitialized variable warnings. NFCI.

4 years agoHexagon - fix uninitialized variable warnings. NFCI.
Simon Pilgrim [Thu, 14 Nov 2019 13:47:22 +0000 (13:47 +0000)]
Hexagon - fix uninitialized variable warnings. NFCI.

4 years agoMSP430 - fix uninitialized variable warnings. NFCI.
Simon Pilgrim [Thu, 14 Nov 2019 13:32:40 +0000 (13:32 +0000)]
MSP430 - fix uninitialized variable warnings. NFCI.

4 years ago[libc++][P1872] span should have size_type, not index_type.
Louis Dionne [Thu, 14 Nov 2019 14:07:05 +0000 (09:07 -0500)]
[libc++][P1872] span should have size_type, not index_type.

Thanks to Marek Kurdej for the patch.

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

4 years ago[libc++] [P1612] Add missing feature-test macro __cpp_lib_endian.
Louis Dionne [Thu, 14 Nov 2019 13:54:23 +0000 (08:54 -0500)]
[libc++] [P1612] Add missing feature-test macro __cpp_lib_endian.

Thanks to Marek Kurdej for the patch.

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

4 years ago[AArch64][SVE] Implement floating-point comparison & reduction intrinsics
Kerry McLaughlin [Thu, 14 Nov 2019 13:29:57 +0000 (13:29 +0000)]
[AArch64][SVE] Implement floating-point comparison & reduction intrinsics

Summary:
Adds intrinsics for the following:
 - fadda & faddv
 - fminv, fmaxv, fminnmv & fmaxnmv
 - facge & facgt
 - fcmp[eq|ge|gt|ne|uo]

Reviewers: sdesmalen, huntergr, dancgr, mgudim

Reviewed By: sdesmalen

Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cameron.mcinally, cfe-commits, llvm-commits

Tags: #llvm

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

4 years ago[clangd] Simplify the code in Index::refs
Ilya Biryukov [Thu, 14 Nov 2019 13:43:07 +0000 (14:43 +0100)]
[clangd] Simplify the code in Index::refs

Summary:
While here, also fix potential UB in MergeIndex.

Thanks Kadir for finding this!

Reviewers: hokein

Reviewed By: hokein

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

Tags: #clang

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

4 years ago[LV] PreferPredicateOverEpilog respecting predicate loop hint
Sjoerd Meijer [Thu, 14 Nov 2019 13:10:44 +0000 (13:10 +0000)]
[LV] PreferPredicateOverEpilog respecting predicate loop hint

The vectoriser queries TTI->preferPredicateOverEpilogue to determine if
tail-folding is preferred for a loop, but it was not respecting loop hint
'predicate' that can disable this, which has now been added. This showed that
we were incorrectly initialising loop hint 'vectorize.predicate.enable' with 0
(i.e. FK_Disabled) but this should have been FK_Undefined, which has been
fixed.

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

4 years ago[DAGCombiner] Drop redundant DAG method param. NFC
Paweł Bylica [Thu, 14 Nov 2019 12:37:15 +0000 (13:37 +0100)]
[DAGCombiner] Drop redundant DAG method param. NFC

4 years ago[DAGCombiner] Use TLI field already available. NFC
Paweł Bylica [Thu, 14 Nov 2019 11:44:57 +0000 (12:44 +0100)]
[DAGCombiner] Use TLI field already available. NFC