platform/upstream/llvm.git
2 years ago[clang] Remove an Address::deprecated() call in CGClass.cpp
Arthur Eubanks [Wed, 23 Feb 2022 00:19:06 +0000 (16:19 -0800)]
[clang] Remove an Address::deprecated() call in CGClass.cpp

2 years ago[NFC] Remove dead code (try 2)
Arthur Eubanks [Wed, 23 Feb 2022 00:11:49 +0000 (16:11 -0800)]
[NFC] Remove dead code (try 2)

This is causing
../../llvm/include/llvm/Object/MachO.h:379:13: warning: private field 'Kind' is not used [-Wunused-private-field]
  FixupKind Kind;

Previous attempt in a23f7c0cb6b42a06bc9707fdf46ce2a90080f61f.

2 years ago[WebAssembly] Fixed AsmPrinter not emitting .functype for intrinsics
Wouter van Oortmerssen [Tue, 22 Feb 2022 23:45:49 +0000 (15:45 -0800)]
[WebAssembly] Fixed AsmPrinter not emitting .functype for intrinsics

Intrinsics like `memset` were not emitted as `.functype` because
WebAssemblyAsmPrinter::emitExternalDecls explicitly skips symbols
that are isIntrinsic. Removing that check doesn't work, since the symbol
from the module refers to a 4-argument `llvm.memset.p0i8.i32` rather
than the 3-argument `memset` symbol referenced in the call.
Our `WebAssemblyMCLowerPrePass` however does collect the
`memset` symbol, so the current solution is as simple as emitting
`.functype` for those.

Fixes: https://github.com/llvm/llvm-project/issues/53712

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

2 years ago[instcombine] Autogen a test for ease of update
Philip Reames [Wed, 23 Feb 2022 00:02:27 +0000 (16:02 -0800)]
[instcombine] Autogen a test for ease of update

2 years ago[instcombine] Extend test coverage for a tricky bit of reasoning about unescaped...
Philip Reames [Wed, 23 Feb 2022 00:01:39 +0000 (16:01 -0800)]
[instcombine] Extend test coverage for a tricky bit of reasoning about unescaped mallocs

2 years ago[instcombine] Add test coverage for a tricky bit of reasoning about unescaped mallocs
Philip Reames [Tue, 22 Feb 2022 23:52:10 +0000 (15:52 -0800)]
[instcombine] Add test coverage for a tricky bit of reasoning about unescaped mallocs

2 years agoSet std::numeric_limits<>::tinyness_before to true for floating point types on ARM...
Owen Anderson [Tue, 28 Dec 2021 19:44:49 +0000 (11:44 -0800)]
Set std::numeric_limits<>::tinyness_before to true for floating point types on ARM platforms.

Set std::numeric_limits<>::tinyness_before to true for floating point types on ARM platforms.

Section E1.3.5 in the ARMv8 Architecture Reference Manual specifies:
  Underflow. The bit is set to 1 if the absolute value of the result
  of an operation, produced before rounding, is less than the minimum
  positive normalized number for the destination precision, and the
  rounded result is inexact.

Reviewed By: #libc, majnemer, EricWF

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

2 years agoEncode address offsets of basic blocks relative to the end of the previous basic...
Rahman Lavaee [Tue, 22 Feb 2022 22:39:08 +0000 (14:39 -0800)]
Encode address offsets of basic blocks relative to the end of the previous basic blocks.

Conceptually, the new encoding emits the offsets and sizes as label differences between each two consecutive basic block begin and end label. When decoding, the offsets must be aggregated along with basic block sizes to calculate the final relative-to-function offsets of basic blocks.

This encoding uses smaller values compared to the existing one (offsets relative to function symbol).
Smaller values tend to occupy fewer bytes in ULEB128 encoding. As a result, we get about 25% reduction
in the size of the bb-address-map section (reduction from about 9MB to 7MB).

Reviewed By: tmsriram, jhenderson

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

2 years ago[AArch64] Alter mull shuffle(ext(..)) combine to work on buildvectors
David Green [Tue, 22 Feb 2022 23:37:22 +0000 (23:37 +0000)]
[AArch64] Alter mull shuffle(ext(..)) combine to work on buildvectors

We have a combine for converting mul(dup(ext(..)), ...) into
mul(ext(dup(..)), ..), for allowing more uses of smull and umull
instructions. Currently it looks for vector insert and shuffle vectors
to detect the element that we can convert to a vector extend. Not all
cases will have a shufflevector/insert element though.

This started by extending the recognition to buildvectors (with elements
that may be individually extended). The new method seems to cover all
the cases that the old method captured though, as the shuffle will
eventually be lowered to buildvectors, so the old method has been
removed to keep the code a little simpler. The new code detects legal
build_vector(ext(a), ext(b), ..), converting them to ext(build_vector(a,
b, ..)) providing all the extends/types match up.

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

2 years ago[lld] Require C++14 in LLD standalone build
Jez Ng [Tue, 22 Feb 2022 23:14:47 +0000 (18:14 -0500)]
[lld] Require C++14 in LLD standalone build

This is what the Clang standalone build does too. And setting this
seems to be required to get the standalone build to work on my Mac.

Reviewed By: #lld-macho, MaskRay, Ericson2314, smeenai

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

2 years ago[VFS] Use generic_category for errors generated from the VFS
Ben Barham [Tue, 22 Feb 2022 05:13:38 +0000 (21:13 -0800)]
[VFS] Use generic_category for errors generated from the VFS

Errors are generally checked in clients by comparing to the portable
error condition in `std::errc`, which will have the `generic_category`
(eg. `std::errc::no_such_file_or_directory`). While in practice these
are usually equivalent for the standard errno's, they are not in *all*
implementations. One such example is CentOS 7.

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

2 years ago[gn build] bump fmsc-version to 1926
Nico Weber [Tue, 22 Feb 2022 22:47:26 +0000 (17:47 -0500)]
[gn build] bump fmsc-version to 1926

This is needed to pick up the workaround in fb1aa286c1
when building with a modern MSVC (like LLVM now requires).

2 years ago[SLP] Fix assert from non-constant index in insertelement
Brendon Cahoon [Mon, 21 Feb 2022 00:18:26 +0000 (18:18 -0600)]
[SLP] Fix assert from non-constant index in insertelement

A call to getInsertIndex() in getTreeCost() is returning None,
which causes an assert because a non-constant index value for
insertelement was not expected. This case occurs when the
insertelement index value is defined with a PHI.

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

2 years ago[SLP][NFC]Add a test for bottom to top reordering.
Alexey Bataev [Tue, 22 Feb 2022 21:46:02 +0000 (13:46 -0800)]
[SLP][NFC]Add a test for bottom to top reordering.

2 years ago[polly] Remove trailing whitespace from tests. NFC.
Michael Kruse [Tue, 22 Feb 2022 21:37:50 +0000 (15:37 -0600)]
[polly] Remove trailing whitespace from tests. NFC.

2 years agoFold Tensor.extract_slice into a constant splat.
Okwan Kwon [Fri, 18 Feb 2022 18:07:36 +0000 (18:07 +0000)]
Fold Tensor.extract_slice into a constant splat.

Fold arith.extract_slice into arith.constant when the source is a constant
splat and the result type is statically shaped.

2 years ago[BOLT][DWARF] Remove patchLowHigh unused function.
Alexander Yermolovich [Tue, 22 Feb 2022 21:26:38 +0000 (13:26 -0800)]
[BOLT][DWARF] Remove patchLowHigh unused function.

Cleanup after removing caching mechanims for ranges/abbrevs.

Reviewed By: rafauler, yota9

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

2 years agofix comment typo to cycle bots
Nico Weber [Tue, 22 Feb 2022 21:25:51 +0000 (16:25 -0500)]
fix comment typo to cycle bots

2 years ago[clang-format] Don't break semi after requires clause ...
Björn Schäpers [Mon, 21 Feb 2022 21:03:55 +0000 (22:03 +0100)]
[clang-format] Don't break semi after requires clause ...

..regardless of the chosen style.

Fixes https://github.com/llvm/llvm-project/issues/53818

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

2 years ago[clang-format][NFC] Simplify if in ContinuationIndenter::addTokenOCL
Björn Schäpers [Sun, 2 Jan 2022 20:53:02 +0000 (21:53 +0100)]
[clang-format][NFC] Simplify if in ContinuationIndenter::addTokenOCL

Setting a boolean within an if and only using it in the very next if is
a bit confusing. Merge it into one if.

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

2 years agoRevert "Remove dead code."
Reid Kleckner [Tue, 22 Feb 2022 20:56:45 +0000 (12:56 -0800)]
Revert "Remove dead code."

This reverts commit a23f7c0cb6b42a06bc9707fdf46ce2a90080f61f.

Breaks the build.

2 years agoDisable test on big endian machines. Yaml2obj has problems there.
Adrian Prantl [Tue, 22 Feb 2022 20:47:39 +0000 (12:47 -0800)]
Disable test on big endian machines. Yaml2obj has problems there.

2 years agoRemove dead code.
Adrian Prantl [Tue, 22 Feb 2022 20:47:29 +0000 (12:47 -0800)]
Remove dead code.

2 years ago[Transforms] Enhance CorrelatedValuePropagation to handle both values of select
Dmitry Vassiliev [Tue, 22 Feb 2022 20:11:20 +0000 (00:11 +0400)]
[Transforms] Enhance CorrelatedValuePropagation to handle both values of select

The "Correlated Value Propagation" pass was missing a case when handling select instructions. It was only handling the "false" constant value, while in NVPTX the select may have the condition (and thus the branches) inverted, for example:
```
loop:
%phi = phi i32* [ %sel, %loop ], [ %x, %entry ]
%f = tail call i32* @f(i32* %phi)
%cmp1 = icmp ne i32* %f, %y
%sel = select i1 %cmp1, i32* %f, i32* null
%cmp2 = icmp eq i32* %sel, null
br i1 %cmp2, label %return, label %loop
```
But the select condition can be inverted:
```
%cmp1 = icmp eq i32* %f, %y
%sel = select i1 %cmp1, i32* null, i32* %f
```
The fix is to enhance "Correlated Value Propagation" to handle both branches of the select instruction.

Reviewed By: nikic, lebedev.ri

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

2 years ago[Transforms] Pre-commit test cases for CorrelatedValuePropagation to handle both...
Dmitry Vassiliev [Tue, 22 Feb 2022 20:10:05 +0000 (00:10 +0400)]
[Transforms] Pre-commit test cases for CorrelatedValuePropagation to handle both values of select
This is a pre-commit of test cases relevant for D119643.
CorrelatedValuePropagation should handle inverted select condition, but it does not yet.

2 years ago[SystemZ/z/OS] Add va intrinsics for XPLINK
Kai Nacke [Tue, 22 Feb 2022 18:54:16 +0000 (13:54 -0500)]
[SystemZ/z/OS] Add va intrinsics for XPLINK

Add support for va intrinsics for the XPLINK ABI.
Only the extended vararg variant, which uses a pointer to next
argument, is supported. The standard variant will build on this.

Reviewed By: uweigand

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

2 years ago[libc++][AIX] Add AIX error message as expected output
Zarko Todorovski [Tue, 22 Feb 2022 19:34:10 +0000 (14:34 -0500)]
[libc++][AIX] Add AIX error message as expected output

AIX's libc generates "Error -1 occurred" instead of the "Unknown Error"
expected by these test cases. Add this as expected output for AIX only.

Reviewed By: daltenty, #powerpc, #libc, zibi, Quuxplusone

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

2 years ago[sanitizer_common] Use GetStaticTlsBoundary on Solaris 11.4
Rainer Orth [Tue, 22 Feb 2022 19:18:22 +0000 (20:18 +0100)]
[sanitizer_common] Use GetStaticTlsBoundary on Solaris 11.4

This is a restricted alternative to D91605
<https://reviews.llvm.org/D91605> which only works on Solaris 11.4 SRU 10+,
but would break the build on Solaris 11.3 and Illumos which lack
`dlpi_tls_modid`.

Apart from that, the patch is trivial.  One caveat is that the
`sanitizer_common` and `asan` tests need to be linked explicitly with `ld
-z relax=transtls` on Solaris/amd64 since the archives with calls to
`__tls_get_addr` are linked in directly.

Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and
`x86_64-pc-linux-gnu`.

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

2 years ago[Driver] Support Solaris/amd64 GetTls
Rainer Orth [Tue, 22 Feb 2022 19:14:33 +0000 (20:14 +0100)]
[Driver] Support Solaris/amd64 GetTls

This is the driver part of D91605 <https://reviews.llvm.org/D91605>, a
workaround to allow direct calls to `__tls_get_addr` on Solaris/amd64.

Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11`.

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

2 years agoAdd support for chained fixup load commands to MachOObjectFile
Adrian Prantl [Thu, 11 Nov 2021 00:25:26 +0000 (16:25 -0800)]
Add support for chained fixup load commands to MachOObjectFile

This is part of a series of patches to upstream support for Mach-O chained fixups.

This patch adds support for parsing the chained fixup load command and
parsing the chained fixups header. It also puts into place the
abstract interface that will be used to iterate over the fixups.

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

2 years agoAdd a (nonfunctional) -dyld_info flag to llvm-objdump.
Adrian Prantl [Wed, 10 Nov 2021 00:00:29 +0000 (16:00 -0800)]
Add a (nonfunctional) -dyld_info flag to llvm-objdump.

Darwin otool implements this flag as a one-stop solution for
displaying bind and rebase info. As I am working on upstreaming
chained fixup support this command will be useful to write testcases.

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

2 years agoReland "[mlir][pdl] NFC re-add NoSideEffect to Result and Results Op"
Reid Kleckner [Tue, 22 Feb 2022 18:48:25 +0000 (10:48 -0800)]
Reland "[mlir][pdl] NFC re-add NoSideEffect to Result and Results Op"

This reverts commit 9865c3f28aa812364584b55629eef9b52bb1230e.

Looks like our commits raced and Jeff fixed the build issue.

2 years ago[mlir][pdl] NFC fix missing include
Mogball [Tue, 22 Feb 2022 18:47:07 +0000 (18:47 +0000)]
[mlir][pdl] NFC fix missing include

2 years agoRevert "[mlir][pdl] NFC re-add NoSideEffect to Result and Results Op"
Reid Kleckner [Tue, 22 Feb 2022 18:46:49 +0000 (10:46 -0800)]
Revert "[mlir][pdl] NFC re-add NoSideEffect to Result and Results Op"

This reverts commit 63eb963e58663541d6feb58f53a1bd4903e3dabf.

Breaks MLIR build.

2 years agoRevert "[AArch64] Alter mull shuffle(ext(..)) combine to work on buildvectors"
Reid Kleckner [Tue, 22 Feb 2022 18:31:09 +0000 (10:31 -0800)]
Revert "[AArch64] Alter mull shuffle(ext(..)) combine to work on buildvectors"

This reverts commit 9fc1a0dcb79afb31470751651c30e843c12e9ca5.

We have bisected a compiler crash to this revision and will provide a
test case soon.

2 years ago[mlir][pdl] NFC re-add NoSideEffect to Result and Results Op
Mogball [Tue, 22 Feb 2022 18:26:52 +0000 (18:26 +0000)]
[mlir][pdl] NFC re-add NoSideEffect to Result and Results Op

2 years ago[SLP] Use isInSchedulingRegion consistently [NFC]
Philip Reames [Tue, 22 Feb 2022 18:27:00 +0000 (10:27 -0800)]
[SLP] Use isInSchedulingRegion consistently [NFC]

2 years ago[WebAssembly] Allow .data shorthand for .section .data,"",@
Wouter van Oortmerssen [Mon, 14 Feb 2022 23:55:24 +0000 (15:55 -0800)]
[WebAssembly] Allow .data shorthand for .section .data,"",@

2 years agoUpdated reflection-dump.test for mpenum section
Shubham Sandeep Rastogi [Tue, 22 Feb 2022 00:44:38 +0000 (16:44 -0800)]
Updated reflection-dump.test for mpenum section

With 1c1e2cce9a50ac9fe6b884b79925d71914cf5a30 a new swift5 reflection section for multi-payload enum mask information was added, which is called mpenum. This change simply adds a check to make sure dsymutil can dump out information in that section into the dSYM bundle.

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

2 years ago[pdl] Remove `NoSideEffect` from all PDL ops
Mogball [Mon, 21 Feb 2022 00:28:21 +0000 (00:28 +0000)]
[pdl] Remove `NoSideEffect` from all PDL ops

This trait results in PDL ops being erroneously CSE'd. These ops are side-effect free in the rewriter but not in the matcher (where unused values aren't allowed anyways). These ops should have a more nuanced side-effect modeling, this is fixing a bug introduced by a previous change.

Reviewed By: rriddle

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

2 years ago[SLP] Schedule only sub-graph of vectorizable instructions
Philip Reames [Tue, 22 Feb 2022 18:13:14 +0000 (10:13 -0800)]
[SLP] Schedule only sub-graph of vectorizable instructions

SLP currently schedules all instructions within a scheduling window which stretches from the first instruction potentially vectorized to the last. This window can include a very large number of unrelated instructions which are not being considered for vectorization. This change switches the code to only schedule the sub-graph consisting of the instructions being vectorized and their transitive users.

This has the effect of greatly reducing the amount of work performed in large basic blocks, and thus greatly improves compile time on degenerate examples. To understand the effects, I added some statistics (not planned for upstream contribution). Here's an illustration from my motivating example:

Before this patch:

704357 SLP                          - Number of calcDeps actions
 699021 SLP                          - Number of schedule calls
   5598 SLP                          - Number of ReSchedule actions
     59 SLP                          - Number of ReScheduleOnFail actions
  10084 SLP                          - Number of schedule resets
   8523 SLP                          - Number of vector instructions generated

After this patch:

102895 SLP                          - Number of calcDeps actions
 161916 SLP                          - Number of schedule calls
   5637 SLP                          - Number of ReSchedule actions
     55 SLP                          - Number of ReScheduleOnFail actions
  10083 SLP                          - Number of schedule resets
   8403 SLP                          - Number of vector instructions generated

I do want to highlight that there is a small difference in number of generated vector instructions. This example is hitting the bailout due to maximum window size, and the change in scheduling is slightly perturbing when and how we hit it. This can be seen in the RescheduleOnFail counter change. Given that, I think we can safely ignore.

The downside of this change can be seen in the large test diff. We group all vectorizable instructions together at the bottom of the scheduling region. This means that vector instructions can move quite far from their original point in code. While maybe undesirable, I don't see this as being a major problem as this pass is not intended to be a general scheduling pass.

For context, it's worth noting that the pre-scheduling that SLP does while building the vector tree is exactly the sub-graph scheduling implemented by this patch.

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

2 years ago[flang] Update PFTBuilder
Valentin Clement [Tue, 22 Feb 2022 18:08:51 +0000 (19:08 +0100)]
[flang] Update PFTBuilder

This patch update the PFTBuilder to be able to lower
the construct present in semantics.

This is a building block for other lowering patches that will be posted soon.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: PeteSteinfeld, schweitz

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

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
2 years ago[ELF] Move duplicate symbol check after input file parsing
Fangrui Song [Tue, 22 Feb 2022 18:07:58 +0000 (10:07 -0800)]
[ELF] Move duplicate symbol check after input file parsing

https://discourse.llvm.org/t/parallel-input-file-parsing/60164

To decouple symbol initialization and section initialization, `Defined::section`
assignment should be postponed after input file parsing. To avoid spurious
duplicate definition error due to two definitions in COMDAT groups of the same
signature, we should postpone the duplicate symbol check.

The function is called postScan instead of a more specific name like
checkDuplicateSymbols, because we may merge Symbol::mergeProperties into
postScan. It is placed after compileBitcodeFiles to apply to ET_REL files
produced by LTO. This causes minor diagnostic regression
for skipLinkedOutput configurations: ld.lld --thinlto-index-only a.bc b.o
(bitcode definition prevails) won't detect duplicate symbol error. I think this
is an acceptable compromise. The important cases where (a) both files are
bitcode or (b) --thinlto-index-only is unused are still detected.

Reviewed By: ikudrin

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

2 years ago[Clang][OpenMP] Add the codegen support for `atomic compare`
Shilei Tian [Tue, 22 Feb 2022 17:59:56 +0000 (12:59 -0500)]
[Clang][OpenMP] Add the codegen support for `atomic compare`

This patch adds the codegen support for `atomic compare` in clang.

Reviewed By: ABataev

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

2 years agoFix the Sphinx build after f8cedc642d9b85720cb7175ef25ddde90a3fbca2
Aaron Ballman [Tue, 22 Feb 2022 17:50:39 +0000 (12:50 -0500)]
Fix the Sphinx build after f8cedc642d9b85720cb7175ef25ddde90a3fbca2

2 years ago[StableHashing] Hash machine basic blocks and functions
Jay Foad [Fri, 18 Feb 2022 11:24:05 +0000 (11:24 +0000)]
[StableHashing] Hash machine basic blocks and functions

This adds very basic support for hashing MachineBasicBlock
and MachineFunction, for use in MachineFunctionPass to
detect passes that modify the MachineFunction wrongly.

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

2 years ago[StructurizeCFG] Fix boolean not bug
Jay Foad [Tue, 22 Feb 2022 09:49:19 +0000 (09:49 +0000)]
[StructurizeCFG] Fix boolean not bug

D118623 added code to fold not-of-compare into a compare
with the inverted predicate, if the compare had no other
uses. This relies on accurate use lists in the IR but it
was run before setPhiValues, when some phi inputs are still
stored in a data structure on the side, instead of being
real uses in the IR. The effect was that a phi that should
be using the original compare result would now get an
inverted result instead.

Fix this by moving simplifyConditions after setPhiValues.

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

2 years ago[MIPS] Add `-no-pie` option to the clang driver's tests depend on it
Simon Atanasyan [Tue, 22 Feb 2022 13:46:28 +0000 (16:46 +0300)]
[MIPS] Add `-no-pie` option to the clang driver's tests depend on it

2 years ago[AMDGPU] Extend SILoadStoreOptimizer to handle global saddr loads
Stanislav Mekhanoshin [Mon, 21 Feb 2022 22:48:59 +0000 (14:48 -0800)]
[AMDGPU] Extend SILoadStoreOptimizer to handle global saddr loads

This adds handling of the _SADDR forms to the GLOBAL_LOAD combining.

TODO: merge global stores.
TODO: merge flat load/stores.
TODO: merge flat with global promoting to flat.

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

2 years ago[InstCombine] Add test for missed select fold due to one use limitation (NFC)
Nikita Popov [Tue, 22 Feb 2022 16:56:01 +0000 (17:56 +0100)]
[InstCombine] Add test for missed select fold due to one use limitation (NFC)

The eq sub zero fold currently has an artificial one-use limitation,
causing us to miss this fold.

2 years ago[AMDGPU] Extend SILoadStoreOptimizer to handle global loads
Stanislav Mekhanoshin [Mon, 21 Feb 2022 19:17:58 +0000 (11:17 -0800)]
[AMDGPU] Extend SILoadStoreOptimizer to handle global loads

There can be situations where global and flat loads and stores are not
combined by the vectorizer, in particular if their address space
differ in the IR but they end up the same class instructions after
selection. For example a divergent load from constant address space
ends up being the same global_load as a load from global address space.

TODO: merge global stores.
TODO: handle SADDR forms.
TODO: merge flat load/stores.
TODO: merge flat with global promoting to flat.

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

2 years ago[Bitcode] Store type IDs for values
Nikita Popov [Mon, 14 Feb 2022 16:00:41 +0000 (17:00 +0100)]
[Bitcode] Store type IDs for values

This is the next step towards supporting bitcode auto upgrade with
opaque pointers. The ValueList now stores the Value* together with
its associated type ID, which allows inspecting the original pointer
element type of arbitrary values.

This is a largely mechanical change threading the type ID through
various places. I've left TODOTypeID placeholders in a number of
places where determining the type ID is either non-trivial or
requires allocating a new type ID not present in the original
bitcode. For this reason, the new type IDs are also not used for
anything yet (apart from propagation). They will get used once the
TODOs are resolved.

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

2 years agoRestore documentation for __builtin_assume
serge-sans-paille [Sun, 20 Feb 2022 08:05:46 +0000 (09:05 +0100)]
Restore documentation for __builtin_assume

This got removed by 6cacd420a1d72bca7809e6b516fb1e18ac6056c8, and that was a
mistake.

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

2 years ago[AArch64] Remove unused feature flags from AArch64TargetInfo
tyb0807 [Tue, 1 Feb 2022 21:41:23 +0000 (21:41 +0000)]
[AArch64] Remove unused feature flags from AArch64TargetInfo

This removes two feature flags from `AArch64TargetInfo` class:

- `HasHBC`: this feature does not involve generating any IR intrinsics,
so clang does not need to know about whether it is set

- `HasCrypto`: this feature is deprecated in favor of finer grained
features such as AES, SHA2, SHA3 and SM4. The associated ACLE macro
__ARM_FEATURE_CRYPTO is thus no longer used.

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

2 years ago[clang-format] Avoid parsing "requires" as a keyword in non-C++-like languages.
Marek Kurdej [Tue, 22 Feb 2022 14:46:28 +0000 (15:46 +0100)]
[clang-format] Avoid parsing "requires" as a keyword in non-C++-like languages.

Fixes the issue raised post-review in D113319 (cf. https://reviews.llvm.org/D113319#3337485).

Reviewed By: krasimir

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

2 years ago[PowerPC] Allow absolute expressions in relocations
Nemanja Ivanovic [Tue, 22 Feb 2022 15:52:19 +0000 (09:52 -0600)]
[PowerPC] Allow absolute expressions in relocations

The Linux kernel build uses absolute expressions suffixed with @lo/@ha
relocations. This currently doesn't work for DS/DQ form instructions and
there is no reason for it not to. It also works with GAS.
This patch allows this as long as the value is a multiple of 4/16
for DS/DQ form.

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

2 years ago[clang-format] Use FormatToken::is* functions without passing through `Tok`. NFC.
Marek Kurdej [Tue, 22 Feb 2022 15:40:30 +0000 (16:40 +0100)]
[clang-format] Use FormatToken::is* functions without passing through `Tok`. NFC.

2 years agoFix docs build after f8cedc642d9b85720cb7175ef25ddde90a3fbca2
Timm Bäder [Tue, 22 Feb 2022 15:34:12 +0000 (16:34 +0100)]
Fix docs build after f8cedc642d9b85720cb7175ef25ddde90a3fbca2

Looks like rst doesn't like '#' in link texts. Just remove it.

2 years ago[CodeGen] Add test for PR53990 (NFC)
Nikita Popov [Tue, 22 Feb 2022 15:31:46 +0000 (16:31 +0100)]
[CodeGen] Add test for PR53990 (NFC)

2 years ago[clang] Never wrap a nullptr in CXXNewExpr::getArraySize()
Timm Bäder [Fri, 11 Feb 2022 07:27:33 +0000 (08:27 +0100)]
[clang] Never wrap a nullptr in CXXNewExpr::getArraySize()

Otherwise callers of these functions have to check both the return value
for and the contents of the returned llvm::Optional.

Fixes #53742

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

2 years ago[mlir][bufferize] Fix GCC build
Matthias Springer [Tue, 22 Feb 2022 14:58:57 +0000 (23:58 +0900)]
[mlir][bufferize] Fix GCC build

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

2 years ago[lldb] Remove HostProcess:GetMainModule
Pavel Labath [Mon, 21 Feb 2022 14:38:52 +0000 (15:38 +0100)]
[lldb] Remove HostProcess:GetMainModule

the function is unused, and the posix implementation is only really correct on linux.

2 years ago[clang][www] Port make_cxx_dr_status script to Python3
Timm Bäder [Tue, 22 Feb 2022 10:07:39 +0000 (11:07 +0100)]
[clang][www] Port make_cxx_dr_status script to Python3

And run it to re-generate the cxx_dr_status.html

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

2 years ago[clang-format] Fix preprocessor nesting after commit 529aa4b011c4ae808d658022ef643c44...
Krasimir Georgiev [Tue, 22 Feb 2022 14:43:09 +0000 (15:43 +0100)]
[clang-format] Fix preprocessor nesting after commit 529aa4b011c4ae808d658022ef643c44dd9b2c9c

In https://github.com/llvm/llvm-project/commit/529aa4b011c4ae808d658022ef643c44dd9b2c9c
by setting the identifier info to nullptr, we started to subtly
interfere with the parts in the beginning of the function,
https://github.com/llvm/llvm-project/blob/529aa4b011c4ae808d658022ef643c44dd9b2c9c/clang/lib/Format/UnwrappedLineParser.cpp#L991
causing the preprocessor nesting to change in some cases. E.g., for the
added regression test, clang-format started incorrectly guessing the
language as C++.

This tries to address this by introducing an internal identifier info
element to use instead.

Reviewed By: curdeius, MyDeveloperDay

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

2 years ago[AArch64][SME] Remove term 'streaming-sve' from assembler diagnostics.
Sander de Smalen [Tue, 22 Feb 2022 13:48:21 +0000 (13:48 +0000)]
[AArch64][SME] Remove term 'streaming-sve' from assembler diagnostics.

'streaming-sve' is not a feature that users should be able to set,
hence why it shouldn't show up in user-diagnostics. The only
flag that end-users should be able to set is '+sme'.

Reviewed By: paulwalker-arm

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

2 years agoAdd DriverKit support
Egor Zhdan [Mon, 24 Jan 2022 14:18:14 +0000 (14:18 +0000)]
Add DriverKit support

This patch is the first in a series of patches to upstream the support for Apple's DriverKit. Once complete, it will allow targeting DriverKit platform with Clang similarly to AppleClang.

This code was originally authored by JF Bastien.

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

2 years ago[VE] Split unsupported v512.32 ops
Simon Moll [Tue, 22 Feb 2022 13:29:29 +0000 (14:29 +0100)]
[VE] Split unsupported v512.32 ops

Split v512.32 binary ops into two v256.32 ops using packing support
opcodes (vec_unpack_lo|hi, vec_pack).

Depends on D120053 for packing opcodes.

Reviewed By: kaz7

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

2 years ago[SVE] Add isel patterns for SABA/UABA.
Paul Walker [Mon, 14 Feb 2022 20:01:29 +0000 (20:01 +0000)]
[SVE] Add isel patterns for SABA/UABA.

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

2 years ago[x86] add load folding restriction to pushAddIntoCmovOfConsts()
Sanjay Patel [Tue, 22 Feb 2022 13:01:09 +0000 (08:01 -0500)]
[x86] add load folding restriction to pushAddIntoCmovOfConsts()

With only a load-fold the diffs look neutral. If there's a load and store (rmw)
fold opportunity as shown in the test based on #53862, then we end up with an
extra instruction.

Fixes #53862

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

2 years ago[Flang] Initial patch to lower a Fortran intrinsic
Kiran Chandramohan [Tue, 22 Feb 2022 10:12:04 +0000 (10:12 +0000)]
[Flang] Initial patch to lower a Fortran intrinsic

This patch brings in some initial changes for lowering Fortran
intrinsics. Intrinsics are generally lowered to a mix of FIR and
MLIR operations, runtime calls or LLVM intrinsics. This patch
particularly brings in the lowering of the Fortran `andi` intrinsic
to `arith.andi` in MLIR.

The significant changes are in ConvertExpr.cpp and IntrinsicCall.cpp.
Intrinsic functions occur as part of expressions. Lowering deals with this
in ConvertExpr.cpp in `genval(const Fortran::evaluate::FunctionRef<A> &funcRef)`.
The code in the above mentioned function kicks of a sequence of calls
that ultimately results in a call to the `genIand ` function in
IntrinsicCall.cpp which creates the MLIR `arith.andi` operation.

A few tests are also included.

Note: Generally intrinsics like `iand` can occur in array (elemental)
context, but since that part is not fully supported in lowering, tests
are only added for the scalar context.

This patch is part of upstreaming from the fir-dev branch of
https://github.com/flang-compiler/f18-llvm-project.

Reviewed By: clementval

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

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: zacharyselk <zrselk@gmail.com>
Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
Co-authored-by: Valentin Clement <clementval@gmail.com>
2 years ago[AMDGPU] Fix typo in comment [NFC]
Thomas Symalla [Tue, 22 Feb 2022 12:27:26 +0000 (13:27 +0100)]
[AMDGPU] Fix typo in comment [NFC]

This replaces "V_MOB_B32" with "V_MOV_B32" in some comment.

2 years ago[GISel] Silence 'sideeffect in assertion' coverity warnings. NFCI.
Simon Pilgrim [Tue, 22 Feb 2022 11:52:45 +0000 (11:52 +0000)]
[GISel] Silence 'sideeffect in assertion' coverity warnings. NFCI.

Use llvm::enumerate to keep track of index.

2 years ago[LoopVectorize] Support conditional in-loop vector reductions
Kerry McLaughlin [Tue, 22 Feb 2022 10:49:34 +0000 (10:49 +0000)]
[LoopVectorize] Support conditional in-loop vector reductions

Extends getReductionOpChain to look through Phis which may be part of
the reduction chain. adjustRecipesForReductions will now also create a
CondOp for VPReductionRecipe if the block is predicated and not only if
foldTailByMasking is true.

Changes were required in tryToBlend to ensure that we don't attempt
to convert the reduction Phi into a select by returning a VPBlendRecipe.
The VPReductionRecipe will create a select between the Phi and the reduction.

Reviewed By: david-arm

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

2 years ago[lldb] Fix race condition between lldb-vscode and stop hooks executor
Ilya Nozhkin [Tue, 22 Feb 2022 11:48:32 +0000 (12:48 +0100)]
[lldb] Fix race condition between lldb-vscode and stop hooks executor

The race is between these two pieces of code that are executed in two separate
lldb-vscode threads (the first is in the main thread and another is in the
event-handling thread):

```
// lldb-vscode.cpp
g_vsc.debugger.SetAsync(false);
g_vsc.target.Launch(launch_info, error);
g_vsc.debugger.SetAsync(true);
```

```
// Target.cpp
bool old_async = debugger.GetAsyncExecution();
debugger.SetAsyncExecution(true);
debugger.GetCommandInterpreter().HandleCommands(GetCommands(), exc_ctx,
                                                options, result);
debugger.SetAsyncExecution(old_async);
```

The sequence that leads to the bug is this one:
1. Main thread enables synchronous mode and launches the process.
2. When the process is launched, it generates the first stop event.
3. This stop event is catched by the event-handling thread and DoOnRemoval
   is invoked.
4. Inside DoOnRemoval, this thread runs stop hooks. And before running stop
   hooks, the current synchronization mode is stored into old_async (and
   right now it is equal to "false").
5. The main thread finishes the launch and returns to lldb-vscode, the
   synchronization mode is restored to asynchronous by lldb-vscode.
6. Event-handling thread finishes stop hooks processing and restores the
   synchronization mode according to old_async (i.e. makes the mode synchronous)
7. And now the mode is synchronous while lldb-vscode expects it to be
   asynchronous. Synchronous mode forbids the process to broadcast public stop
   events, so, VS Code just hangs because lldb-vscode doesn't notify it about
   stops.

So, this diff makes the target intercept the first stop event if the process is
launched in the synchronous mode, thus preventing stop hooks execution.

The bug is only present on Windows because other platforms already
intercept this event using their own hijacking listeners.

So, this diff also fixes some problems with lldb-vscode tests on Windows to make
it possible to run the related test. Other tests still can't be enabled because
the debugged program prints something into stdout and LLDB can't intercept this
output and redirect it to lldb-vscode properly.

Reviewed By: jingham

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

2 years ago[MergeICmps] Don't call comesBefore() if in different blocks (PR53959)
Nikita Popov [Tue, 22 Feb 2022 11:25:30 +0000 (12:25 +0100)]
[MergeICmps] Don't call comesBefore() if in different blocks (PR53959)

Only call comesBefore() if the instructions are in the same block.
Otherwise make a conservative assumption.

Fixes https://github.com/llvm/llvm-project/issues/53959.

2 years ago[mlir][spirv] Fix SPIR-V spec parser
Alexander Batashev [Tue, 22 Feb 2022 11:04:21 +0000 (14:04 +0300)]
[mlir][spirv] Fix SPIR-V spec parser

Header class in SPIR-V HTML spec has changed. Update script to reflect that.

Reviewed By: antiagainst

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

2 years ago[MLIR][Presburger] rename get*LexMin -> find*LexMin
Arjun P [Tue, 22 Feb 2022 08:48:55 +0000 (08:48 +0000)]
[MLIR][Presburger] rename get*LexMin -> find*LexMin

This reflects the fact that we are performing some non-trivial computations
here. Also, this is more uniform in line with findIntegerSample.

2 years ago[SCEV] Do not erase LoopUsers. PR53969
Max Kazantsev [Tue, 22 Feb 2022 09:54:27 +0000 (16:54 +0700)]
[SCEV] Do not erase LoopUsers. PR53969

This patch fixes a logical error in how we work with `LoopUsers` map.
It maps a loop onto a set of AddRecs that depend on it. The Addrecs
are added to this map only once when they are created and put to
the UniqueSCEVs` map.

The only purpose of this map is to make sure that, whenever we forget
a loop, all (directly or indirectly) dependent SCEVs get forgotten too.

Current code erases SCEVs from dependent set of a given loop whenever
we forget this loop. This is not a correct behavior due to the following scenario:

1. We have a loop `L` and an AddRec `AR` that depends on it;
2. We modify something in the loop, but don't destroy it. We still call forgetLoop on it;
3. `AR` is no longer dependent on `L` according to `LoopUsers`. It is erased from
    ValueExprMap` and `ExprValue map, but still exists in UniqueSCEVs;
4. We can later request the very same AddRec for the very same loop again, and get existing
    SCEV `AR`.
5. Now, `AR` exists and is used again, but its notion that it depends on `L` is lost;
6. Then we decide to delete `L`. `AR` will not be forgotten because we have lost it;
7. Just you wait when you run into a dangling pointer problem, or any other kind of problem
   because an active SCEV is now referecing a non-existent loop.

The solution to this is to stop erasing values from `LoopUsers`. Yes, we will maybe forget something
that is already not used, but it's cheap.

This fixes a functional bug and potentially may have negative compile time impact on methods with
huge or numerous loops.

Differential Revision: https://reviews.llvm.org/D120303
Reviewed By: nikic

2 years ago[OpenCL] opencl-c.h: use uint/ulong consistently
Sven van Haastregt [Tue, 22 Feb 2022 10:15:40 +0000 (10:15 +0000)]
[OpenCL] opencl-c.h: use uint/ulong consistently

Most places already seem to use the short spelling instead of
'unsigned int/long', so perform the following substitutions:

  s/unsigned int /uint /g
  s/unsigned long /ulong /g

This simplifies completeness comparisons against OpenCLBuiltins.td.

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

2 years ago[StructurizeCFG] Precommit test case for D120312
Jay Foad [Tue, 22 Feb 2022 09:40:05 +0000 (09:40 +0000)]
[StructurizeCFG] Precommit test case for D120312

2 years ago[C++20][Modules][2/8] Add enumerations for partition modules and stream them.
Iain Sandoe [Mon, 29 Nov 2021 08:05:56 +0000 (08:05 +0000)]
[C++20][Modules][2/8] Add enumerations for partition modules and stream them.

This is an initial enabling patch for module partition support.
We add enumerations for partition interfaces/implementations.

This means that the module kind enumeration now occupies three
bits, so the AST streamer is adjusted for this.  Adding one bit there
seems preferable to trying to overload the meanings of existing
kinds (and we will also want to add a C++20 header unit case later).

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

2 years ago[AARCH64][DAGCombine] Add combine for negation of CSEL absolute value pattern.
Sunho Kim [Tue, 22 Feb 2022 09:59:36 +0000 (09:59 +0000)]
[AARCH64][DAGCombine] Add combine for negation of CSEL absolute value pattern.

This folds a negation through a csel, which can come up during the
lowering of negative abs.

Fixes https://github.com/llvm/llvm-project/issues/51558.

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

2 years ago[libcxx][ci] Switch to CMAKE_CXX_COMPILER_TARGET for Arm bots
David Spickett [Thu, 17 Feb 2022 11:57:26 +0000 (11:57 +0000)]
[libcxx][ci] Switch to CMAKE_CXX_COMPILER_TARGET for Arm bots

As suggested by the cmake warning:
CMake Warning at <...>/llvm-project/libcxx-ci/libcxx/CMakeLists.txt:289 (message):
  LIBCXX_TARGET_TRIPLE is deprecated, please use CMAKE_CXX_COMPILER_TARGET instead

Depends on D119948

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

2 years ago[libcxx][CI] Set Arm triples to match native clang build's default
David Spickett [Wed, 16 Feb 2022 15:47:16 +0000 (15:47 +0000)]
[libcxx][CI] Set Arm triples to match native clang build's default

We were using:
armv8-linux-gnueabihf
But for a native clang build the default target is:
armv8l-linux-gnueabihf

(ditto for v7)

Add the "l" to the target triples and update the one test
that is unsupported to look for the various possible names.

armv(7 or 8)(m or l, optionally)

The UNSUPPORTED does not include aarch64 because aarch64 Linux
(and others that follow Arm's AAPCS64) use quad precision for
long double where arm64 (darwin) does not:
https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms
https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#811arithmetic-types

Reviewed By: rovka

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

2 years agoFix warning introduced by 47eff645d8e873ba531014751c1c06a716a367e9
David Sherwood [Tue, 22 Feb 2022 09:36:52 +0000 (09:36 +0000)]
Fix warning introduced by 47eff645d8e873ba531014751c1c06a716a367e9

2 years ago[NFC][AARCH64] Add test cases for negation of select
Sunho Kim [Tue, 22 Feb 2022 09:26:47 +0000 (09:26 +0000)]
[NFC][AARCH64] Add test cases for negation of select

Add tests to demonstrate new dag combine pattern.

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

2 years ago[InstCombine] Bail out of load-store forwarding for scalable vector types
David Sherwood [Mon, 21 Feb 2022 10:38:08 +0000 (10:38 +0000)]
[InstCombine] Bail out of load-store forwarding for scalable vector types

This patch fixes an invalid TypeSize->uint64_t implicit conversion in
FoldReinterpretLoadFromConst. If the size of the constant is scalable
we bail out of the optimisation for now.

Tests added here:

  Transforms/InstCombine/load-store-forward.ll

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

2 years ago[ARM][AArch64] Add missing v8.x checks
tyb0807 [Thu, 3 Feb 2022 22:30:41 +0000 (22:30 +0000)]
[ARM][AArch64] Add missing v8.x checks

Summary:
This patch adds checks that were missing in clang for Armv8.5/6/7-A. These include:
* ACLE macro defines for AArch32.
* Handling of crypto and SM4, SHA and AES feature flags on clang's driver.

Reviewers: dmgreen, SjoerdMeijer, tmatheson

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

2 years ago[GlobalStatus] Keep Visited set in isSafeToDestroyConstant()
Nikita Popov [Tue, 22 Feb 2022 08:53:32 +0000 (09:53 +0100)]
[GlobalStatus] Keep Visited set in isSafeToDestroyConstant()

Constants cannot be cyclic, but they can be tree-like. Keep a
visited set to ensure we do not degenerate to exponential run-time.

This fixes the problem reported in https://reviews.llvm.org/D117223#3335482,
though I haven't been able to construct a concise test case for
the issue. This requires a combination of dead constants and the
kind of constant expression tree that textual IR cannot represent
(because the textual representation, unlike the in-memory
representation, is also exponential in size).

2 years ago[Format] Remove unused LineContainsContinuedForLoopSection. NFC
Sam McCall [Mon, 21 Feb 2022 21:42:35 +0000 (22:42 +0100)]
[Format] Remove unused LineContainsContinuedForLoopSection. NFC

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

2 years ago[mlir][bufferize] Do not assert destination passing style for non-bufferizable ops
Matthias Springer [Tue, 22 Feb 2022 08:39:04 +0000 (17:39 +0900)]
[mlir][bufferize] Do not assert destination passing style for non-bufferizable ops

2 years ago[mlir][bufferize][NFC] Rename `comprehensive-function-bufferize` to `one-shot-bufferize`
Matthias Springer [Tue, 22 Feb 2022 08:14:03 +0000 (17:14 +0900)]
[mlir][bufferize][NFC] Rename `comprehensive-function-bufferize` to `one-shot-bufferize`

The related functionality is moved over to the bufferization dialect. Test cases are cleaned up a bit.

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

2 years ago[RISCV] Add patterns for vector widening integer reduction instructions
jacquesguan [Wed, 19 Jan 2022 07:32:06 +0000 (15:32 +0800)]
[RISCV] Add patterns for vector widening integer reduction instructions

Add patterns for vector widening integer reduction instructions.

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

2 years ago[Driver][OpenBSD] Add comments for C++ tests
Brad Smith [Tue, 22 Feb 2022 05:20:46 +0000 (00:20 -0500)]
[Driver][OpenBSD] Add comments for C++ tests

2 years ago[Driver][OpenBSD] Test tweaking and clean up
Brad Smith [Tue, 22 Feb 2022 04:44:18 +0000 (23:44 -0500)]
[Driver][OpenBSD] Test tweaking and clean up

2 years ago[clang-format] Add option to insert braces after control statements
owenca [Tue, 8 Feb 2022 06:58:50 +0000 (22:58 -0800)]
[clang-format] Add option to insert braces after control statements

Adds a new option InsertBraces to insert the optional braces after
if, else, for, while, and do in C++.

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

2 years ago[Driver][OpenBSD] Pass sysroot to the linker
Brad Smith [Tue, 22 Feb 2022 04:11:13 +0000 (23:11 -0500)]
[Driver][OpenBSD] Pass sysroot to the linker

2 years agoUpdate references to the mailing lists that have moved to Discourse.
Tanya Lattner [Tue, 22 Feb 2022 02:58:48 +0000 (18:58 -0800)]
Update references to the mailing lists that have moved to Discourse.

2 years ago[LLDB] Remove recursive include of GDBRemoteCommunicationServerCommon.h
Shafik Yaghmour [Tue, 22 Feb 2022 02:46:12 +0000 (18:46 -0800)]
[LLDB] Remove recursive include of GDBRemoteCommunicationServerCommon.h

GDBRemoteCommunicationServerCommon.h includes itself, removing this include.

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

2 years ago[OpenMP] Ensure offloading sections do not have SHF_ALLOC flag
Joseph Huber [Mon, 21 Feb 2022 17:40:16 +0000 (12:40 -0500)]
[OpenMP] Ensure offloading sections do not have SHF_ALLOC flag

We use offloading sections in the new Clang driver scheme to embed
device code into the host. We later use these sections to link the
device image, after which point they are completely unused and should
not be loaded into memory if they are still in the executable.

Reviewed By: JonChesterfield

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