platform/upstream/llvm.git
3 years ago[AMDGPU] Better selection of base offset when merging DS reads/writes
Jay Foad [Tue, 9 Feb 2021 18:11:10 +0000 (18:11 +0000)]
[AMDGPU] Better selection of base offset when merging DS reads/writes

When merging a pair of DS reads or writes needs to materialize the base
offset in a vgpr, choose a value that is aligned to as high a power of
two as possible. This maximises the chance that different pairs can use
the same base offset, in which case the base offset registers can be
commoned up by MachineCSE.

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

3 years ago[TargetLowering][RISCV][AArch64][PowerPC] Enable BuildUDIV/BuildSDIV on illegal types...
Craig Topper [Thu, 11 Feb 2021 17:22:25 +0000 (09:22 -0800)]
[TargetLowering][RISCV][AArch64][PowerPC] Enable BuildUDIV/BuildSDIV on illegal types before type legalization if we can find a larger legal type that supports MUL.

If we wait until the type is legalized, we'll lose information
about the orginal type and need to use larger magic constants.
This gets especially bad on RISCV64 where i64 is the only legal
type.

I've limited this to simple scalar types so it only works for
i8/i16/i32 which are most likely to occur. For more odd types
we might want to do a small promotion to a type where MULH is legal
instead.

Unfortunately, this does prevent some urem/srem+seteq matching since
that still require legal types.

Reviewed By: RKSimon

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

3 years ago[ELF] Resolve defined symbols before undefined symbols
Fangrui Song [Thu, 11 Feb 2021 17:41:46 +0000 (09:41 -0800)]
[ELF] Resolve defined symbols before undefined symbols

When parsing an object file, LLD interleaves undefined symbol resolution (which
may recursively fetch other lazy objects) with defined symbol resolution.

This may lead to surprising results, e.g. if an object file defines currently
undefined symbols and references another lazy symbol, we may interleave defined
symbols with the lazy fetch, potentially leading to the defined symbols
resolving to different files.

As an example, if both `a.a(a.o)` and `a.a(b.o)` define `foo` (not in COMDAT
group, or in different COMDAT groups) and `__profd_foo` (in COMDAT group
`__profd_foo`).  LLD may resolve `foo` to `a.a(a.o)` and `__profd_foo` to
`b.a(b.o)`, i.e. different files.

```
parse ArchiveFile a.a
  entry fetches a.a(a.o)
  parse ObjectFile a.o
    define entry
    define foo
    reference b
    b fetches a.a(b.o)
    parse ObjectFile b.o
      define prevailing __profd_foo
    define (ignored) non-prevailing __profd_foo
```

Assuming a set of interconnected symbols are defined all or none in several lazy
objects. Arguably making them resolve to the same file is preferable than making
them resolve to different files (some are lazy objects).

The main argument favoring the new behavior is the stability. The relative order
between a defined symbol and an undefined symbol does not change the symbol
resolution behavior.  Only the relative order between two undefined symbols can
affect fetching behaviors.

---

The real world case is reduced from a Fuchsia PGO usage: `a.a(a.o)` has a
constructor within COMDAT group C5 while `a.a(b.o)` has a constructor within
COMDAT group C2. Because they use different group signatures, they are not
de-duplicated. It is not entirely whether Clang behavior is entirely conforming.

LLD selects the PGO counter section (`__profd_*`) from `a.a(b.o)` and the
constructor section from `a.a(a.o)`. The `__profd_*` is a SHF_LINK_ORDER section
linking to its own non-prevailing constructor section, so LLD errors
`sh_link points to discarded section`. This patch fixes the error.

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

3 years ago[gn build] port ed98676fa483
Nico Weber [Thu, 11 Feb 2021 17:41:29 +0000 (12:41 -0500)]
[gn build] port ed98676fa483

3 years agoSupport multi-configuration generators correctly in several config files
Stella Stamenova [Thu, 11 Feb 2021 17:32:20 +0000 (09:32 -0800)]
Support multi-configuration generators correctly in several config files

Multi-configuration generators (such as Visual Studio and Xcode) allow the specification of a build flavor at build time instead of config time, so the lit configuration files need to support that - and they do for the most part. There are several places that had one of two issues (or both!):

1) Paths had %(build_mode)s set up, but then not configured, resulting in values that would not work correctly e.g. D:/llvm-build/%(build_mode)s/bin/dsymutil.exe
2) Paths did not have %(build_mode)s set up, but instead contained $(Configuration) (which is the value for Visual Studio at configuration time, for Xcode they would have had the equivalent) e.g. "D:/llvm-build/$(Configuration)/lib".

This seems to indicate that we still have a lot of fragility in the configurations, but also that a number of these paths are never used (at least on Windows) since the errors appear to have been there a while.

This patch fixes the configurations and it has been tested with Ninja and Visual Studio to generate the correct paths. We should consider removing some of these settings altogether.

Reviewed By: JDevlieghere, mehdi_amini

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

3 years ago[sanitizer] Fix suffix-log-path_test.c on arm-linux-gnu
Adhemerval Zanella [Thu, 11 Feb 2021 17:24:14 +0000 (14:24 -0300)]
[sanitizer] Fix suffix-log-path_test.c on arm-linux-gnu

The recent suffix-log-path_test.c checks for a full stacktrace and
since on some arm-linux-gnu configuration the slow unwinder is used
on default (when the compiler emits thumb code as default), it
requires -funwind-tables on tests.

It also seems to fix the issues disable by d025df3c1de.

Reviewed By: ostannard

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

3 years ago[LV] Add tests showing suboptimal vectorization for narrow types.
Florian Hahn [Thu, 11 Feb 2021 16:42:35 +0000 (16:42 +0000)]
[LV] Add tests showing suboptimal vectorization for narrow types.

This patch adds additional test cases showing missing/sub-optimal
vectorization for loops which contain small and wider memory ops on
AArch64.

3 years ago[flang] Remove `LINK_WITH_FIR` cmake switch
Sourabh Singh Tomar [Wed, 10 Feb 2021 12:53:10 +0000 (18:23 +0530)]
[flang] Remove `LINK_WITH_FIR` cmake switch

Most components required for this are already there.

Build and Testing clean.
ninja check-flang

Reviewed By: clementval, tskeith

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

3 years ago[RISCV] Add support loads, stores, and splats of vXi1 fixed vectors.
Craig Topper [Thu, 11 Feb 2021 17:13:15 +0000 (09:13 -0800)]
[RISCV] Add support loads, stores, and splats of vXi1 fixed vectors.

This refines how we determine which masks types are legal and adds
support for loads, stores, and all ones/zeros splats.

I left a fixme in store handling where I think we need to zero
extra bits if the type isn't a multiple of a byte. If I remember
right from X86 there was some case we could have a store of a
1, 2, or 4 bit mask and have a scalar zextload that then expected the
bits to be 0. Its tricky to zero the bits with RVV. We need to do
something like round VL up, zero a register, lower the VL back down,
then do a tail undisturbed move into the zero register. Another
option might be to generate a mask of 1/2/4 bits set with a VL of 8
and use that to mask off the bits.

Reviewed By: frasercrmck

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

3 years ago[DAG] foldLogicOfSetCCs - Generalize and/or (setcc X, CMax, ne), (setcc X, CMin,...
Simon Pilgrim [Thu, 11 Feb 2021 16:32:00 +0000 (16:32 +0000)]
[DAG] foldLogicOfSetCCs - Generalize and/or (setcc X, CMax, ne), (setcc X, CMin, ne/eq) fold. NFCI.

Prep work to add support for non-uniform vectors - replace APInt values with using the SDValue ops directly.

3 years ago[libc++][format] Add basic_format_parse_context.
Mark de Wever [Tue, 2 Feb 2021 17:10:33 +0000 (18:10 +0100)]
[libc++][format] Add basic_format_parse_context.

Implements parts of:
- P0645 Text Formatting

Depends on D92214

Reland with changes:
The format header will only be compiled if the compiler used has support
for concepts. This should fix the issues with the initial version.

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

3 years ago[gn build] Port 7e3b9aba609f
Nico Weber [Thu, 11 Feb 2021 16:54:51 +0000 (11:54 -0500)]
[gn build] Port 7e3b9aba609f

3 years agoRevert "[flang][fir][NFC] Move BoxType to TableGen type definition"
clementval [Thu, 11 Feb 2021 16:36:35 +0000 (11:36 -0500)]
Revert "[flang][fir][NFC] Move BoxType to TableGen type definition"

This reverts commit d96bb48f7874d636ffd0ee233e2d66fff0614b8f.

3 years agoBPF: Implement TTI.IntImmCost() properly
Yonghong Song [Wed, 10 Feb 2021 20:17:37 +0000 (12:17 -0800)]
BPF: Implement TTI.IntImmCost() properly

This patch implemented TTI.IntImmCost() properly.
Each BPF insn has 32bit immediate space, so for any immediate
which can be represented as 32bit signed int, the cost
is technically free. If an int cannot be presented as
a 32bit signed int, a ld_imm64 instruction is needed
and a TCC_Basic is returned.

This change is motivated when we observed that
several bpf selftests failed with latest llvm trunk, e.g.,
  #10/16 strobemeta.o:FAIL
  #10/17 strobemeta_nounroll1.o:FAIL
  #10/18 strobemeta_nounroll2.o:FAIL
  #10/19 strobemeta_subprogs.o:FAIL
  #96 snprintf_btf:FAIL

The reason of the failure is due to that
SpeculateAroundPHIsPass did aggressive transformation
which alters control flow for which currently verifer
cannot handle well. In llvm12, SpeculateAroundPHIsPass
is not called.

SpeculateAroundPHIsPass relied on TTI.getIntImmCost()
and TTI.getIntImmCostInst() for profitability
analysis. This patch implemented TTI.getIntImmCost()
properly for BPF backend which also prevented
transformation which caused the above test failures.

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

3 years ago[Timer] On macOS count number of executed instructions
Alex Hoppen [Thu, 11 Feb 2021 16:25:27 +0000 (17:25 +0100)]
[Timer] On macOS count number of executed instructions

In addition to wall time etc. this should allow us to get less noisy
values for time measurements.

Reviewed By: JDevlieghere

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

3 years ago[flang][fir][NFC] Move BoxType to TableGen type definition
Valentin Clement [Thu, 11 Feb 2021 16:09:35 +0000 (11:09 -0500)]
[flang][fir][NFC] Move BoxType to TableGen type definition

This patch is a follow up of D96422 and move BoxType to TableGen.

Reviewed By: mehdi_amini

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

3 years ago[lldb] Fix that running a top level expression without a process fails with a cryptic...
Raphael Isemann [Thu, 11 Feb 2021 16:00:17 +0000 (17:00 +0100)]
[lldb] Fix that running a top level expression without a process fails with a cryptic error

Right now when running `expr --top-level -- void foo() {}`, LLDB just prints a cryptic
`error: Couldn't find $__lldb_expr() in the module` error. The reason for that is
that if we don't have a running process, we try to set our execution policy to always use the
IR interpreter (ExecutionPolicyNever) which works even without a process. However
that code didn't consider the special ExecutionPolicyTopLevel which we use for
top-level expressions. By changing the execution policy to ExecutionPolicyNever,
LLDB thinks we're actually trying to interpret a normal expression inside our
`$__lldb_expr` function and then fails when looking for it.

This just adds an exception for top-level expressions to that code and a bunch of tests.

Reviewed By: shafik

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

3 years ago[mlir][LLVM] NFC - Refactor a lookupOrCreateFn to reuse common function creation.
Nicolas Vasilache [Thu, 11 Feb 2021 15:30:39 +0000 (15:30 +0000)]
[mlir][LLVM] NFC - Refactor a lookupOrCreateFn to reuse common function creation.

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

3 years ago[lldb] Don't emit a warning when using Objective-C getters in expressions
Raphael Isemann [Thu, 11 Feb 2021 15:17:44 +0000 (16:17 +0100)]
[lldb] Don't emit a warning when using Objective-C getters in expressions

Clang emits a warning when accessing an Objective-C getter but not using the result.
This gets triggered when just trying to print a getter value in the expression parser (where
Clang just sees a normal expression like `obj.getter` while parsing).

This patch just disables the warning in the expression parser (similar to what we do with
the C++ equivalent of just accessing a member variable but not doing anything with it).

Reviewed By: kastiglione

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

3 years ago[ARM] Add CostKind to getMVEVectorCostFactor.
David Green [Thu, 11 Feb 2021 15:33:59 +0000 (15:33 +0000)]
[ARM] Add CostKind to getMVEVectorCostFactor.

This adds the CostKind to getMVEVectorCostFactor, so that it can
automatically account for CodeSize costs, where it returns a cost of 1
not the MVEFactor used for Throughput/Latency. This helps simplify the
caller code and allows us to get the codesize cost more correct in more
cases.

3 years agoStore the calculated constant expression value into the ConstantExpr object
Aaron Ballman [Thu, 11 Feb 2021 15:12:38 +0000 (10:12 -0500)]
Store the calculated constant expression value into the ConstantExpr object

With https://reviews.llvm.org/D63376, we began storing the APValue
directly into the ConstantExpr object so that we could reuse the
calculated value later. However, it missed a case when not in C++11
mode but the expression is known to be constant.

3 years ago[lldb] Log the actual expression result in UserExpression::Evaluate
Raphael Isemann [Thu, 11 Feb 2021 15:05:14 +0000 (16:05 +0100)]
[lldb] Log the actual expression result in UserExpression::Evaluate

This used to be a LLDB_LOGF call that used the printf %s syntax.
0ab109d43d9d8389fe686ee8df4a82634f246b55 changed it to LLDB_LOG but didn't
update this format string to use formatv's syntax so this just printed '%s'.

3 years agoImprove STRICT_FSETCC codegen in absence of no NaN
Thomas Preud'homme [Thu, 19 Nov 2020 23:38:42 +0000 (23:38 +0000)]
Improve STRICT_FSETCC codegen in absence of no NaN

As for SETCC, use a less expensive condition code when generating
STRICT_FSETCC if the node is known not to have Nan.

Reviewed By: SjoerdMeijer

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

3 years ago[lld][WebAssembly] Common superclass for input globals/events/tables
Andy Wingo [Thu, 11 Feb 2021 11:15:24 +0000 (12:15 +0100)]
[lld][WebAssembly] Common superclass for input globals/events/tables

This commit regroups commonalities among InputGlobal, InputEvent, and
InputTable into the new InputElement.  The subclasses are defined
inline in the new InputElement.h.  NFC.

Reviewed By: sbc100

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

3 years ago[DebugInfo] Only perform TypeSize -> unsigned cast when necessary
Joe Ellis [Thu, 11 Feb 2021 09:53:54 +0000 (09:53 +0000)]
[DebugInfo] Only perform TypeSize -> unsigned cast when necessary

This commit moves a line in SelectionDAGBuilder::handleDebugValue to
avoid implicitly casting a TypeSize object to an unsigned earlier than
necessary. It was possible that we bail out of the loop before the value
is ever used, which means we could create a superfluous TypeSize
warning.

Reviewed By: DavidTruby

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

3 years ago[mlir] make ModuleTranslation mapping fields private
Alex Zinenko [Wed, 10 Feb 2021 18:21:45 +0000 (19:21 +0100)]
[mlir] make ModuleTranslation mapping fields private

ModuleTranslation contains multiple fields that keep track of the mappings
between various MLIR and LLVM IR components. The original ModuleTranslation
extension model was based on inheritance, with these fields being protected and
thus accessible in the ModuleTranslation and derived classes. The
inheritance-based model doesn't scale to translation of more than one derived
dialect and will be progressively replaced with a more flexible one based on
dialect interfaces and a translation state that is separate from
ModuleTranslation. This change prepares the replacement by making the mappings
private and providing public methods to access them.

Depends On D96436

Reviewed By: mehdi_amini

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

3 years ago[mlir] Make JitRunnerMain main take a DialectRegistry
Alex Zinenko [Wed, 10 Feb 2021 18:21:16 +0000 (19:21 +0100)]
[mlir] Make JitRunnerMain main take a DialectRegistry

Historically, JitRunner has been registering all available dialects with the
context and depending on them without the real need. Make it take a registry
that contains only the dialects that are expected in the input and stop linking
in all dialects.

Reviewed By: mehdi_amini

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

3 years ago[Attr] Apply GNU-style attributes to expression statements
Valeriy Savchenko [Mon, 21 Dec 2020 09:05:14 +0000 (12:05 +0300)]
[Attr] Apply GNU-style attributes to expression statements

Before this commit, expression statements could not be annotated
with statement attributes.  Whenever parser found attribute, it
unconditionally assumed that it was followed by a declaration.
This not only doesn't allow expression attributes to have attributes,
but also produces spurious error diagnostics.

In order to maintain all previously compiled code, we still assume
that GNU attributes are followed by declarations unless ALL of those
are statement attributes.  And even in this case we are not forcing
the parser to think that it should parse a statement, but rather
let it proceed as if no attributes were found.

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

3 years ago[lldb/test] Automatically find debug servers to test
Pavel Labath [Thu, 4 Feb 2021 19:53:15 +0000 (20:53 +0100)]
[lldb/test] Automatically find debug servers to test

Our test configuration logic assumes that the tests can be run either
with debugserver or with lldb-server. This is not entirely correct,
since lldb server has two "personalities" (platform server and debug
server) and debugserver is only a replacement for the latter.

A consequence of this is that it's not possible to test the platform
behavior of lldb-server on macos, as it is not possible to get a hold of
the lldb-server binary.

One solution to that would be to duplicate the server configuration
logic to be able to specify both executables. However, that seems
excessively redundant.

A well-behaved lldb should be able to find the debug server on its own,
and testing lldb with a different (lldb-|debug)server does not seem very
useful (even in the out-of-tree debugserver setup, we copy the server
into the build tree to make it appear "real").

Therefore, this patch deletes the configuration altogether and changes
the low-level server retrieval functions to be able to both lldb-server
and debugserver paths. They do this by consulting the "support
executable" directory of the lldb under test.

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

3 years ago[ARM] Copy-paste error in ARMv87a architecture definition.
Simon Tatham [Thu, 11 Feb 2021 13:35:55 +0000 (13:35 +0000)]
[ARM] Copy-paste error in ARMv87a architecture definition.

In the tablegen architecture definition, the Name field for the
ARMv87a record read "ARMv86a". All the other records contain their own
names.

Corrected it to "ARMv87a", and added the necessary value in
ARMArchEnum for that to refer to.

Reviewed By: pratlucas

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

3 years ago[OpenCL] Fix missing const attributes for get_image_ builtins
Sven van Haastregt [Thu, 11 Feb 2021 13:05:26 +0000 (13:05 +0000)]
[OpenCL] Fix missing const attributes for get_image_ builtins

Various get_image builtin function declarations did not have the const
attribute.  Bring the const attributes of `-fdeclare-opencl-builtins`
more in sync with `opencl-c.h`.

3 years agoReturn "[Codegenprepare][X86] Use usub with overflow opt for IV increment"
Max Kazantsev [Thu, 11 Feb 2021 12:25:30 +0000 (19:25 +0700)]
Return "[Codegenprepare][X86] Use usub with overflow opt for IV increment"

The patch did not account for one corner case where cmp does not dominate
the loop latch. This patch adds this check, hopefully it's cheap because
the CFG does not change during the transform, so DT queries should be
executed quickly.

If you see compile time slowness from this, please revert.

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

3 years ago[gn build] Port b4993cf54d7f
Nico Weber [Thu, 11 Feb 2021 12:20:21 +0000 (07:20 -0500)]
[gn build] Port b4993cf54d7f

3 years ago[Test] Add test that exposed failure on reverted patch in codegen
Max Kazantsev [Thu, 11 Feb 2021 12:08:55 +0000 (19:08 +0700)]
[Test] Add test that exposed failure on reverted patch in codegen

3 years agoCorrect swift_bridge duplicate attribute warning logic
Aaron Ballman [Thu, 11 Feb 2021 12:11:27 +0000 (07:11 -0500)]
Correct swift_bridge duplicate attribute warning logic

The swift_bridge attribute warns when the attribute is applied multiple
times to the same declaration. However, it warns about the arguments
being different to the attribute without ever checking if the arguments
actually are different. If the arguments are different, diagnose,
otherwise silently accept the code. Either way, drop the duplicated
attribute.

3 years ago[ARM] Change getScalarizationOverhead overload used in gather costs. NFC
David Green [Thu, 11 Feb 2021 11:58:55 +0000 (11:58 +0000)]
[ARM] Change getScalarizationOverhead overload used in gather costs. NFC

This changes which of the getScalarizationOverhead overloads is used in
the gather/scatter cost to use the base variant directly, not relying on
the version using heuristics on the number of args with no args
provided. It should still produce the same costs for scalarized
gathers/scatters.

3 years ago[test][Dexter] Fix test failure if space in python path
James Henderson [Wed, 10 Feb 2021 15:14:32 +0000 (15:14 +0000)]
[test][Dexter] Fix test failure if space in python path

The '%dexter_regression_test' substitution was missing quotes around the
python executable, unlike other substitutions of a similar nature in the
file. This changes fixes the issue.

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

Reviewed by: jmorse, aganea

3 years ago[flang][driver] Move standard macro predefs to a dedicated method (nfc)
Andrzej Warzynski [Thu, 11 Feb 2021 11:37:24 +0000 (11:37 +0000)]
[flang][driver] Move standard macro predefs to a dedicated method (nfc)

This patch just addresses one of the outstanding TODOs. More
specifically, it moves all the outstanding standard macro predefinitions
from `SetDefaultFortranOpts` to `setDefaultPredefinitions`. This
dedicated method for standard macro predefs was introduced in:
  * https://reviews.llvm.org/D96032

3 years ago[AMDGPU] Move kill lowering to WQM pass and add live mask tracking
Carl Ritson [Wed, 10 Feb 2021 03:56:45 +0000 (12:56 +0900)]
[AMDGPU] Move kill lowering to WQM pass and add live mask tracking

Move implementation of kill intrinsics to WQM pass. Add live lane
tracking by updating a stored exec mask when lanes are killed.
Use live lane tracking to enable early termination of shader
at any point in control flow.

Reviewed By: piotr

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

3 years agoNFC: Migrate CodeMetrics to work on InstructionCost
Sander de Smalen [Thu, 11 Feb 2021 10:25:14 +0000 (10:25 +0000)]
NFC: Migrate CodeMetrics to work on InstructionCost

This patch migrates cost values and arithmetic to work on InstructionCost.
When the interfaces to TargetTransformInfo are changed, any InstructionCost
state will propagate naturally.

See this patch for the introduction of the type: https://reviews.llvm.org/D91174
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html

Reviewed By: david-arm

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

3 years agoRevert "[Codegenprepare][X86] Use usub with overflow opt for IV increment"
Max Kazantsev [Thu, 11 Feb 2021 10:51:40 +0000 (17:51 +0700)]
Revert "[Codegenprepare][X86] Use usub with overflow opt for IV increment"

This reverts commit 3d15b7e7dfc3e2cefc47791d1e8d95909e937842.

We've found an internal failure, need to analyze.

3 years ago[ARM] Remove dead mov's in preheader of tail predicated loops
David Green [Thu, 11 Feb 2021 10:48:20 +0000 (10:48 +0000)]
[ARM] Remove dead mov's in preheader of tail predicated loops

With t2DoLoopDec we can be left with some extra MOV's in the preheaders
of tail predicated loops. This removes them, in the same way we remove
other dead variables.

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

3 years ago[clang][index] report references from unreslovedLookupExpr.
Haojian Wu [Fri, 29 Jan 2021 13:09:14 +0000 (14:09 +0100)]
[clang][index] report references from unreslovedLookupExpr.

Fix https://github.com/clangd/clangd/issues/675

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

3 years ago[CodeComplete] Member completion: heuristically resolve some dependent base exprs
Sam McCall [Tue, 9 Feb 2021 23:11:35 +0000 (00:11 +0100)]
[CodeComplete] Member completion: heuristically resolve some dependent base exprs

Today, inside a template, you can get completion for:

Foo<T> t;
t.^

t has dependent type Foo<T>, and we use the primary template to find its members.
However we also want this to work:

t.foo.bar().^

The type of t.foo.bar() is DependentTy, so we attempt to resolve using similar
heuristics (e.g. primary template).

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

3 years ago[DebugInfo] Prevent inlining in NRVO-string test cases
Raphael Isemann [Thu, 11 Feb 2021 09:31:15 +0000 (10:31 +0100)]
[DebugInfo] Prevent inlining in NRVO-string test cases

Since the new pass manager has been enabled by default these tests had their
-O1 variations failing due to the tested functions being inlined. This just
adds no_inline to the respective code similar to what we did in other
tests (e.g. aa56b30014d96700b2fc945be11866789f341d38 ).

3 years ago[OpenCL] Add cl_khr_subgroup_extended_types to TableGen BIFs
Sven van Haastregt [Thu, 11 Feb 2021 09:32:42 +0000 (09:32 +0000)]
[OpenCL] Add cl_khr_subgroup_extended_types to TableGen BIFs

Add the builtin functions brought by the
cl_khr_subgroup_extended_types extension to
`-fdeclare-opencl-builtins`.

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

3 years ago[TTI] Change TargetTransformInfo::getMinimumVF to return ElementCount
Sander de Smalen [Thu, 11 Feb 2021 08:50:08 +0000 (08:50 +0000)]
[TTI] Change TargetTransformInfo::getMinimumVF to return ElementCount

This will be needed in the loop-vectorizer where the minimum VF
requested may be a scalable VF. getMinimumVF now takes an additional
operand 'IsScalableVF' that indicates whether a scalable VF is required.

Reviewed By: kparzysz, rampitec

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

3 years ago[mlir][gpu] Allow all dialects in SCF to GPU conversion.
Stephan Herhut [Thu, 11 Feb 2021 08:41:47 +0000 (09:41 +0100)]
[mlir][gpu] Allow all dialects in SCF to GPU conversion.

With the standard dialect being split up, the set of dialects that are
used when converting to GPU is growing. This change modifies the
SCFToGpu pass to allow all operations inside launch bodies.

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

3 years agoExpand masked mem intrinsics correctly wrt big-endian
Markus Lavin [Thu, 11 Feb 2021 08:59:52 +0000 (08:59 +0000)]
Expand masked mem intrinsics correctly wrt big-endian

Need to take endianness into account when doing vector to scalar casts
such as %bc = bitcast <8 x i1> %v to i8
Companion commit for https://reviews.llvm.org/D94867
Upload in response to
https://lists.llvm.org/pipermail/llvm-dev/2021-January/147862.html
Attempting to document the actual memory layout rules for vectors in
https://reviews.llvm.org/D94964

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

3 years ago[ARM] Make a BE predicate bitcast consistent with the rest of llvm
David Green [Mon, 8 Feb 2021 11:37:17 +0000 (11:37 +0000)]
[ARM] Make a BE predicate bitcast consistent with the rest of llvm

We were storing predicate registers, such as a <8 x i1>, in the opposite
order to how the rest of llvm expects. This actually turns out to be
correct for the one place that usually uses it - the
ScalarizeMaskedMemIntrin pass, but only because the pass was incorrect
itself. This fixes the order so that bits are stored in the opposite
order and bitcasts work as expected. This allows the Scalarization pass
to be fixed, as in https://reviews.llvm.org/D94765.

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

3 years ago[Syntax] Remove a strict valid source location assertion for TypeLoc.
Haojian Wu [Mon, 8 Feb 2021 14:04:48 +0000 (15:04 +0100)]
[Syntax] Remove a strict valid source location assertion for TypeLoc.

The EndLoc of a type loc can be invalid for broken code.

Also extend the existing test to support error code with `error-ok`
annotation.

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

3 years ago[Syntax] NFC, Simplify a test with annotations
Haojian Wu [Mon, 8 Feb 2021 13:44:02 +0000 (14:44 +0100)]
[Syntax] NFC, Simplify a test with annotations

3 years ago[LoopVectorize] NFC: Change selectVectorizationFactor to work on ElementCount.
Sander de Smalen [Thu, 11 Feb 2021 08:37:55 +0000 (08:37 +0000)]
[LoopVectorize] NFC: Change selectVectorizationFactor to work on ElementCount.

This patch is NFC and changes occurrences of `unsigned Width`
and `unsigned i` to work on type ElementCount instead.

This patch is a preparatory patch with the ultimate goal of making
`computeMaxVF()` return both a max fixed VF and a max scalable VF,
so that `selectVectorizationFactor()` can pick the most cost-effective
vectorization factor.

Reviewed By: david-arm

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

3 years ago[clang-check] Add tokens-dump in clang-check.
Haojian Wu [Thu, 11 Feb 2021 08:25:17 +0000 (09:25 +0100)]
[clang-check] Add tokens-dump in clang-check.

It is useful for syntax-tree developement.

Reviewed By: kbobyrev

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

3 years ago[AArch64][SVE] Asm: Fix supported immediates for DUP/CPY
Sander de Smalen [Thu, 11 Feb 2021 08:14:15 +0000 (08:14 +0000)]
[AArch64][SVE] Asm: Fix supported immediates for DUP/CPY

This patch fixes an issue in the implementation of DUP/CPY where certain
immediates were not accepted. Immediates should be interpreted as a two's
complement encoding of a value that fits the number of bits of the element
type.

          mov z0.b, p0/z, #127
     <=>  mov z0.b, p0/z, #-129
     <=>  mov z0.b, p0/z, #0xffffffffffffff7f

This behaviour is in line with the GNU assembler.

Reviewed By: c-rhodes

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

3 years ago[mlir][Linalg] Add conv ops with TF definition.
Hanhan Wang [Thu, 11 Feb 2021 06:58:58 +0000 (22:58 -0800)]
[mlir][Linalg] Add conv ops with TF definition.

The dimension order of a filter in tensorflow is
[filter_height, filter_width, in_channels, out_channels], which is different
from current definition. The current definition follows TOSA spec. Add TF
version conv ops to .tc, so we do not have to insert a transpose op around a
conv op.

Reviewed By: antiagainst

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

3 years ago[NFC] Don't pass redundant arguments
Arthur Eubanks [Thu, 11 Feb 2021 06:06:49 +0000 (22:06 -0800)]
[NFC] Don't pass redundant arguments

Some parameters were already part of the Config passed in.

3 years agoNFC; fix typo in comment
Sanjoy Das [Thu, 11 Feb 2021 05:34:29 +0000 (21:34 -0800)]
NFC; fix typo in comment

This should have gone in with a76761cf0deeb223ca1c0b0e5ee68cfcd436e0c4.

3 years agoNFC comment-only cleanups
Sanjoy Das [Thu, 11 Feb 2021 05:18:37 +0000 (21:18 -0800)]
NFC comment-only cleanups

 - Remove leftover comment from de2568aab819f
 - Fix a typo in a comment

3 years ago[Codegenprepare][X86] Use usub with overflow opt for IV increment
Max Kazantsev [Thu, 11 Feb 2021 04:57:23 +0000 (11:57 +0700)]
[Codegenprepare][X86] Use usub with overflow opt for IV increment

Function `replaceMathCmpWithIntrinsic` artificially limits the scope
of the optimization, setting a requirement of two instructions be in
the same block, due to two reasons:
- usage of DT for more general check is costly in terms of compile time;
- risk of creating a new value that lives through multiple blocks.

Because of this, two semantically equivalent tests may be or not be the
subject of this opt depending on where the binary operation is located.
See `test/CodeGen/X86/usub_inc_iv.ll` for motivation

There is one important particular case where this limitation is  too strict:
it is when the binary operation is the increment of the induction variable.
As result, the application of this opt becomes fragile and highly reliant on
where other passes decide to place IV increment. In most cases, they place
it in the end of the latch block, killing the opt opportunity (when in fact it
does not matter where to insert the actual instruction).

This patch handles this particular case separately.
- The detector does not use dom tree and has constant cost;
- The value of IV or IV.next lives through all loop in any case, so this should not
  create a new unexpected long-living value.

As result, the transform becomes more robust. It also seems to lead to
better code generation in some cases (see `test/CodeGen/X86/lsr-loop-exit-cond.ll`).

Differential Revision: https://reviews.llvm.org/D96119
Reviewed By: spatel, reames

3 years ago[Test] Add negative tests where usub optimization should not apply
Max Kazantsev [Thu, 11 Feb 2021 04:41:31 +0000 (11:41 +0700)]
[Test] Add negative tests where usub optimization should not apply

3 years ago[clang][cli] Fix gcc warning (NFC)
Yang Fan [Thu, 11 Feb 2021 03:03:46 +0000 (11:03 +0800)]
[clang][cli] Fix gcc warning (NFC)

GCC warning:
```
/llvm-project/clang/lib/Frontend/TestModuleFileExtension.cpp:131:20: warning: ‘llvm::raw_ostream& clang::operator<<(llvm::raw_ostream&, const clang::TestModuleFileExtension&)’ has not been declared within ‘clang’
  131 | llvm::raw_ostream &clang::operator<<(llvm::raw_ostream &OS,
      |                    ^~~~~
In file included from /llvm-project/clang/lib/Frontend/TestModuleFileExtension.cpp:8:
/llvm-project/clang/lib/Frontend/TestModuleFileExtension.h:75:3: note: only here as a ‘friend’
   75 |   operator<<(llvm::raw_ostream &OS, const TestModuleFileExtension &Extension);
      |   ^~~~~~~~
```

3 years ago[AMDGPU] Refactor MIMG tables to better handle hardware variants
Carl Ritson [Thu, 11 Feb 2021 02:18:44 +0000 (11:18 +0900)]
[AMDGPU] Refactor MIMG tables to better handle hardware variants

Add mimgopc object to represent the opcode allowing different
opcodes for different hardware variants.
This enables image_atomic_fcmpswap, image_atomic_fmin, and
image_atomic_fmax on GFX10

Reviewed By: foad, rampitec

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

3 years ago[Polly] Hide Simplify implementation from header. NFC.
Michael Kruse [Thu, 11 Feb 2021 03:59:25 +0000 (21:59 -0600)]
[Polly] Hide Simplify implementation from header. NFC.

Move SimplifiyVisitor from Simplify.h to Simplify.cpp. It is not
relevant for applying the pass in either the NewPM or the legacyPM.
Rename it to SimplifyImpl to account for that.

This is possible due its state not being necessary to be preserved
between runs and thefore SimplifyImpl not needed to be held in the
pass object. Instead, SimplifyImpl is only instatiated for the
current Scop. In the NewPM as a function-local variable, and in the
legacy PM inside a llvm::Optional object because the state must be
preserved between the printScop (invoked by opt -analyze) and the most
recent runOnScop calls.

3 years ago[AsmPrinter] Use range-based for loops (NFC)
Kazu Hirata [Thu, 11 Feb 2021 04:01:21 +0000 (20:01 -0800)]
[AsmPrinter] Use range-based for loops (NFC)

3 years ago[TableGen] Use ListSeparator (NFC)
Kazu Hirata [Thu, 11 Feb 2021 04:01:20 +0000 (20:01 -0800)]
[TableGen] Use ListSeparator (NFC)

3 years ago[GCOV] Drop unnecessary const from return types (NFC)
Kazu Hirata [Thu, 11 Feb 2021 04:01:18 +0000 (20:01 -0800)]
[GCOV] Drop unnecessary const from return types (NFC)

Identified with readability-const-return-type.

3 years ago[X86] Simplify patterns for avx512 vpcmp. NFC
Craig Topper [Thu, 11 Feb 2021 02:57:13 +0000 (18:57 -0800)]
[X86] Simplify patterns for avx512 vpcmp. NFC

This removes the commuted PatFrags that only existed to carry
an SDNodeXForm in its OperandTransform field. We know all the places
that need to use the commuted SDNodeXForm and there is one transform
shared by signed and unsigned compares. So just hardcode the
the SDNodeXForm where it is needed and use the non commuted PatFrag
in the pattern.

I think when I wrote this I thought the SDNodeXForm name had to
match what is in the PatFrag that is being used. But that's not
true. The OperandTransform is only used when the PatFrag is used
in an instruction pattern and not a separate Pat pattern. All
the commuted cases are Pat patterns.

3 years ago[Polly] Avoid "using namespace llvm" in public headers. NFC.
Michael Kruse [Thu, 11 Feb 2021 02:07:58 +0000 (20:07 -0600)]
[Polly] Avoid "using namespace llvm" in public headers. NFC.

"using namespace" pollutes the namespace of every file that includes
such a header and universally considered a bad thing. Even the variant

    namespace polly {
      using namespace llvm;
    }

(previously used by LoopGenerators.h) imports more symbols than the file
is in control of. The header may include a fixed set of files from LLVM,
but the header itself may by be included together with other headers
from LLVM. For instance, LLVM's MemorySSA.h and Polly's ScopInfo.h both
declare a class 'MemoryAccess' which may conflict.

Instead of prefixing everything in Polly's header files, this patch adds
'using' statements to import only the symbols that are actually
referenced in Polly. This approach is also used by MLIR to import
commonly used symbols into the mlir namespace.

This patch also puts the symbols declared in IslNodeBuilder.h into the
Polly namespace to also be able to use the imported symbols.

3 years ago[flang][fir] Fix Werror build failure after D96422
Valentin Clement [Thu, 11 Feb 2021 02:42:50 +0000 (21:42 -0500)]
[flang][fir] Fix Werror build failure after D96422

3 years ago[analyzer] Update static analyzer to be support sarif-html
Daniel Hwang [Thu, 11 Feb 2021 02:24:37 +0000 (18:24 -0800)]
[analyzer] Update static analyzer to be support sarif-html

Updates static analyzer to be able to generate both sarif and html
output in a single run similar to plist-html.

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

3 years ago[RISCV] More whitespace and comment typo fixes in RISCVInstrInfoC.td
Jessica Clarke [Thu, 11 Feb 2021 02:23:09 +0000 (02:23 +0000)]
[RISCV] More whitespace and comment typo fixes in RISCVInstrInfoC.td

3 years ago[RISCV] Fix whitespace in RISCVInstrInfoC.td
Jessica Clarke [Thu, 11 Feb 2021 02:23:09 +0000 (02:23 +0000)]
[RISCV] Fix whitespace in RISCVInstrInfoC.td

3 years ago[mlir][sparse] reduce tensor dimensions in sparse test
Aart Bik [Thu, 11 Feb 2021 01:56:17 +0000 (17:56 -0800)]
[mlir][sparse] reduce tensor dimensions in sparse test

Rationale:
BuiltinTypes.cpp observed overflow when computing size of
tensor<100x200x300x400x500x600x700x800xf32>.

Reviewed By: stellaraccident

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

3 years ago[RISCV] Use OperandTransform field of ImmLeaf to slightly simplify a couple bitmanip...
Craig Topper [Thu, 11 Feb 2021 01:34:05 +0000 (17:34 -0800)]
[RISCV] Use OperandTransform field of ImmLeaf to slightly simplify a couple bitmanip patterns. NFC

This binds the SDNodeXForm to the ImmLeaf so we only need to mention
the ImmLeaf in both the input and output pattern.

3 years agoEnable `Pass::initialize()` to fail by returning a LogicalResult
Mehdi Amini [Thu, 11 Feb 2021 01:36:40 +0000 (01:36 +0000)]
Enable `Pass::initialize()` to fail by returning a LogicalResult

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

3 years ago[flang][fir][NFC] Move ShapeShiftType to TableGen type definition
Valentin Clement [Thu, 11 Feb 2021 01:32:16 +0000 (20:32 -0500)]
[flang][fir][NFC] Move ShapeShiftType to TableGen type definition

This patch is a follow up of D96422 and move the ShapeShiftType to
TableGen.

Reviewed By: mehdi_amini

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

3 years ago[flang] Cope with specific procedures with same name as generic
peter klausler [Thu, 11 Feb 2021 00:28:34 +0000 (16:28 -0800)]
[flang] Cope with specific procedures with same name as generic

When accessing a specific procedure of a USE-associated generic
interface, we need to allow for the case in which that specific
procedure has the same name as the generic when testing for
its availability in the current scope.

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

3 years agoDiagnose unhandled cases in DW_OP_deref
Adrian Prantl [Wed, 10 Feb 2021 23:50:52 +0000 (15:50 -0800)]
Diagnose unhandled cases in DW_OP_deref

3 years ago[sanitizer] Move MSan's chained_origin_depot to sanitizer_common
Jianzhou Zhao [Tue, 9 Feb 2021 05:47:12 +0000 (05:47 +0000)]
[sanitizer] Move MSan's chained_origin_depot to sanitizer_common

https://reviews.llvm.org/D95835 implements origin tracking for DFSan.
It reuses the chained origin depot of MSan.

This change moves the utility to sanitizer_common to share between
MSan and DFSan.

Reviewed-by: eugenis, morehouse
Differential Revision: https://reviews.llvm.org/D96319

3 years ago[flang] Manage per-specification-part state better
peter klausler [Thu, 11 Feb 2021 00:25:11 +0000 (16:25 -0800)]
[flang] Manage per-specification-part state better

Some state in name resolution is stored in the DeclarationVisitor
instance and processed at the end of the specification part.
This state needs to accommodate nested specification parts, namely
the ones that can be nested in a subroutine or function interface
body.

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

3 years ago[NFC][libunbind] Fix Sphinx error during CMake invocation
xgupta [Thu, 11 Feb 2021 01:19:13 +0000 (06:49 +0530)]
[NFC][libunbind] Fix Sphinx error during CMake invocation

An error has occurred when I build libunwind with -DLLVM_BUILD_DOCS=ON.

Reviewed By: #libunwind, compnerd

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

3 years ago[Draft] [examples] Move llvm/examples/OCaml-Kaleidoscope/ to llvm-archive
xgupta [Mon, 8 Feb 2021 22:50:02 +0000 (04:20 +0530)]
[Draft] [examples] Move llvm/examples/OCaml-Kaleidoscope/ to llvm-archive

3 years agoFix CMake configuration for MLIR unittests
Mehdi Amini [Thu, 11 Feb 2021 01:17:24 +0000 (01:17 +0000)]
Fix CMake configuration for MLIR unittests

The CMake changes in 2aa1af9b1da to make it possible to build MLIR as a
standalone project unfortunately disabled all unit-tests from the
regular in-tree build.

3 years agoValueMapper: Rename RF_MoveDistinctMDs => RF_ReuseAndMutateDistinctMDs, NFC
Duncan P. N. Exon Smith [Wed, 10 Feb 2021 23:23:53 +0000 (15:23 -0800)]
ValueMapper: Rename RF_MoveDistinctMDs => RF_ReuseAndMutateDistinctMDs, NFC

Rename the `RF_MoveDistinctMDs` flag passed into `MapValue` and
`MapMetadata` to `RF_ReuseAndMutateDistinctMDs` in order to more
precisely describe its effect and clarify the header documentation.

Found this while helping to investigate PR48841, which pointed out an
unsound use of the flag in `CloneModule()`. For now I've just added a
FIXME there, but I'm hopeful that the new (more precise) name will
prevent other similar errors.

3 years ago[flang][fir][NFC] Move ShapeType to TableGen type definition
Valentin Clement [Thu, 11 Feb 2021 00:25:35 +0000 (19:25 -0500)]
[flang][fir][NFC] Move ShapeType to TableGen type definition

This is the first patch of a serie to move FIR types to TableGen format as suggested in D96172.
This patch is setting up the files for FIR types and move the ShapeType to TableGen.

As discussed with @schweitz, I'm taking over this task to help the FIR upstreaming effort.

Reviewed By: mehdi_amini

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

3 years ago[test/ubsan] Allow unused FileCheck prefixes in TypeCheck/vptr.cpp
Vedant Kumar [Thu, 11 Feb 2021 00:06:46 +0000 (16:06 -0800)]
[test/ubsan] Allow unused FileCheck prefixes in TypeCheck/vptr.cpp

This test started failing after https://reviews.llvm.org/D95849
defaulted --allow-unused-prefixes to false.

Taking a look at the test, I didn't see an obvious need to add
OS-specific check lines for each supported value of %os.

rdar://74207657

3 years ago[AArch64][GlobalISel] Don't perform the mul const combine with G_PTR_ADD
Jessica Paquette [Wed, 10 Feb 2021 22:53:10 +0000 (14:53 -0800)]
[AArch64][GlobalISel] Don't perform the mul const combine with G_PTR_ADD

A G_MUL + G_PTR_ADD can also be folded into a madd. So, conservatively, we
shouldn't combine when the G_MUL is used by a G_PTR_ADD either.

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

3 years ago[MLIR][TOSA] Tosa elementwise broadcasting
Rob Suderman [Sat, 6 Feb 2021 00:45:36 +0000 (16:45 -0800)]
[MLIR][TOSA] Tosa elementwise broadcasting

Added support for broadcasting size-1 dimensions for TOSA elemtnwise
operations.

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

3 years ago[docs] Make clearer in WritingAnLLVMPass that the legacy PM isn't the default
Arthur Eubanks [Wed, 10 Feb 2021 22:20:38 +0000 (14:20 -0800)]
[docs] Make clearer in WritingAnLLVMPass that the legacy PM isn't the default

Reviewed By: ychen

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

3 years agoMinor fixes to Type ODS docs.
Sean Silva [Wed, 10 Feb 2021 02:57:58 +0000 (18:57 -0800)]
Minor fixes to Type ODS docs.

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

3 years ago[mlir] Introduce more intuitive wording for attributes.
Sean Silva [Fri, 5 Feb 2021 00:17:45 +0000 (16:17 -0800)]
[mlir] Introduce more intuitive wording for attributes.

After discussion, it seems like we want to go with
"inherent/discardable". These seem to best capture the relationship with
the op semantics and don't conflict with other terms.

Please let me know your preferences. Some of the other contenders are:

```
"intrinsic" side | "annotation" side
-----------------+------------------
characteristic   | annotation
closed           | open
definitional     | advisory
essential        | discardable
expected         | unexpected
innate           | acquired
internal         | external
intrinsic        | extrinsic
known            | unknown
local            | global
native           | foreign
inherent         | acquired
```

Rationale:

- discardable: good. discourages use for stable data.
- inherent: good
- annotation: redundant and doesn't convey difference
- intrinsic: confusable with "compiler intrinsics".
- definitional: too much of a mounthful
- extrinsic: too exotic of a word and hard to say
- acquired: doesn't convey the relationship to the semantics
- internal/external: not immediately obvious: what is internal to what?

- innate: similar to intrinsic but worse
- acquired: we don't typically think of an op as "acquiring" things
- known/unknown: by who?
- local/global: to what?
- native/foreign: to where?
- advisory: confusing distinction: is the attribute itself advisory or
  is the information it provides advisory?
- essential: an intrinsic attribute need not be present.
- expected: same issue as essential
- unexpected: by who/what?
- closed/open: whether the set is open or closed doesn't seem essential
  to the attribute being intrinsic. Also, in theory an op can have an
  unbounded set of intrinsic attributes (e.g. `arg<N>` for func).
- characteristic: unless you have a math background this probably
  doesn't make as much sense

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

3 years ago[lldb] Use internal_dict name over dict in python examples
Dave Lee [Wed, 10 Feb 2021 22:28:13 +0000 (14:28 -0800)]
[lldb] Use internal_dict name over dict in python examples

Follow up to https://reviews.llvm.org/rG483ec136da7193de781a5284f1c37929cc27c05c

3 years ago[mlir] NFC - Extend inferResultType API for SubViewOp and SubTensorOp
Nicolas Vasilache [Wed, 10 Feb 2021 22:53:33 +0000 (22:53 +0000)]
[mlir] NFC - Extend inferResultType API for SubViewOp and SubTensorOp

3 years ago[mlir][Linalg] Fix crash when tileSizeComputationFunction is left unspecified
Nicolas Vasilache [Wed, 10 Feb 2021 22:30:46 +0000 (22:30 +0000)]
[mlir][Linalg] Fix crash when tileSizeComputationFunction is left unspecified

3 years ago[AArch64][GlobalISel] Perform load/store extended reg folding with optsize
Jessica Paquette [Wed, 10 Feb 2021 22:07:36 +0000 (14:07 -0800)]
[AArch64][GlobalISel] Perform load/store extended reg folding with optsize

GlobalISel was only doing this with minsize. SDAG does this with optsize.

(See: `SelectionDAG::shouldOptForSize()`)

This is a 0.3% code size improvement for CTMark at -Os.

(Best: 1.1% improvements on lencod + pairlocalalign)

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

3 years ago[CSSPGO] Restrict pseudo probe tests to x86_64 only.
Hongtao Yu [Wed, 10 Feb 2021 22:40:47 +0000 (14:40 -0800)]
[CSSPGO] Restrict pseudo probe tests to x86_64 only.

3 years ago[SampleFDO] Silence -Wnon-virtual-dtor warning
Benjamin Kramer [Wed, 10 Feb 2021 22:37:15 +0000 (23:37 +0100)]
[SampleFDO] Silence -Wnon-virtual-dtor warning

There's no polymorphic deletion happening here.

3 years ago[asan][test] Fix Linux/odr-violation.cpp after symbolizer change D95927
Fangrui Song [Wed, 10 Feb 2021 22:27:12 +0000 (14:27 -0800)]
[asan][test] Fix Linux/odr-violation.cpp after symbolizer change D95927

3 years ago[opt] Add helpful alternatives for -analyze under new PM
Arthur Eubanks [Wed, 10 Feb 2021 21:31:58 +0000 (13:31 -0800)]
[opt] Add helpful alternatives for -analyze under new PM

Reviewed By: reames

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