platform/upstream/llvm.git
3 years ago[mlir][linalg] All StructuredOp parameters are inputs or outputs.
Tobias Gysi [Tue, 29 Jun 2021 06:54:39 +0000 (06:54 +0000)]
[mlir][linalg] All StructuredOp parameters are inputs or outputs.

Adapt the StructuredOp verifier to ensure all operands are either in the input or the output group. The change is possible after adding support for scalar input operands (https://reviews.llvm.org/D104220).

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

3 years agoRevert "[mlir] Skip scalar operands when tiling to linalg.tiled_loop."
Alexander Belyaev [Tue, 29 Jun 2021 06:55:25 +0000 (08:55 +0200)]
Revert "[mlir] Skip scalar operands when tiling to linalg.tiled_loop."

This reverts commit 69046b4a79e2670053362112aa467f89faf9e53e. It did not
really break anything, but it was decided to allow scalars and other
non-shaped operands for tiled_loop.

3 years ago[libc][Obvious] Fix typo in implementation of aarch64 clearExcept.
Siva Chandra [Tue, 29 Jun 2021 05:24:00 +0000 (22:24 -0700)]
[libc][Obvious] Fix typo in implementation of aarch64 clearExcept.

Instead of reading and updating the status word, control word was being
updated.

3 years agoRevert "[Clang] Add option to handle behaviour of vector bool/vector pixel."
David Blaikie [Tue, 29 Jun 2021 05:55:55 +0000 (22:55 -0700)]
Revert "[Clang] Add option to handle behaviour of vector bool/vector pixel."

This reverts commit c3fe847f9d90de5a6a76fd1d5f5823ab4719accc.

Tests fail in non-asserts builds because they assume named IR, by the
looks of it (testing for the "entry" label, for instance). I don't know
enough about the update_cc_test_checks.py stuff to know how to manually
fix these tests, so reverting for now.

3 years ago[llvm-objcopy][MachO] Minor code cleanup
Alexander Shaposhnikov [Tue, 29 Jun 2021 05:50:39 +0000 (22:50 -0700)]
[llvm-objcopy][MachO] Minor code cleanup

Remove unnecessary template in MachOReader.cpp. NFC.

3 years ago[X86] Zero some outputs of Kelocker intrinsics in error case
Xiang1 Zhang [Wed, 23 Jun 2021 05:54:10 +0000 (13:54 +0800)]
[X86] Zero some outputs of Kelocker intrinsics in error case

Reviewed By: WangPengfei

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

3 years ago[AVR][clang] Fix wrong calling convention in functions return struct type
Ben Shi [Tue, 29 Jun 2021 03:15:00 +0000 (11:15 +0800)]
[AVR][clang] Fix wrong calling convention in functions return struct type

According to AVR ABI (https://gcc.gnu.org/wiki/avr-gcc), returned struct value
within size 1-8 bytes should be returned directly (via register r18-r25), while
larger ones should be returned via an implicit struct pointer argument.

Reviewed By: dylanmckay

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

3 years ago[AIX][compiler-rt] Deliver libatomic.a at top level library directory
Kai Luo [Tue, 29 Jun 2021 03:13:55 +0000 (03:13 +0000)]
[AIX][compiler-rt] Deliver libatomic.a at top level library directory

Install libatomic.a in top level library directory so that compiler can find it in search directories.

Reviewed By: jsji

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

3 years agoFix failing tests after https://reviews.llvm.org/D104488.
Greg Clayton [Tue, 29 Jun 2021 02:59:24 +0000 (19:59 -0700)]
Fix failing tests after https://reviews.llvm.org/D104488.

Synthetic names no longer have the shared library name appended to the end.

3 years agoFix `-Wunused-variable` warning. NFC.
Michael Liao [Tue, 29 Jun 2021 02:48:26 +0000 (22:48 -0400)]
Fix `-Wunused-variable` warning. NFC.

3 years ago[MIRParser] Add machine metadata.
Michael Liao [Wed, 26 May 2021 00:21:21 +0000 (20:21 -0400)]
[MIRParser] Add machine metadata.

- Add standalone metadata parsing support so that machine metadata nodes
  could be populated before and accessed during MIR is parsed.

Reviewed By: arsenm

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

3 years ago[Coroutines] Remove CoroElide from O0 pipeline
Xun Li [Tue, 29 Jun 2021 02:28:27 +0000 (19:28 -0700)]
[Coroutines] Remove CoroElide from O0 pipeline

CoroElide pass works only when a post-split coroutine is inlined into another post-split coroutine.
In O0, there is no inlining after CoroSplit, and hence no CoroElide can happen.
It's useless to put CoroElide pass in the O0 pipeline and it will never be triggered (unless I miss anything).

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

3 years ago[lld-macho] Preserve alignment for non-deduplicated cstrings
Leonard Grey [Tue, 29 Jun 2021 02:22:21 +0000 (22:22 -0400)]
[lld-macho] Preserve alignment for non-deduplicated cstrings

Fixes PR50637.

Downstream bug: https://crbug.com/1218958

Currently, we split __cstring along symbol boundaries with .subsections_via_symbols
when not deduplicating, and along null bytes when deduplicating. This change splits
along null bytes unconditionally, and preserves original alignment in the non-
deduplicated case.

Removing subsections-section-relocs.s because with this change, __cstring
is never reordered based on the order file.

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

3 years ago[mlir][vector] Order parallel indices before transposing the input in multireductions
harsh-nod [Tue, 29 Jun 2021 01:40:49 +0000 (18:40 -0700)]
[mlir][vector] Order parallel indices before transposing the input in multireductions

The current code does not preserve the order of the parallel
dimensions when doing multi-reductions and thus we can end
up in scenarios where the result shape does not match the
desired shape after reduction.

This patch fixes that by ensuring that the parallel indices
are in order and then concatenates them to the reduction dimensions
so that the reduction dimensions are innermost.

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

3 years agoFix a case where multiple symbols with zero size would cause duplicate entries in...
Greg Clayton [Mon, 28 Jun 2021 23:32:36 +0000 (16:32 -0700)]
Fix a case where multiple symbols with zero size would cause duplicate entries in gsym files.

Symbol tables can have symbols with no size in mach-o files that were failing to get combined into a single entry. This resulted in many duplicate entries for the same address and made gsym files larger.

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

3 years agoFix buildbot failure after https://reviews.llvm.org/D104488.
Greg Clayton [Tue, 29 Jun 2021 01:12:05 +0000 (18:12 -0700)]
Fix buildbot failure after https://reviews.llvm.org/D104488.

3 years agoCreate synthetic symbol names on demand to improve memory consumption and startup...
Greg Clayton [Thu, 17 Jun 2021 21:22:24 +0000 (14:22 -0700)]
Create synthetic symbol names on demand to improve memory consumption and startup times.

This fix was created after profiling the target creation of a large C/C++/ObjC application that contained almost 4,000,000 redacted symbol names. The symbol table parsing code was creating names for each of these synthetic symbols and adding them to the name indexes. The code was also adding the object file basename to the end of the symbol name which doesn't allow symbols from different shared libraries to share the names in the constant string pool.

Prior to this fix this was creating 180MB of "___lldb_unnamed_symbol" symbol names and was taking a long time to generate each name, add them to the string pool and then add each of these names to the name index.

This patch fixes the issue by:
- not adding a name to synthetic symbols at creation time, and allows name to be dynamically generated when accessed
- doesn't add synthetic symbol names to the name indexes, but catches this special case as name lookup time. Users won't typically set breakpoints or lookup these synthetic names, but support was added to do the lookup in case it does happen
- removes the object file baseanme from the generated names to allow the names to be shared in the constant string pool

Prior to this fix the startup times for a large application was:
12.5 seconds (cold file caches)
8.5 seconds (warm file caches)

After this fix:
9.7 seconds (cold file caches)
5.7 seconds (warm file caches)

The names of the symbols are auto generated by appending the symbol's UserID to the end of the "___lldb_unnamed_symbol" string and is only done when the name is requested from a synthetic symbol if it has no name.

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

3 years ago[vscode-mlir] Add support for restarting the server on setting/server changes
River Riddle [Mon, 28 Jun 2021 22:46:05 +0000 (22:46 +0000)]
[vscode-mlir] Add support for restarting the server on setting/server changes

This revision adds detection for changes to either the mlir-lsp-server binary or the setting, and prompts the user to restart the server. Whether the user gets prompted or not is a configurable setting in the extension, and this setting may updated based on the user response to the prompt.

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

3 years ago[JITLink][ELF] Move ELF section and symbol parsing into ELFLinkGraphBuilder.
Lang Hames [Mon, 28 Jun 2021 22:59:02 +0000 (08:59 +1000)]
[JITLink][ELF] Move ELF section and symbol parsing into ELFLinkGraphBuilder.

Move architecture independent ELF parsing/graph-building code from
ELFLinkGraphBuilder_x86_64 to the ELFLinkGraphBuilder base class template.

3 years agoPrecommit miscompile test from D103700
Philip Reames [Mon, 28 Jun 2021 23:00:32 +0000 (16:00 -0700)]
Precommit miscompile test from D103700

3 years ago[IR] Fix replaceUsesWithIf ponetial issue with constants
Stanislav Mekhanoshin [Mon, 28 Jun 2021 20:37:45 +0000 (13:37 -0700)]
[IR] Fix replaceUsesWithIf ponetial issue with constants

There can be a use after free in the Value::replaceUsesWithIf()
if two uses point to the same constant. Patch defers handling
of the constants past the iterator scan.

Another potential issue is that handleOperandChange updates all
the uses in a given Constant, not just the one passed to
ShouldReplace. Added a FIXME comment.

Both issues are not currently exploitable as the only use of
this call with constants avoids it.

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

3 years ago[OpenMP] Run the OpenMPOpt module pass at O1
Joseph Huber [Mon, 28 Jun 2021 19:56:10 +0000 (15:56 -0400)]
[OpenMP] Run the OpenMPOpt module pass at O1

Now that the OpenMPOpt module pass include important optimizations for removing
globalization from offloading regions it should be run at a lower optimization
level.

Reviewed By: jdoerfert

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

3 years ago[lld/mac] Fix nondeterminism in output section ordering
Nico Weber [Mon, 28 Jun 2021 19:29:16 +0000 (15:29 -0400)]
[lld/mac] Fix nondeterminism in output section ordering

The two different thread_local_regular sections (__thread_data and
more_thread_data) had nondeterminstic ordering for two reasons:

1. https://reviews.llvm.org/D102972 changed concatOutputSections
   from MapVector to DenseMap, so when we iterate it to make
   output segments, we would add the two sections to the __DATA
   output segment in nondeterministic order.

2. The same change also moved the two stable_sort()s for segments
   and sections to sort(). Since sections with assigned priority
   (such as TLV data) have the same priority for all sections,
   this is incorrect -- we must use stable_sort() so that the
   initial (input-order-based) order remains.

As a side effect, we now (deterministically) put the __common
section in front of __bss (while previously we happened to
put it after it). (__common and __bss are both zerofill so
both have order INT_MAX, but common symbols are added to
inputSections before normal sections are collected.)

Makes lld/test/MachO/tlv.s and lld/test/MachO/tlv-dylib.s pass with
LLVM_ENABLE_EXPENSIVE_CHECKS=ON.

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

3 years ago[UniqueLinkageName] Use exsiting GlobalDecl object instead of reconstructing one.
Hongtao Yu [Mon, 28 Jun 2021 19:32:43 +0000 (12:32 -0700)]
[UniqueLinkageName] Use exsiting GlobalDecl object instead of reconstructing one.

C++ constructors/destructors need to go through a different constructor to construct a GlobalDecl object in order to retrieve their linkage type. This causes an assert failure in the default constructor of GlobalDecl. I'm chaning it to using the exsiting GlobalDecl object.

Reviewed By: dblaikie

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

3 years ago[LLDB] dotest.py set selected_platform on remote connection
Muhammad Omair Javaid [Mon, 28 Jun 2021 21:14:17 +0000 (21:14 +0000)]
[LLDB] dotest.py set selected_platform on remote connection

This patch fixes a bug in dotest.py where lldb.selected_platform was
being set to host platform even after a successful connection to a
remote platform via platform url. This patch fixes this behavior and
sets selected_platform to remote_platform after a successful connection.

This patch also removes target_platform variable from run_suite.

Reviewed By: JDevlieghere

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

3 years ago[DebugInfo] Enforce implicit constraints on `distinct` MDNodes
Scott Linder [Mon, 28 Jun 2021 19:40:45 +0000 (19:40 +0000)]
[DebugInfo] Enforce implicit constraints on `distinct` MDNodes

Add UNIQUED and DISTINCT properties in Metadata.def and use them to
implement restrictions on the `distinct` property of MDNodes:

* DIExpression can currently be parsed from IR or read from bitcode
  as `distinct`, but this property is silently dropped when printing
  to IR. This causes accepted IR to fail to round-trip. As DIExpression
  appears inline at each use in the canonical form of IR, it cannot
  actually be `distinct` anyway, as there is no syntax to describe it.
* Similarly, DIArgList is conceptually always uniqued. It is currently
  restricted to only appearing in contexts where there is no syntax for
  `distinct`, but for consistency it is treated equivalently to
  DIExpression in this patch.
* DICompileUnit is already restricted to always being `distinct`, but
  along with adding general support for the inverse restriction I went
  ahead and described this in Metadata.def and updated the parser to be
  general. Future nodes which have this restriction can share this
  support.

The new UNIQUED property applies to DIExpression and DIArgList, and
forbids them to be `distinct`. It also implies they are canonically
printed inline at each use, rather than via MDNode ID.

The new DISTINCT property applies to DICompileUnit, and requires it to
be `distinct`.

A potential alternative change is to forbid the non-inline syntax for
DIExpression entirely, as is done with DIArgList implicitly by requiring
it appear in the context of a function. For example, we would forbid:

    !named = !{!0}
    !0 = !DIExpression()

Instead we would only accept the equivalent inlined version:

    !named = !{!DIExpression()}

This essentially removes the ability to create a `distinct` DIExpression
by construction, as there is no syntax for `distinct` inline. If this
patch is accepted as-is, the result would be that the non-canonical
version is accepted, but the following would be an error and produce a diagnostic:

    !named = !{!0}
    ; error: 'distinct' not allowed for !DIExpression()
    !0 = distinct !DIExpression()

Also update some documentation to consistently use the inline syntax for
DIExpression, and to describe the restrictions on `distinct` for nodes
where applicable.

Reviewed By: StephenTozer, t-tye

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

3 years ago[AsmWriter] Properly handle uselistorder for global symbols
Nikita Popov [Sat, 26 Jun 2021 13:42:49 +0000 (15:42 +0200)]
[AsmWriter] Properly handle uselistorder for global symbols

Currently, AsmWriter will stick uselistorder directives for global
values inside individual functions. This doesn't make a lot of sense,
and interacts badly with D104950, as use list order adjustments will
be performed while still working on a forward reference.

This patch instead always prints uselistorder directives for globals
at the module level. This isn't really compatible with the previously
used implementation approach. Rather than walking through all values
again, use the OrderMap (after stabilizing its order) to go through
all values and compute the use list shuffles for them. Classify them
per-function, or nullptr for globals.

Even independently of D104950, this seems to fix a few
verify-uselistorder failures. Conveniently, there is even a
pre-existing failing test that this fixes.

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

3 years ago[OpenMP][Documentation] Add FAQ entry for CMake module
Joseph Huber [Mon, 28 Jun 2021 19:34:15 +0000 (15:34 -0400)]
[OpenMP][Documentation] Add FAQ entry for CMake module

This patch adds documentation for using the CMake find module for OpenMP
target offloading provided by LLVM. It also removes the requirement for
AMD's architecture to be set as this isn't necessary for upstream LLVM.

Reviewed By: jdoerfert

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

3 years ago[OpenMP][Documentation] Add OpenMPOpt optimization section
Joseph Huber [Mon, 28 Jun 2021 19:21:18 +0000 (15:21 -0400)]
[OpenMP][Documentation] Add OpenMPOpt optimization section

Add some information about the optimizations currently provided by
OpenMPOpt. Every optimization performed should eventually be listed
here.

Reviewed By: jdoerfert

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

3 years ago[mlir] Skip scalar operands when tiling to linalg.tiled_loop.
Alexander Belyaev [Mon, 28 Jun 2021 20:20:30 +0000 (22:20 +0200)]
[mlir] Skip scalar operands when tiling to linalg.tiled_loop.

We are interested only in tensors/memrefs when creating a TiledLoopOp.

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

3 years ago[InstCombine] don't try to fold a constant expression that can trap (PR50906)
Sanjay Patel [Mon, 28 Jun 2021 20:37:10 +0000 (16:37 -0400)]
[InstCombine] don't try to fold a constant expression that can trap (PR50906)

We could use a bigger hammer and bail out on any constant
expression, but there's a regression test that appears to
validly do the transform (although it may not have been
intending to check that optimization).

3 years ago[InstCombine][test] add test for potential miscompile with constant expression; NFC...
Sanjay Patel [Mon, 28 Jun 2021 19:57:38 +0000 (15:57 -0400)]
[InstCombine][test] add test for potential miscompile with constant expression; NFC (PR50906)

3 years ago[IR] remove assert since always_inline can appear on CallBase
Nick Desaulniers [Mon, 28 Jun 2021 20:53:55 +0000 (13:53 -0700)]
[IR] remove assert since always_inline can appear on CallBase

I added an assertion in D91816 (documenting behavior added in D93422)
that callers and callees with mismatched fn attr's related to stack
protectors should not occur unless the callee was attributed
always_inline.

This falls apart when a call, invoke, or callbr (any instruction
inheriting from CallBase) itself has an always_inline attribute. Clang
will emit such attributes on Instructions when __attribute__((flatten))
is used to recursively force inlining from a caller.

Since these assertions only had the caller and callee Functions, and not
the call site (CallBase derived classes), we would have to search the
caller for such instructions to reconstruct the call site information.
But at that point, inlining has already occurred; the call site has
already been removed from the caller.

Remove the assertions, add a unit test for always_inline call sites, and
update the LangRef.

Another curiosity is that the always_inline Attribute on Instructions is
only expanded by the inline pass, not the always_inline pass.

Thanks to @pcc on this report when building Android's RunTime (ART)
interpreter.

Reviewed By: pcc, MaskRay

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

3 years ago[Test] rewrite inline_nossp.ll
Nick Desaulniers [Mon, 28 Jun 2021 20:52:41 +0000 (13:52 -0700)]
[Test] rewrite inline_nossp.ll

While adding remark based tests in D104944, I noticed that the tests
that we were passing were passing for the wrong reason. They were
passing because the dynamic allocas were preventing inlining, not the
code I added in D91816.

Rewrite and simplify the test. Add remark based checks to validate we're
preventing inline substitutions for the right reasons.

Reviewed By: MaskRay

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

3 years ago[OpenMP] Prevent OpenMPOpt from internalizing uncalled functions
Joseph Huber [Fri, 25 Jun 2021 00:42:31 +0000 (20:42 -0400)]
[OpenMP] Prevent OpenMPOpt from internalizing uncalled functions

Currently OpenMPOpt will only check if a function is a kernel before deciding not to internalize it. Any uncalled function that gets internalized will be trivially dead in the module so this is unnnecessary.

Depends on D102423

Reviewed By: jdoerfert

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

3 years ago[drr] Enable specifying range in NativeCodeCall replacement.
Jacques Pienaar [Mon, 28 Jun 2021 20:42:16 +0000 (13:42 -0700)]
[drr] Enable specifying range in NativeCodeCall replacement.

This enables creating a replacement rule where range of positional replacements
need not be spelled out, or are not known (e.g., enable having a rewrite that
forward all operands to a call generically).

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

3 years ago[mlir] Destroy MLIRContext thread pool when disable multi threading
Eugene Zhulenev [Mon, 28 Jun 2021 20:15:24 +0000 (13:15 -0700)]
[mlir] Destroy MLIRContext thread pool when disable multi threading

Reviewed By: rriddle

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

3 years ago[SanitizerCoverage] Support opaque pointers
Nikita Popov [Mon, 28 Jun 2021 19:12:12 +0000 (21:12 +0200)]
[SanitizerCoverage] Support opaque pointers

Pass element type rather than pointer type to some functions, so
we know which type to use for the global variables.

3 years ago[ADT] Add makeVisitor to STLExtras.h
Scott Linder [Mon, 28 Jun 2021 19:54:14 +0000 (19:54 +0000)]
[ADT] Add makeVisitor to STLExtras.h

Relands patch reverted by 61242c0addb120294211d24a97ed89837418cb36
The original patch mistakenly included unrelated tests.

Adds a utility to combine multiple Callables into a single Callable.
This is useful to make constructing a visitor for `std::visit`-like
functions more natural; functions like this will be added in future
patches.

Intended to supercede https://reviews.llvm.org/D99560 by
perfectly-forwarding the combined Callables.

Reviewed By: dblaikie

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

3 years agoIR: Fix use-list-order round-tripping for br
Duncan P. N. Exon Smith [Fri, 25 Jun 2021 23:38:41 +0000 (16:38 -0700)]
IR: Fix use-list-order round-tripping for br

Fix the use-list-order for br instructions by setting the operands in
order of their index to match the use-list-order prediction. The case
where this matters is when there is a condition but the if-true and
if-false branches are identical.

Bug was found when reviewing failures pointed at by
https://reviews.llvm.org/D104950. Fix is similar to
3cf415c6c367ced43175ebd1dc4bd9582c7f5376.

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

3 years agoRevert "[ADT] Add makeVisitor to STLExtras.h"
Scott Linder [Mon, 28 Jun 2021 19:51:25 +0000 (19:51 +0000)]
Revert "[ADT] Add makeVisitor to STLExtras.h"

This reverts commit 14a8aa615597ef0aa424ac9545906bf8b9865063.

Mistakenly landed this before a patch it should depend on was accepted.

3 years agoRevert "[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine...
Melanie Blower [Mon, 28 Jun 2021 19:47:03 +0000 (15:47 -0400)]
Revert "[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine to allow diagnostics on target-unsupported options"

This reverts commit 2dbe1c675fe94eeb7973dcc25b049d25f4ca4fa0.
More buildbot failures

3 years ago[Verifier] Support opaque pointers for global_ctors
Nikita Popov [Mon, 28 Jun 2021 19:24:16 +0000 (21:24 +0200)]
[Verifier] Support opaque pointers for global_ctors

Adjust the assertion to allow opaque pointers.

3 years ago[ADT] Add makeVisitor to STLExtras.h
Scott Linder [Mon, 28 Jun 2021 18:54:41 +0000 (18:54 +0000)]
[ADT] Add makeVisitor to STLExtras.h

Adds a utility to combine multiple Callables into a single Callable.
This is useful to make constructing a visitor for `std::visit`-like
functions more natural; functions like this will be added in future
patches.

Intended to supercede https://reviews.llvm.org/D99560 by
perfectly-forwarding the combined Callables.

Reviewed By: dblaikie

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

3 years ago[flang] Fix "non-advancing" I/O, support $ in FORMAT
peter klausler [Mon, 28 Jun 2021 18:41:04 +0000 (11:41 -0700)]
[flang] Fix "non-advancing" I/O, support $ in FORMAT

Non-advancing I/O was failing; ExternalFileUnit was losing
track of what writes had been committed to the file.  Fixed.
Also, support the common extension of $ and \ in a FORMAT
as being equivalent to ADVANCE=NO.

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

3 years ago[clang-tidy] Add -line-filter to run-clang-tidy.py
Kirill Bobyrev [Mon, 28 Jun 2021 19:15:00 +0000 (21:15 +0200)]
[clang-tidy] Add -line-filter to run-clang-tidy.py

This patch allows the use of --line-filter in clang-tidy.py from
run-clang-tidy.py

Author: [bansan (Vincent LE GARREC)](https://reviews.llvm.org/p/bansan/)

Reviewed By: kbobyrev

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

3 years ago[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine to allow...
Melanie Blower [Mon, 28 Jun 2021 19:09:27 +0000 (15:09 -0400)]
[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine to allow diagnostics on target-unsupported options

Reviewed By: aaron.ballman

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

3 years ago[clangd] Add a flag to disable formatting of tweak edits
Kadir Cetinkaya [Mon, 28 Jun 2021 16:11:22 +0000 (18:11 +0200)]
[clangd] Add a flag to disable formatting of tweak edits

Some tweaks might edit file types not supported by clang-format. This
patch gives them a way to signal that they do not require formatting.

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

3 years ago[Clang] [NFC] fix CHECK lines for convergent attribute tests
Sameer Sahasrabuddhe [Mon, 28 Jun 2021 08:13:02 +0000 (13:43 +0530)]
[Clang] [NFC] fix CHECK lines for convergent attribute tests

3 years ago[lld-macho][nfc] Remove unnecessary dyn_cast and simplify code
Jez Ng [Sat, 26 Jun 2021 21:38:25 +0000 (17:38 -0400)]
[lld-macho][nfc] Remove unnecessary dyn_cast and simplify code

3 years ago[lld-macho][nfc] Add absolute-vs-non-absolute symbol test for ICF
Jez Ng [Mon, 28 Jun 2021 18:43:36 +0000 (14:43 -0400)]
[lld-macho][nfc] Add absolute-vs-non-absolute symbol test for ICF

Make sure we don't wrongly fold two sections that refer to
symbols with the same value if they are not both absolute /
non-absolute.

Reviewed By: #lld-macho, gkm

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

3 years ago[lld-macho] Extend ICF to literal sections
Jez Ng [Mon, 28 Jun 2021 18:43:34 +0000 (14:43 -0400)]
[lld-macho] Extend ICF to literal sections

Literal sections can be deduplicated before running ICF. That makes it
easy to compare them during ICF: we can tell if two literals are
constant-equal by comparing their offsets in their OutputSection.

LLD-ELF takes a similar approach.

Reviewed By: #lld-macho, gkm

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

3 years ago[flang] Implement user-defined derived type runtime I/O
peter klausler [Fri, 25 Jun 2021 17:40:08 +0000 (10:40 -0700)]
[flang] Implement user-defined derived type runtime I/O

With derived type description tables now available to the
runtime library, it is possible to implement the concept
of "child" I/O statements in the runtime and use them to
convert instances of derived type I/O data transfers into
calls to user-defined subroutines when they have been specified
for a type.  (See Fortran 2018, subclauses 12.6.4.8 & 13.7.6).

 - Support formatted, list-directed, and NAMELIST
   transfers to internal parent units; support these, and unformatted
   transfers, for external parent units.
 - Support nested child defined derived type I/O.
 - Parse DT'foo'(v-list) FORMAT data edit descriptors and passes
   their strings &/or v-list values as arguments to the defined
   formatted I/O routines.
 - Fix problems with this feature encountered in semantics and
   FORMAT valiation during development and end-to-end testing.
 - Convert typeInfo::SpecialBinding from a struct to a class
   after adding a member function.

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

3 years ago[libc++] NFCI: Remove unused Lit parameter sanitizer_library
Louis Dionne [Mon, 28 Jun 2021 18:20:45 +0000 (14:20 -0400)]
[libc++] NFCI: Remove unused Lit parameter sanitizer_library

3 years ago[flang] Fix conformability for intrinsic procedures
Peter Steinfeld [Fri, 25 Jun 2021 18:28:30 +0000 (11:28 -0700)]
[flang] Fix conformability for intrinsic procedures

There are situations where the arguments of intrinsics must be
conformable, which is defined in section 3.36.  This means they must
have "the same shape, or one being an array and the other being scalar".
But the check we were actually making was that their ranks were the same.

This change fixes that and adds a test for the UNPACK intrinsic, where
the FIELD argument "shall be conformable with MASK".

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

3 years ago[SystemZ][z/OS][libcxx]: fix libcxx test cases failed on ebcdic mode on z/OS
Nancy Wang [Mon, 28 Jun 2021 18:04:02 +0000 (14:04 -0400)]
[SystemZ][z/OS][libcxx]: fix libcxx test cases failed on ebcdic mode on z/OS

This patch is to fix 2 libcxx test cases, test cases assumed 'a' > 'A' which is not case in z/OS platform on ebcdic mode, modified test cases to compare between upper letters or lower letters, or digits so ordering will be true for all platform.

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

3 years ago[ObjC][ARC] Ignore operand bundle "clang.arc.attachedcall" on a call if
Akira Hatanaka [Mon, 28 Jun 2021 18:02:30 +0000 (11:02 -0700)]
[ObjC][ARC] Ignore operand bundle "clang.arc.attachedcall" on a call if
the call's return type is void

Instead of trying hard to prevent global optimization passes such as
deadargelim from changing the return type to void, just ignore the
bundle if the return type is void. clang currently emits calls to
@llvm.objc.clang.arc.noop.use, which consumes the function call result,
immediately after the function call to prevent changes to the return
type, but optimization passes can delete the call to
@llvm.objc.clang.arc.noop.use if the function call doesn't return, which
enables deadargelim to change the return type.

rdar://76671438

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

3 years ago[hwasan] print exact mismatch offset for short granules.
Florian Mayer [Mon, 28 Jun 2021 10:34:30 +0000 (11:34 +0100)]
[hwasan] print exact mismatch offset for short granules.

Reviewed By: eugenis

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

3 years ago[lldb] Avoid using any shell when calling xcrun.
Raphael Isemann [Mon, 28 Jun 2021 16:58:42 +0000 (18:58 +0200)]
[lldb] Avoid using any shell when calling xcrun.

When we run `xcrun` we don't have any user input in our command so relying on
the user's default shell doesn't make a lot of sense. If the user has set the
system shell to a something that isn't supported yet (dash, ash) then we would
run into the problem that we don't know how to escape our command string.

This patch just avoids using any shell at all as xcrun is always at the same
path.

Reviewed By: aprantl, JDevlieghere, kastiglione

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

3 years agoRevert "[MLIR][SCF] Inline ExecuteRegion if parent can contain multiple blocks"
William S. Moses [Mon, 28 Jun 2021 17:52:30 +0000 (13:52 -0400)]
Revert "[MLIR][SCF] Inline ExecuteRegion if parent can contain multiple blocks"

This reverts commit 5d6240b77e7e7199fcf0e89f6dd2f7eea3596a3c.

The commit was mistakenly landed without a PR approval, this will be
reverted now and resubmitted.

3 years agoAdd papers adopted by the C++ committee in the June 2021 plenary
Corentin Jabot [Mon, 28 Jun 2021 17:45:12 +0000 (13:45 -0400)]
Add papers adopted by the C++ committee in the June 2021 plenary

3 years ago[lldb] Remove spurious lldb/lldb subdirectory
Jonas Devlieghere [Mon, 28 Jun 2021 17:38:18 +0000 (10:38 -0700)]
[lldb] Remove spurious lldb/lldb subdirectory

Remove the lldb/lldb subdirectory which I must have accidentally created
when applying a patch with the wrong prefix number.

Thank you Nico Weber for pointing this out!

3 years ago[mlir][tosa] Update Tosa conv verifier to handle IntegerType input
Rob Suderman [Mon, 28 Jun 2021 17:17:32 +0000 (10:17 -0700)]
[mlir][tosa] Update Tosa conv verifier to handle IntegerType input

Input/output types can be integers, which represent a quantized convolution.
Update verifier to expect this behavior.

Reviewed By: sjarus

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

3 years ago[Hexagon] Add patterns to load i1
Krzysztof Parzyszek [Fri, 25 Jun 2021 22:45:50 +0000 (17:45 -0500)]
[Hexagon] Add patterns to load i1

This fixes https://llvm.org/PR50853

3 years ago[MLIR][SCF] Inline ExecuteRegion if parent can contain multiple blocks
William S. Moses [Fri, 25 Jun 2021 23:40:35 +0000 (19:40 -0400)]
[MLIR][SCF] Inline ExecuteRegion if parent can contain multiple blocks

The executeregionop is used to allow multiple blocks within SCF constructs. If the container allows multiple blocks, inline the region

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

3 years ago[libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers.
Arthur O'Dwyer [Tue, 15 Jun 2021 16:47:05 +0000 (12:47 -0400)]
[libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers.

With the STL containers, I didn't enable move operations in C++03 mode
because that would change the overload resolution for things that today
are copy operations. With iostreams, though, the copy operations aren't
present at all, and so I see no problem with enabling move operations
even in (Clang's greatly extended) C++03 mode.

Clang's C++03 mode does not support delegating constructors.

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

3 years agoRevert "Revert "[mlir][memref] Implement lowering of memref.copy to llvm""
Stephan Herhut [Mon, 28 Jun 2021 16:45:29 +0000 (18:45 +0200)]
Revert "Revert "[mlir][memref] Implement lowering of memref.copy to llvm""

This reverts commit 7d6e589fc86d7865fc4bf92c583209700dd32aac.

Windows build was unbroken.

3 years ago[AsmParser][SystemZ][z/OS] Fix hanging scenario in HLASMAsmParser class
Anirudh Prasad [Mon, 28 Jun 2021 16:46:31 +0000 (12:46 -0400)]
[AsmParser][SystemZ][z/OS] Fix hanging scenario in HLASMAsmParser class

- In the caller of the overridden `parseStatement` function (i.e. the `AsmParser::Run()`) in the case of an error **and** if we're not at the start of the statement, we "eat" up until the end of the current statement, so we don't have to process it again.
- However, in the HLASMAsmParser class what's happening is that, if an error occurs at the very start of the statement (for example, you invoke the HLASMAsmParser to parse a gnu directive), we will error out, but we never really progress in terms of the next token in the statement to parse. We simply keep looping processing the same error over and over again (partly because we're at the start of the statement)
- To remedy this, when the `parseAsHLASMLabel` function fails, before returning, we "eat" until the end of the statement function, so we don't process it anymore.

Reviewed By: uweigand

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

3 years agoRevert "[AArch64] Custom lower <4 x i8> loads"
Sjoerd Meijer [Mon, 28 Jun 2021 16:25:53 +0000 (17:25 +0100)]
Revert "[AArch64] Custom lower <4 x i8> loads"

This reverts commit 51e434fc2590d1d3ffa6545cd07290a238db2b88 because of a
build bot failure in test-suite::GCC-C-execute-pr60960.test that I need to
investigate.

3 years ago[AArch64] Added tests to neon-truncstore.ll. NFC.
Sjoerd Meijer [Fri, 25 Jun 2021 14:52:19 +0000 (15:52 +0100)]
[AArch64] Added tests to neon-truncstore.ll. NFC.

3 years agoRevert "[clang][patch][fpenv] Add builtin __arithmetic_fence and option fprotect...
Melanie Blower [Mon, 28 Jun 2021 16:41:57 +0000 (12:41 -0400)]
Revert "[clang][patch][fpenv] Add builtin __arithmetic_fence and option fprotect-parens"

This reverts commit 4f1238e44d803b145997fa984677a6c5cdf1f417.
Buildbot fails on predecessor patch

3 years agoRevert "[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine...
Melanie Blower [Mon, 28 Jun 2021 16:41:24 +0000 (12:41 -0400)]
Revert "[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine to allow diagnostics on target-unsupported options"

This reverts commit 2c02b0c3f45414ac6c64583e006a26113c028304.
buildbot fails

3 years ago[coro] Fix rematerializable instruction sinking to coro.suspend blocks
Arnold Schwaighofer [Wed, 23 Jun 2021 18:30:55 +0000 (11:30 -0700)]
[coro] Fix rematerializable instruction sinking to coro.suspend blocks

There is a constraint that coro.suspend instructions need to be in their
own blocks. The coro split pass initially creates IR that obeys this constraint
(which is later checked). Sinking rematerializable instructions into these
blocks breaks that constraint.

Instead rematerialize in the predecessor block to the suspend's single
predecessor block.

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

3 years ago[gn build] Port f32f3db9fcbf
LLVM GN Syncbot [Mon, 28 Jun 2021 16:30:29 +0000 (16:30 +0000)]
[gn build] Port f32f3db9fcbf

3 years ago[clang][patch][fpenv] Add builtin __arithmetic_fence and option fprotect-parens
Melanie Blower [Wed, 9 Jun 2021 15:38:34 +0000 (11:38 -0400)]
[clang][patch][fpenv] Add builtin __arithmetic_fence and option fprotect-parens

This patch adds a new clang builtin, __arithmetic_fence. The purpose of the
builtin is to provide the user fine control, at the expression level, over
floating point optimization when -ffast-math (-ffp-model=fast) is enabled.
The builtin prevents the optimizer from rearranging floating point expression
evaluation. The new option fprotect-parens has the same effect on
parenthesized expressions, forcing the optimizer to respect the parentheses.

Reviewed By: aaron.ballman, kpn

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

3 years ago[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine to allow...
Melanie Blower [Tue, 8 Jun 2021 20:55:54 +0000 (16:55 -0400)]
[clang][PATCH][nfc] Refactor TargetInfo::adjust to pass DiagnosticsEngine to allow diagnostics on target-unsupported options

Reviewed By: aaron.ballman

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

3 years ago[llvm][clang][fpenv] Create new intrinsic llvm.arith.fence to control FP optimization...
Melanie Blower [Mon, 7 Jun 2021 13:34:09 +0000 (09:34 -0400)]
[llvm][clang][fpenv] Create new intrinsic llvm.arith.fence to control FP optimization at expression level

This intrinsic blocks floating point transformations by the optimizer.

Author: Pengfei

Reviewed By: LuoYuanke, Andy Kaylor, Craig Topper, kpn

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

3 years ago[libc++] Split the various iterator types out of <iterator>
Louis Dionne [Fri, 11 Jun 2021 13:55:11 +0000 (09:55 -0400)]
[libc++] Split the various iterator types out of <iterator>

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

3 years ago[MLIR] Correct memrefdataflow behavior in the presence of cast and other operations
William S. Moses [Thu, 10 Jun 2021 19:12:04 +0000 (15:12 -0400)]
[MLIR] Correct memrefdataflow behavior in the presence of cast and other operations

MemRefDataFlow performs mem2reg style operations for affine load/stores. Unfortunately, it is not presently correct in the presence of external operations such as memref.cast, or function calls. This diff extends the functionality of the pass to remain correct in the presence of such ops.

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

3 years ago[mlir][llvm] Fix windows build
Stephan Herhut [Mon, 28 Jun 2021 15:31:01 +0000 (17:31 +0200)]
[mlir][llvm] Fix windows build

Gate the include of alloca.h behind _WIN32 guard.

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

3 years ago[Clang] Add option to handle behaviour of vector bool/vector pixel.
Stefan Pintilie [Fri, 11 Jun 2021 10:39:28 +0000 (05:39 -0500)]
[Clang] Add option to handle behaviour of vector bool/vector pixel.

Added the option `-altivec-src-compat=[mixed,gcc,xl]`. The default at this time is `mixed`.

The default behavior for clang is for all vector compares to return a scalar unless the vectors being
compared are vector bool or vector pixel. In that case the compare returns a
vector. With the gcc case all vector compares return vectors and in the xl case
all vector compares return scalars.

This patch does not change the default behavior of clang.

This option will be used in future patches to implement behaviour compatibility for the vector bool/pixel types.

Reviewed By: bmahjour

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

3 years ago[MLIR] Don't remove memref allocation if stored into another allocation
William S. Moses [Fri, 25 Jun 2021 20:16:23 +0000 (16:16 -0400)]
[MLIR] Don't remove memref allocation if stored into another allocation

A canonicalization accidentally will remove a memref allocation if it is only stored into. However, this is incorrect if the allocation is the value being stored, not the allocation being stored into.

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

3 years ago[AMDGPU] Use opName instead of PseudoName in VOP2 multiclasses. NFC.
Jay Foad [Mon, 28 Jun 2021 15:44:39 +0000 (16:44 +0100)]
[AMDGPU] Use opName instead of PseudoName in VOP2 multiclasses. NFC.

This is just for consistency with all other instruction multiclasses
that pass around pseudo names as arguments.

3 years agoRevert "[Analyzer][solver] Add dump methods for (dis)equality classes."
Nico Weber [Mon, 28 Jun 2021 15:32:39 +0000 (11:32 -0400)]
Revert "[Analyzer][solver] Add dump methods for (dis)equality classes."

This reverts commit 6f3b775c3e9c685f74ecbe2ce1a94af52cc17c2f.
Test fails flakily, see comments on https://reviews.llvm.org/D103967

Also revert follow-up "[Analyzer] Attempt to fix windows bots test
failure b/c of new-line"
This reverts commit fe0e861a4d9946a3e7de1bc95a3ec12fa602b492.

3 years agoRevert "[DebugInfo] Enable variadic debug value salvaging"
Nico Weber [Mon, 28 Jun 2021 15:16:11 +0000 (11:16 -0400)]
Revert "[DebugInfo] Enable variadic debug value salvaging"

This reverts commit adace79652174d126be290cab42b3122569fe15d.
Still breaks things, see comment on https://reviews.llvm.org/D91722

3 years ago[llvm][ARM] Treat xscale arch as an alias of armv5te
David Spickett [Wed, 23 Jun 2021 11:15:24 +0000 (11:15 +0000)]
[llvm][ARM] Treat xscale arch as an alias of armv5te

Previously xscale was known to everything apart
from the ELF streamer so we would crash as soon
as you tried to output an object file.

Reviewed By: nickdesaulniers

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

3 years ago[BasicAA] Add test to cover GetIndexDifference change in D99424.
Florian Hahn [Mon, 28 Jun 2021 14:46:56 +0000 (15:46 +0100)]
[BasicAA] Add test to cover GetIndexDifference change in D99424.

Precommit test case for a change to GetIndexDifference in D99424.

3 years ago[flang][docs] Minor update to Fortran LLVM Tests-suite docs.
naromero77 [Fri, 25 Jun 2021 23:54:13 +0000 (18:54 -0500)]
[flang][docs] Minor update to Fortran LLVM Tests-suite docs.

Updated Fortran LLVM Test-suite docs to reflect latest changes.

Reviewed By: Meinersbur, xgupta

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

3 years ago[MLIR] Simplify select to a not
William S. Moses [Sat, 26 Jun 2021 03:23:14 +0000 (23:23 -0400)]
[MLIR] Simplify select to a not

Given a select that returns the logical negation of the condition, replace it with a not of the condition.

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

3 years ago[Orc][examples] Temporarily disable LLJITWithRemoteDebugging build and test
Stefan Gränitz [Mon, 28 Jun 2021 14:10:02 +0000 (16:10 +0200)]
[Orc][examples] Temporarily disable LLJITWithRemoteDebugging build and test

The underlying TargetProcessControl API changes with D104694. Once it landed I can patch and re-enable the example.

3 years agoRevert "[mlir][memref] Implement lowering of memref.copy to llvm"
Jacques Pienaar [Mon, 28 Jun 2021 14:50:11 +0000 (07:50 -0700)]
Revert "[mlir][memref] Implement lowering of memref.copy to llvm"

This reverts commit e9396449777f02d573deb25d603ee1b1d6e568c1.

Breaks Windows build.

3 years ago[AIX] Use less than or equal to for some alignment tests on AIX
Zarko Todorovski [Mon, 28 Jun 2021 14:31:55 +0000 (10:31 -0400)]
[AIX] Use less than or equal to for some alignment tests on AIX

On AIX the alignment implementation has the storage aligned to the
preferred alignment instead of the alignment of a type. Macro guard
these tests for AIX and have them pass when the "reference alignment" is
less than or equal to the alignment observed. In other words, the
alignment applied is at least as strict as the required alignment.

Reviewed By: hubert.reinterpretcast

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

3 years agoReland [GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize.
Sander de Smalen [Sun, 27 Jun 2021 15:07:19 +0000 (16:07 +0100)]
Reland [GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize.

This patch relands https://reviews.llvm.org/D104454, but fixes some failing
builds on Mac OS which apparently has a different definition for size_t,
that caused 'ambiguous operator overload' for the implicit conversion
of TypeSize to a scalar value.

This reverts commit b732e6c9a8438e5204ac96c8ca76f9b11abf98ff.

3 years agoTeach peephole optimizer to not emit sub-register defs
Ahsan Saghir [Mon, 31 May 2021 13:52:56 +0000 (08:52 -0500)]
Teach peephole optimizer to not emit sub-register defs

Peephole optimizer should not be introducing sub-reg definitions
as they are illegal in machine SSA phase. This patch modifies
the optimizer to not emit sub-register definitions.

Reviewed By: arsenm

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

3 years ago[AArch64][SVE] DAG combine SETCC_MERGE_ZERO of a SETCC_MERGE_ZERO
Bradley Smith [Fri, 25 Jun 2021 11:11:33 +0000 (12:11 +0100)]
[AArch64][SVE] DAG combine SETCC_MERGE_ZERO of a SETCC_MERGE_ZERO

This helps remove extra comparisons when generating masks for fixed
length masked operations.

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

3 years ago[libc++] Remove unnecessary reinterpret_cast from typeinfo
Jonathan Crowther [Mon, 28 Jun 2021 13:53:28 +0000 (09:53 -0400)]
[libc++] Remove unnecessary reinterpret_cast from typeinfo

In typeinfo there is a reinterpret_cast between a uintptr_t and size_t. These are two integer types and therefore a reinterpret_cast is not right for this situation. It looks like it may have been copied and pasted from above in the file. An implicit cast works in it's place.

Reviewed By: ldionne, #libc

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

3 years ago[InferAddressSpaces] NFC: For noop IntToPtr/PtrToInt pair cast to operator instead...
Reshabh Sharma [Mon, 28 Jun 2021 13:48:39 +0000 (19:18 +0530)]
[InferAddressSpaces] NFC: For noop IntToPtr/PtrToInt pair cast to operator instead of PtrToInt

Compiler crashes at an assertion while casting operands to PtrToIntInst at some cases when
ptrtoint is present as an explicit operand to inttoptr. Explicit instruction operator as
operand can not be casted to an Instruction.

This patch replaces cast from PtrToInst to Operator which are later checked for constant
expressions.

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

3 years ago[OpenMP][NFC] Fix typo in OpenMPOpt
Joseph Huber [Mon, 28 Jun 2021 13:48:54 +0000 (09:48 -0400)]
[OpenMP][NFC] Fix typo in OpenMPOpt

3 years ago[Analyzer] Attempt to fix windows bots test failure b/c of new-line
Gabor Marton [Mon, 28 Jun 2021 13:41:30 +0000 (15:41 +0200)]
[Analyzer] Attempt to fix windows bots test failure b/c of new-line

3 years ago[AVR][test] Add a new test: functions with struct return type
Ben Shi [Mon, 28 Jun 2021 13:19:26 +0000 (21:19 +0800)]
[AVR][test] Add a new test: functions with struct return type

Reviewed By: dylanmckay

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