Philip Reames [Mon, 20 Mar 2023 16:34:57 +0000 (09:34 -0700)]
[LSR] Regen tests to adjust for naming in SCEVExpander [nfc]
David Green [Mon, 20 Mar 2023 16:29:28 +0000 (16:29 +0000)]
[AArch64] Regenerate neon-vcmla.ll tests and add tests for combining fadd with vcmla. NFC
See D146407.
Arthur Eubanks [Mon, 20 Mar 2023 16:25:47 +0000 (09:25 -0700)]
[Internalize] Don't claim to preserve CallGraph
Follow up to
c41c336ee065a
Arthur Eubanks [Mon, 20 Mar 2023 16:24:11 +0000 (09:24 -0700)]
[Internalize] Remove interaction with CallGraph
Internalize was trying to update CallGraph if the analysis was available, but the new PM doesn't really use it so there's little reason to update it.
Eric Schweitz [Mon, 20 Mar 2023 15:10:26 +0000 (08:10 -0700)]
[mlir][nfc] Fix syntax to conform with the C++20 restrictions on error-prone redundancy
See: http://eel.is/c++draft/diff.cpp17.class#2
Reviewed By: springerm
Differential Revision: https://reviews.llvm.org/D146308
Philip Reames [Mon, 20 Mar 2023 15:44:15 +0000 (08:44 -0700)]
[LSR/LFTR] Move two utilities to common code for reuse [nfc]
We're working on a transform in LSR which is essentiall an inverse of LFTR (in certain sub-cases). Move utilties so that they can be reused.
NagaChaitanya Vellanki [Mon, 20 Mar 2023 15:42:04 +0000 (15:42 +0000)]
[clang][ExtractAPI] Add semicolons for enum, typedef, struct declaration fragments
Fixes https://github.com/llvm/llvm-project/issues/61480
Reviewed By: dang
Differential Revision: https://reviews.llvm.org/D146354
Kirill Stoimenov [Mon, 20 Mar 2023 15:41:05 +0000 (15:41 +0000)]
Reland "[LSAN][HWASAN] Turn on leak sanitizer in HWASAN for Linux"
This reverts commit
35c05f04e547100d03b6359d1f66950ff83350e0.
Pavel Kosov [Mon, 20 Mar 2023 15:20:41 +0000 (18:20 +0300)]
Revert "[clang][ASTImport] Add support for import of empty records"
This reverts commit
21cd04c46fe0a2bee224899f56518a09bce5306e.
Felipe de Azevedo Piovezan [Mon, 20 Mar 2023 12:51:04 +0000 (08:51 -0400)]
[x86][MemFold] Fix anon namespace in header
D142084 moved an enumeration inside a header from the llvm namespace
into an anon namespace. Some of the bots started failing as a result.
Differential Revision: https://reviews.llvm.org/D146419
Maya Amrami [Sun, 19 Mar 2023 14:28:23 +0000 (16:28 +0200)]
[mlir] Support bufferization of arith.constant to memref.global with memory space
Reviewed By: springerm
Differential Revision: https://reviews.llvm.org/D146381
Paul Scoropan [Wed, 15 Mar 2023 14:43:06 +0000 (14:43 +0000)]
[Flang] [PowerPC] Implement remaining PPC math operation intrinsics that do not require semantic error checks
This review implements the following PowerPC math operations that we care about:
- fnabs
- fre
- fres
- frsqrte
- frsqrtes
None of these intrinsics require additional error checks in semantics. The interfaces handle checking types and kinds
Reviewed By: kkwli0
Differential Revision: https://reviews.llvm.org/D146139
Andrew Litteken [Tue, 13 Dec 2022 05:51:11 +0000 (23:51 -0600)]
[IRSim] Ensure that assignment accurately reduces potential mapping between different candidates
Previous:
When we do not make decisions about commutative operands, we can end up in a situation where two values have two potential canonical numbers between two regions. This ensures that an ordering is decided after the initial structure between two regions is determined.
Current:
Previously the outliner only checked that assignment to a value matched what was already known, this patch makes sure that it matches what has already been found, and creates a mapping between the two values where it is a one-to-one mapping.
Reviewer: paquette
Differential Revision: https://reviews.llvm.org/D139336
Pavel Kosov [Mon, 20 Mar 2023 14:24:12 +0000 (17:24 +0300)]
[clang][ASTImport] Add support for import of empty records
Patch represents the clang part of changes in D143347
Reviewed By: balazske
Differential Revision: https://reviews.llvm.org/D145057
Joseph Huber [Mon, 20 Mar 2023 14:29:43 +0000 (09:29 -0500)]
[libc][NFC] Add some missing comments to the RPC implementation
Summary:
These comments were accidentally dropped from the committed version. Add
them back in.
Adrian Kuegel [Mon, 20 Mar 2023 14:10:12 +0000 (15:10 +0100)]
Nicolas Vasilache [Mon, 20 Mar 2023 14:06:57 +0000 (07:06 -0700)]
Revert "[mlir][Linalg][Transform] Avoid FunctionalStyleTransformOpTrait where unnecesseary to improve usability"
This reverts commit
31aa8ea252c0b6acdcb362c1d0f01cc4b810d6d0.
This is currently not in a good state as we have some footguns due to missing listeners.
Kadir Cetinkaya [Mon, 20 Mar 2023 11:12:10 +0000 (12:12 +0100)]
[clangd] Fix AddUsing in the face of typo-correction
Fixes https://github.com/clangd/clangd/issues/559
Differential Revision: https://reviews.llvm.org/D146417
Mehdi Amini [Mon, 20 Mar 2023 13:03:32 +0000 (14:03 +0100)]
Fix MLIR build with shared library enabled
Broken by
f406adf134c2f
Dmitry Chernenkov [Mon, 20 Mar 2023 12:59:05 +0000 (12:59 +0000)]
[libcxxabi] Fix for
c9d36bd80760db14f14b33789e6cbc6cb8c64830
Otherwise fails with LIBCPP_REMOVE_TRANSITIVE_INCLUDES
Mehdi Amini [Mon, 20 Mar 2023 12:40:37 +0000 (13:40 +0100)]
Add capture of "IRUnits" as context for an MLIR Action
IRUnit is defined as:
using IRUnit = PointerUnion<Operation *, Region *, Block *, Value>;
The tracing::Action is extended to take an ArrayRef<IRUnit> as context to
describe an Action. It is demonstrated in the "ActionLogging" observer.
Reviewed By: rriddle, Mogball
Differential Revision: https://reviews.llvm.org/D144814
Mehdi Amini [Mon, 13 Mar 2023 13:33:31 +0000 (14:33 +0100)]
Add a `skipRegion()` feature to the OpPrintingFlags for MLIR ASM printer
This is a convenient flag for context where we intend to summarize a top-level
operation without the full-blown regions it may hold.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D145889
Mehdi Amini [Mon, 20 Mar 2023 11:56:30 +0000 (12:56 +0100)]
Add an Observer for logging actions application to a stream
Integrate the `tracing::ExecutionContext()` into mlir-opt with a new
--log-action-to=<file> option to demonstrate the feature.
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D144813
Nicolas Vasilache [Mon, 20 Mar 2023 12:17:39 +0000 (05:17 -0700)]
[mlir][Transform] Fix support for mapping to GPU warps and to linear ids
c59465e1203dd78d06e15f7ddf62141807dbd5a7 introduced mapping to warps and
linear GPU ids.
In the implementation, the delinearization basis is reversed from [x, y, z]
to [z, y x] order to properly compute the strides and allow delinearization.
Prior to this commit, we forgot to reverse it back to [x, y, z] order
before materializing the indices.
Fix this oversight.
David Spickett [Tue, 14 Mar 2023 11:52:36 +0000 (11:52 +0000)]
[lldb] Implement CrashReason using UnixSignals
By adding signal codes to UnixSignals and adding a new function
where you can get a string with optional address and bounds.
Added signal codes to the Linux, FreeBSD and NetBSD signal sets.
I've checked the numbers against the relevant sources.
Each signal code has a code number, description and printing options.
By default you just get the descripton, you can opt into adding either
a fault address or bounds information.
Bounds signals we'll use the description, unless we have the bounds
values in which case we say whether it is an upper or lower bound
issue.
GetCrashReasonString remains in CrashReason because we need it to
be compiled only for platforms with siginfo_t. Ideally it would
move into NativeProcessProtocol, but that is also used
by NativeRegisterContextWindows, where there would be no siginfo_t.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D146044
Simon Pilgrim [Mon, 20 Mar 2023 11:06:47 +0000 (11:06 +0000)]
[DAG] visitTRUNCATE - use FoldConstantArithmetic to perform constant folding.
Avoid needing to perform extra isConstantIntBuildVectorOrConstantInt checks
Simon Pilgrim [Mon, 20 Mar 2023 10:20:44 +0000 (10:20 +0000)]
[DAG] foldBinOpIntoSelect - remove !CanFoldNonConst check. NFC.
These checks are in an if-else chain where CanFoldNonConst is already guaranteed to be false.
Dmitry Chernenkov [Mon, 20 Mar 2023 11:05:55 +0000 (11:05 +0000)]
[llvm][Demangle][NFC] Fix demangle to work with LIBCPP_REMOVE_TRANSITIVE_INCLUDES
luxufan [Mon, 20 Mar 2023 11:03:18 +0000 (19:03 +0800)]
[NFC] Regenerate test file InstCombine/bit-checks.ll
Mark Goncharov [Mon, 20 Mar 2023 10:42:24 +0000 (13:42 +0300)]
[LSR] Fold terminating condition not only for eq and ne.
Add opportunity to fold any icmp instruction.
Muhammad Omair Javaid [Mon, 20 Mar 2023 10:32:21 +0000 (15:32 +0500)]
Revert "[JITLink][ELF] Don't skip debug info sections by default."
This reverts commit
57aeb305460406f7b822cfe6ab9fb4d730fc3b38.
Breaks buildbot https://lab.llvm.org/buildbot/#/builders/197/builds/4272
Muhammad Omair Javaid [Mon, 20 Mar 2023 10:15:36 +0000 (15:15 +0500)]
Revert "Revert "[SVE] Add patterns for shift intrinsics with FalseLanesZero mode""
This reverts commit
32bd1f562f835044d11b7ecfb36362a29eb00a02.
Nicolas Vasilache [Mon, 20 Mar 2023 09:02:23 +0000 (02:02 -0700)]
[mlir][Linalg][Transform] Avoid FunctionalStyleTransformOpTrait where unnecesseary to improve usability
Differential Revision: https://reviews.llvm.org/D146305
LLVM GN Syncbot [Mon, 20 Mar 2023 10:07:45 +0000 (10:07 +0000)]
[gn build] Port
28997feb0c3a
Alon Kom [Tue, 31 Jan 2023 08:21:53 +0000 (10:21 +0200)]
[SCEV] Preserve divisibility and min/max information in applyLoopGuards
applyLoopGuards doesn't always preserve information when there are multiple assumes.
This patch tries to deal with multiple assumes regarding a SCEV's divisibility and min/max values, and rewrite it into a SCEV that still preserves all of the information.
For example, let the trip count of the loop be TC. Consider the 3 following assumes:
1. __builtin_assume(TC % 8 == 0);
2. __builtin_assume(TC > 0);
3. __builtin_assume(TC < 100);
Before this patch, depending on the assume processing order applyLoopGuards could create the following SCEV:
max(min((8 * (TC / 8)) , 99), 1)
Looking at this SCEV, it doesn't preserve the divisibility by 8 information.
After this patch, depending on the assume processing order applyLoopGuards could create the following SCEV:
max(min((8 * (TC / 8)) , 96), 8)
By aligning up 1 to 8, and aligning down 99 to 96, the new SCEV still preserves all of the original assumes.
Differential Revision: https://reviews.llvm.org/D144947
Owen Pan [Fri, 10 Feb 2023 16:50:49 +0000 (08:50 -0800)]
Reland [clang-format] Add a space between an overloaded operator and '>'
The token annotator doesn't annotate the template opener and closer
as such if they enclose an overloaded operator. This causes the
space between the operator and the closer to be removed, resulting
in invalid C++ code.
Fixes #58602.
Differential Revision: https://reviews.llvm.org/D143755
Pavel Kosov [Mon, 20 Mar 2023 09:48:45 +0000 (12:48 +0300)]
[LLVM][OHOS] Clang toolchain and targets
Add a clang part of OpenHarmony target
Related LLVM part: D138202
~~~
Huawei RRI, OS Lab
Reviewed By: DavidSpickett
Differential Revision: https://reviews.llvm.org/D145227
Adrian Kuegel [Mon, 20 Mar 2023 07:28:48 +0000 (08:28 +0100)]
[mlir][Bazel] Avoid __attribute__((weak)) for MSVC.
Differential Revision: https://reviews.llvm.org/D146405
Adrian Kuegel [Mon, 20 Mar 2023 09:14:02 +0000 (10:14 +0100)]
[mlir] Apply ClangTidy performance finding (NFC).
Valentin Clement [Mon, 20 Mar 2023 09:01:01 +0000 (10:01 +0100)]
[flang] Update allocate lowering to use AllocatableInit.*ForAllocate functions
Update lowering of allocate statement to use the new
functions defined in D146290.
Depends on D146290
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D146291
Valentin Clement [Mon, 20 Mar 2023 09:00:08 +0000 (10:00 +0100)]
[flang] Add AllocatableInit functions for use in allocate lowering
`AllocatableInitIntrinsic`, `AllocatableInitCharacter` and
`AllocatableInitDerived` are meant to be used to initialize a
descriptor when it is instantiated and not to be used multiple
times in a scope.
Add `AllocatableInitDerivedForAllocate`, `AllocatableInitCharacterForAllocate`
and `AllocatableInitDerivedForAllocate` to be used for the allocation
in allocate statement.
These new functions are meant to be used on an initialized descriptor
and will return directly if the descriptor is allocated so the
error handling is done by the call to `AllocatableAllocate`.
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D146290
Adrian Kuegel [Mon, 20 Mar 2023 08:28:25 +0000 (09:28 +0100)]
[mlir][Bazel] Add missing dependencies.
Yevgeny Rouban [Mon, 20 Mar 2023 08:04:21 +0000 (15:04 +0700)]
Revert "[AsmParser] Avoid instantiating LLVMContext if not needed. NFC"
This reverts commit
c1888a370ada6e76d51cdb9c6eeefa2588a475eb
because of massive buildbolt failures.
Nicolas Vasilache [Mon, 20 Mar 2023 06:46:11 +0000 (23:46 -0700)]
[mlir][Transform] Add support for mapping to GPU warps and to linear ids
This revisions refactors the implementation of mapping to threads to additionally allow warps and linear ids to be specified.
`warp_dims` is currently specified along with `block_dims` as a transform attribute.
Linear ids on th other hand use the flattened block_dims to predicate on the first (linearized) k threads.
An additional GPULinearIdMappingAttr is added to the GPU dialect to allow specifying loops mapped to this new scheme.
Various implementation and transform op semantics cleanups are also applied.
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D146130
Yevgeny Rouban [Mon, 20 Mar 2023 07:54:10 +0000 (14:54 +0700)]
[AsmParser] Avoid instantiating LLVMContext if not needed. NFC
Differential Revision: https://reviews.llvm.org/D142699
Muhammad Omair Javaid [Mon, 20 Mar 2023 07:38:38 +0000 (12:38 +0500)]
Revert "[SVE] Add patterns for shift intrinsics with FalseLanesZero mode"
This reverts commit
22c3ba4bb519e12395c676ffe436ea4b8400234a.
Breaks buildbot https://lab.llvm.org/buildbot/#/builders/197/builds/4272
Differential Revision: https://reviews.llvm.org/D145551
Kadir Cetinkaya [Mon, 20 Mar 2023 06:51:49 +0000 (07:51 +0100)]
Revert "[clang-format] Add a space between an overloaded operator and '>'"
This reverts commit
b05dc1b8766a47482cae432011fd2faa04c83a3e.
Makes clang-format crash on `struct Foo { operator enum foo{} };`
Bing1 Yu [Mon, 20 Mar 2023 05:48:01 +0000 (13:48 +0800)]
[RFC][X86][MemFold] Upgrade the mechanism of auto-generated Memory Folding Table
1. Align ManualMapSet with X86MemoryFoldTableEntry instead of using UnfoldStrategy
2. ManualMapSet able to update the existing record in auto-generated MemFold table
Reviewed By: skan
Differential Revision: https://reviews.llvm.org/D142084
Max Kazantsev [Mon, 20 Mar 2023 05:38:37 +0000 (12:38 +0700)]
[GuardWidening] Improve analysis of potential widening into hotter block
There is a piece of logic in GuardWidening which is very limited, and it happens
to ignore implicit control flow, therefore it "works fine" with guards expressed as
intrinsic calls. However, when the guards are represented as branches, its limitations
create a lot of trouble.
The intent here is to make sure that we do not widen code across complex CFG,
so that it can end up being in hotter code than it used to be. The old logic was limited
to unique immediate successor and that's it.
This patch changes the logic there to work the following way: when we need to check
if we can widen from `DominatedBlock` into `DominatingBlock`, we first try to find the
lowest (by CFG) transitive successor of `DominatingBlock` which is guaranteed to not
be significantly colder than the `DominatingBlock`. It means that every time we move
to either:
- Unique successor of the current block, if it only has one successor;
- The only taken successor, if the current block ends with `br(const)`;
- If one of successors ends with deopt, another one is taken;
If the lowest block we can find this way is the `DominatedBlock`, then it is safe to assume
that this widening won't move the code into a hotter location.
I did not touch the existing check with PDT. It looks fishy to me (post-dominance doesn't
really guarantee anything about hotness), but let's keep it as is and maybe fix later.
With this patch, Guard Widening can widen explicitly expressed branches across more than one
dominating guard if it's profitable.
Differential Revision: https://reviews.llvm.org/D146276
Reviewed By: skatkov
Max Kazantsev [Mon, 20 Mar 2023 05:02:22 +0000 (12:02 +0700)]
[LICM] Do not hoist widenable conditions
Despite the fact that it is legal, it is not profitable. It may prevent
Loop Guard Widening to happen. Because of bug described at
https://github.com/llvm/llvm-project/issues/60234, now the guard widening is
only possible when condtion we want to add is available at the point of the
widenable_condition() of dominating guard. It means that, if all such calls are
hoisted out of loop, and the loop conditions depend on loop-variants, we cannot
widen. Hoisting is otherwise not helpful, because it does not introduce any
optimization opportunities.
Differential Revision: https://reviews.llvm.org/D146274
Reviewed By: apilipenko
Austin Kerbow [Sat, 18 Mar 2023 06:39:25 +0000 (23:39 -0700)]
[AMDGPU] Add release note for ommited barrier waitcnt
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D146353
Chuanqi Xu [Mon, 20 Mar 2023 03:37:06 +0000 (11:37 +0800)]
[NFC] [C++20] [Modules] Add test for #pragma once
Close https://github.com/llvm/llvm-project/issues/38554
Close https://github.com/llvm/llvm-project/issues/58532
It looks like we can workaround the '#pragma once' problem automatically
after we force the lazily loading for named modules. Add a test to show
this.
Lang Hames [Mon, 20 Mar 2023 00:31:52 +0000 (17:31 -0700)]
[ORC] Use ExecutorAddr instead of JITTargetAddress in JITDylib symbol table.
Update JITDylib's symbol table entry struct to use the newer ExecutorAddr type.
Andrew Litteken [Sun, 2 Oct 2022 17:33:03 +0000 (12:33 -0500)]
[IRSim] Treat Branch OperVals different from regular operands to ensure correct ordering
Branch operands are different from regular instructions. They can have a mix of boolean values and branch instructions. This makes sure that branches are treated as more of a special case and makes sure that the successor blocks are always in the same order, and that they do not include the conditional argument.
Reviewer: paquette
Differential Revision: https://reviews.llvm.org/D139337
Arthur Eubanks [Thu, 2 Mar 2023 22:47:46 +0000 (14:47 -0800)]
[CGSCC] Allow creation of no-rerun CGSCC->function adaptor via textual pipeline
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D145196
Lang Hames [Sun, 19 Mar 2023 22:50:44 +0000 (15:50 -0700)]
Revert "[ORC] Introduce SetUpExecutorNativePlatform utility."
This reverts commit
bdf5f9c3228d6ed1d7c6f87b3828a7d573b34c03, which was a work
in progress for https://reviews.llvm.org/D144276 and accidentally committed
early.
DianQK [Sun, 19 Mar 2023 22:42:19 +0000 (06:42 +0800)]
Revert "[SimplifyCFG] Check if the return instruction causes undefined behavior"
This reverts commit
b6a0be8ce3114d0c57e7a7d6c3c222986ca506ad.
DianQK [Sun, 19 Mar 2023 22:42:07 +0000 (06:42 +0800)]
Revert "[SimplifyCFG] Improve the precision of `PtrValueMayBeModified`"
This reverts commit
f890f010f6a70addbd885acd0c8d1b9578b6246f.
Lang Hames [Sun, 19 Mar 2023 22:27:46 +0000 (15:27 -0700)]
[ORC] Introduce SetUpExecutorNativePlatform utility.
Simplifies the process of building an LLJIT instance that supports the native
platform features (initializers, TLV, etc.).
SetUpExecutorNativePlatform can be passed to LLJITBuilder::setPlatformSetUp
method. It takes a reference to the ORC runtime (as a path or an in-memory
archive) and automatically sets the platform for LLJIT's ExecutionSession based
on the executor process's triple.
Differential Revision: https://reviews.llvm.org/D144276
NAKAMURA Takumi [Tue, 14 Mar 2023 13:37:08 +0000 (22:37 +0900)]
llvm/test/TableGen/intrinsic-*.td: Use Intrinsics.td instead of mock
- `intrinsic-pointer-to-any.td`
- `intrinsic-varargs.td`
They used their own mock.
I have introduced `TEST_INTRINSICS_SUPPRESS_DEFS` in `Intrinsics.td`.
Tests of intrinsics may use it.
Differential Revision: https://reviews.llvm.org/D146147
sstwcw [Sun, 19 Mar 2023 21:32:44 +0000 (21:32 +0000)]
[clang-format] Fix non-case colons in Verilog case lines
Back in D128714, we should have replaced the old rule about colons when
we added the new one. Because we didn't, all colons got mistaken as
case colons as long as the line began with `case` or `default`. Now we
remove the rule that we forgot to remove.
Reviewed By: MyDeveloperDay, rymiel
Differential Revision: https://reviews.llvm.org/D145888
Florian Hahn [Sun, 19 Mar 2023 20:47:59 +0000 (20:47 +0000)]
[GlobalOpt] Collect initializer when building GlobalPart.
Update the code to collect the initializer when collecting the types for
a global, as suggested by @nikic in D144476.
This replaces code which bailed out if *any* part doesn't have an
initializer with a continue to just skip parts which don't have an
initializer.
Depends on D145489.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D145490
Kazu Hirata [Sun, 19 Mar 2023 20:44:43 +0000 (13:44 -0700)]
[InstCombine] Precommit tests
This patch precommits tests for:
https://github.com/llvm/llvm-project/issues/60802
Mark de Wever [Sun, 19 Mar 2023 17:06:47 +0000 (18:06 +0100)]
[libc++] Change linkage for some functions.
Internal linkages fails when building libc++ with modules. Using
internal linkage is headers seems questionable to change the linkage.
Reviewed By: #libc, philnik
Differential Revision: https://reviews.llvm.org/D146384
David Benjamin [Sun, 19 Mar 2023 17:41:04 +0000 (18:41 +0100)]
[libc++] Assert that lengths fit in difference_type
This can help flag accidentally passing in negative values into the `string_view` constructor. This aligns with a similar check in `absl::string_view`.
Fixes https://github.com/llvm/llvm-project/issues/61100
Reviewed By: #libc, Mordante
Differential Revision: https://reviews.llvm.org/D145981
Mark de Wever [Sun, 19 Mar 2023 17:03:25 +0000 (18:03 +0100)]
[libc++][test] Adds a missing include.
Nikolas Klauser [Wed, 22 Feb 2023 19:11:03 +0000 (20:11 +0100)]
[libc++] Inline small constructors into basic_string
This allows the compiler to inline the constructors.
Reviewed By: ldionne, #libc
Spies: mikhail.ramalho, libcxx-commits
Differential Revision: https://reviews.llvm.org/D144580
Iain Sandoe [Sun, 12 Mar 2023 20:45:26 +0000 (20:45 +0000)]
[C++2x][Modules] Amend module purview constant linkage [P2788R0].
This paper has been applied to the working draft and is believed to be
a DR against C++20, so that the patch here makes the change unconditionally.
for:
```
export module A;
const int mod_cst = 10;
```
Before the change, mod_cst would have internal linkage; after the change it
has module linkage.
Differential Revision: https://reviews.llvm.org/D145886
Shao-Ce SUN [Sun, 19 Mar 2023 15:25:52 +0000 (23:25 +0800)]
[Flang][RISCV] Fix
9f93b71f20ea
Louis Dionne [Sun, 19 Mar 2023 14:35:20 +0000 (10:35 -0400)]
[libc++][NFC] Clean up the ABI changelog
Fix a few typos and remove TODOs
Louis Dionne [Sat, 18 Mar 2023 20:46:54 +0000 (16:46 -0400)]
[libc++][Apple] Update availability markup for std::to_chars(floating-point)
Differential Revision: https://reviews.llvm.org/D146367
Louis Dionne [Mon, 6 Mar 2023 20:43:26 +0000 (15:43 -0500)]
[libc++] Remove C++03 extensions for std::allocator_arg & friends
As explained in the release note, libc++ used to provide various
global variables as an extension in C++03 mode. Unfortunately, that
made our definition non-conforming in all standard modes. This was
never a big problem until recently, since we are trying to support
C++20 Modules in libc++, and that requires cleaning up the definition
of these variables.
This change is the first in a series of changes to achieve our end goal.
This patch removes the ability for users to rely on the (incorrect)
definition of those global variables inside the shared library. The
plan is to then remove those definitions from the shared library
(which is an ABI break but I don't think it will have impact), and
finally to make our definition of those variables conforming in all
standard modes.
Differential Revision: https://reviews.llvm.org/D145422
Congcong Cai [Sun, 19 Mar 2023 13:08:37 +0000 (21:08 +0800)]
[sancov] fix coverage-report-server cannot display coverage detail
This patch make following change for coverage-report-server.py
- using uri `./{name}` from root in the old version python http.server can be handled as `//{name}`. But due to https://github.com/python/cpython/pull/93879, it will be handled as `/{name}` now.
So I want to use a prefix to avoid double slashes issue.
Differential Revision: https://reviews.llvm.org/D146010
Nikolas Klauser [Sun, 19 Mar 2023 09:15:14 +0000 (10:15 +0100)]
[runtimes] Don't use -Wall on clang-cl builds
`-Wall` on clang-cl is equivalent to `-Weverything` on clang. We already add the correct warning flag depending whether we are in an MSVC-like environment, so just remove it from the list of flags that get passed unconditionally.
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D146378
Michael Buch [Tue, 7 Mar 2023 13:18:07 +0000 (13:18 +0000)]
[libcxxabi][Demangle] Don't drop ctor/dtor name for abi-tagged structures
Before this patch we would demangle abi-tagged structures as follows:
```
$ c++filt -n _ZN1SB5OuterC2Ev
S[abi:Outer]:()
$ c++filt -n _ZN1SB5OuterD2Ev
S[abi:Outer]::~()
```
This is because `Node::getBaseName` was unimplemented for the
`AbiTagAttr` node, which meant that when we tried printing `CtorDtorName`
where its `Basename` `Node` was an `AbiTagAttr`, we'd drop the
name.
Addresses https://github.com/llvm/llvm-project/issues/61213
Differential Revision: https://reviews.llvm.org/D145492
Michael Buch [Thu, 9 Mar 2023 16:10:00 +0000 (16:10 +0000)]
[llvm][Demangle][NFC] Sync latest libcxxabi/demangle
Differential Revision: https://reviews.llvm.org/D145693
Nikolas Klauser [Wed, 1 Mar 2023 19:49:22 +0000 (20:49 +0100)]
[libc++] Granularize <exception> includes
Reviewed By: ldionne, #libc
Spies: mikhail.ramalho, smeenai, libcxx-commits
Differential Revision: https://reviews.llvm.org/D146097
Nikolas Klauser [Wed, 22 Feb 2023 17:01:23 +0000 (18:01 +0100)]
[libc++][NFC] Refactor the __enable_ifs in <string>
This changes all `__enable_if`s inside `<string>` to a common pattern. Specifically, it's always inside the `template <>` and uses the `, int> = 0` style.
Reviewed By: ldionne, #libc
Spies: mikhail.ramalho, EricWF, libcxx-commits
Differential Revision: https://reviews.llvm.org/D144568
Sirui Mu [Sun, 19 Mar 2023 09:03:38 +0000 (10:03 +0100)]
[libc++abi] Improve performance of __dynamic_cast
The original `__dynamic_cast` implementation does not use the ABI-provided `src2dst_offset` parameter which helps improve performance on the hot paths. This patch improves the performance on the hot paths in `__dynamic_cast` by leveraging hints provided by the `src2dst_offset` parameter. This patch also includes a performance benchmark suite for the `__dynamic_cast` implementation.
Reviewed By: philnik, ldionne, #libc, #libc_abi, avogelsgesang
Spies: mikhail.ramalho, avogelsgesang, xingxue, libcxx-commits
Differential Revision: https://reviews.llvm.org/D138005
Frederic Cambus [Sun, 19 Mar 2023 08:44:55 +0000 (09:44 +0100)]
[compiler-rt] Add missing #else clause to fix the build on NetBSD.
An #elif SANITIZER_SOLARIS clause was removed in D120048, but it also
removed the #else clause for the error fallback, causing the build to
fail on NetBSD.
Differential Revision: https://reviews.llvm.org/D146316
Nathan Ridge [Sun, 19 Mar 2023 08:43:24 +0000 (04:43 -0400)]
[clangd] Fix test failure in SemanticHighlighting.GetsCorrectTokens
Nathan Ridge [Wed, 28 Sep 2022 19:57:56 +0000 (09:57 -1000)]
[clangd] Avoid recursion on UnresolvedUsingValueDecl during semantic highlighting
Fixes https://github.com/clangd/clangd/issues/1313
Differential Revision: https://reviews.llvm.org/D134827
Jun Sha (Joshua) [Sun, 19 Mar 2023 06:37:46 +0000 (23:37 -0700)]
[Sanitizer] [Scudo] Add riscv64 support for scudo
Enable Scudo on RISCV64 on both clang side and compiler-rt side.
Reviewers: cryptoad, eugenis, vitalybuka, luismarques, hiraditya
Reviewed By: vitalybuka, luismarques
Differential Revision: https://reviews.llvm.org/D137397
Alexis Murzeau [Sun, 19 Mar 2023 06:22:14 +0000 (06:22 +0000)]
[clang-tidy] readability-identifier-naming: fix hungarian enum prefix in C
When checking a C file, enum tags are of type `int` instead of the enum
type as in C++.
So the checker was using `i` as the prefix for enum tags instead of main
letters of the enum type name (for example `rt` for `enum REV_TYPE`).
This commit fixes this divergence and makes the behavior the same between
C and C++ files.
For example, `enum REV_TYPE { rtRevValid };` won't be reported as badly
named when in a C file. Previously, it would have proposed a rename to
`iRevValid`.
This commit also add a file to test the hungarian notation checker with C
files.
The test file was made from identifier-naming-hungarian-notation.cpp
with C++-only features removed.
Reviewed By: carlosgalvezp
Differential Revision: https://reviews.llvm.org/D144912
lizhijin [Sun, 19 Mar 2023 05:43:01 +0000 (13:43 +0800)]
[SVE] Add patterns for shift intrinsics with FalseLanesZero mode
This patch adds patterns to reduce redundant mov and sel instructions
for shift intrinsics with FalseLanesZero mode, when
FeatureExperimentalZeroingPseudosis supported.
For example, before:
mov z1.b, #0
sel z0.b, p0, z0.b, z1.b
asr z0.b, p0/m, z0.b, #7
After:
movprfx z0.b, p0/z, z0.b
asr z0.b, p0/m, z0.b, #7
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D145551
Lang Hames [Sun, 19 Mar 2023 05:34:07 +0000 (22:34 -0700)]
[JITLink][ELF] Don't skip debug info sections by default.
By default ELFLinkGraphBuilder will now create LinkGraph sections with NoAlloc
lifetime for debug info sections in the original object. Debug sections are not
kept alive by default, and will be dead-stripped unless some plugin marks them
as live in the pre-prune phase.
Lang Hames [Sun, 19 Mar 2023 03:00:03 +0000 (20:00 -0700)]
[JITLink][ELF][x86-64] Add support for R_X86_64_32 relocation.
Nico Weber [Sat, 18 Mar 2023 21:19:41 +0000 (22:19 +0100)]
[gn] Fix libunwind build on mac after
203b6f31bb7
See #61501 and https://reviews.llvm.org/D143637#4204277 for details.
LLVM GN Syncbot [Sat, 18 Mar 2023 20:31:42 +0000 (20:31 +0000)]
[gn build] Port
f7efcaca77d8
LLVM GN Syncbot [Sat, 18 Mar 2023 20:31:41 +0000 (20:31 +0000)]
[gn build] Port
787fbad57e05
LLVM GN Syncbot [Sat, 18 Mar 2023 20:31:40 +0000 (20:31 +0000)]
[gn build] Port
65f7ebe72e4c
Florian Hahn [Sat, 18 Mar 2023 20:30:48 +0000 (20:30 +0000)]
[VPlan] Move createReplicateRegion out of VPRecipeBuilder.h. (NFC)
The function doesn't use anything from VPRecipeBuilder, so move the
definition to where it is actually used and turn it into a simple static
function.
It also makes the VPRecipeBuilder argument for createAndOptimizeReplicateRegions
unnecessary.
Wael Yehia [Sat, 18 Mar 2023 02:50:48 +0000 (22:50 -0400)]
[NFC][AIX][PGO] Create AIX specific compiler-rt profile file.
Louis Dionne [Sat, 18 Mar 2023 16:10:31 +0000 (12:10 -0400)]
[libc++][Apple] Make sure to set the LIBCXX_LIBRARY_VERSION when building for Apple
Differential Revision: https://reviews.llvm.org/D146361
Louis Dionne [Sat, 18 Mar 2023 15:57:24 +0000 (11:57 -0400)]
[libc++][Apple] Make sure we install libc++experimental.a
Differential Revision: https://reviews.llvm.org/D146360
Nico Weber [Sat, 18 Mar 2023 20:19:27 +0000 (21:19 +0100)]
[gn] merge
e46d8a731535 more
Nico Weber [Sat, 18 Mar 2023 20:17:49 +0000 (21:17 +0100)]
Mark de Wever [Sat, 18 Mar 2023 19:32:43 +0000 (20:32 +0100)]
Revert "Reland "[CMake] Bumps minimum version to 3.20.0.""
This reverts commit
a72165e5df59032cdd54dcb18155f2630d73abd1.
Some buildbots have not been updated yet.
Augusto Noronha [Thu, 16 Mar 2023 22:51:34 +0000 (15:51 -0700)]
[lldb] Introduce SymbolFile::ParseAllLanguages
SymbolFile::ParseAllLanguages allows collecting the languages of the
extra compile units a SymbolFileDWARFDebugMap may have, which can't
be accessed otherwise. For every other symbol file type, it should
behave exactly the same as ParseLanguage.
rdar://
97610458
Differential Revision: https://reviews.llvm.org/D146265
Florian Hahn [Sat, 18 Mar 2023 17:17:07 +0000 (17:17 +0000)]
[LV] Restructure code creating replicate region (NFC).
Re-order recipe and block creation to be in order, as suggested
post-commit for
2db71c9851e5.