- Apr 21, 2023
-
-
Craig Topper authored
This adds an option to emit the command line -mattr/-march into the attributes of an object file. This can be useful to get objdump to disassemble instructions that aren't in the base without forcing users to add a .attribute to the assembly file. The binutils assembler does this by default. Similar option exists for ARM. I will wire it to a clang option in another patch. Similar to https://reviews.llvm.org/D31813 Reviewed By: asb, kito-cheng Differential Revision: https://reviews.llvm.org/D148782
-
Craig Topper authored
BitsRecTy objects are uniqued based on size. If the sizes are equal, then the BitsRecTy objects are the same objects. We can use the base class implementation that checks for pointer equality.
-
AdityaK authored
Reviewers: ldionne, philnik, EricWF Reviewed By: EricWF Differential Revision: https://reviews.llvm.org/D147751
-
David Green authored
See D148809
-
Fangrui Song authored
This reverts commit da68d216. This change is correct, but left a `config->threadCount` use that is error-prone and may harm performance when parallel::strategy.compute_thread_count() > 16.
-
Mikhail R. Gadelha authored
This fix a regression introduced by commit 5db12eca Fixes the compilation failure reported by libc-x86_64-debian-gcc-fullbuild-dbg: .../libc/src/__support/UInt.h:26:31: note: ‘struct __llvm_libc::cpp::UInt<192>’ has no user-provided default constructor 26 | template <size_t Bits> struct UInt { | ^~~~ .../libc/src/__support/UInt.h:38:13: note: constructor is not user-provided because it is explicitly defaulted in the class body 38 | constexpr UInt() = default;
-
Mahesh Ravishankar authored
The utility functions takes a region and makes it isolated from above by appending to the entry block arguments that represent the captured values and replacing all uses of the captured values within the region with the newly added arguments. The captures values are returned. The utility function also takes an optional callback that allows cloning operations that define the captured values into the region during the process of making it isolated from above. The cloned value is no longer a captured values. The operands of the operation are then captured values. This is done transitively allow cloning of a DAG of operations into the region based on the callback. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D148684
-
Alexey Bataev authored
There are 2 problems in the cost estimation for buildvector/gather. 1. If the buildvector/gather node is the same as another one node, need to estimate the cost of this node as 0. 2. The cost of inserting float point register to non-poison vector is not 0, it should not be considered free. Differential Revision: https://reviews.llvm.org/D148801
-
Fangrui Song authored
Fix https://github.com/llvm/llvm-project/issues/62247 D131057 added `bArg` and `BArg` in the `AsLongLong` label in `FormatSpecifier::hasValidLengthModifier`, but missed the `AsLong` label, therefore `%llb` is allowed while `%lb` (e.g. `printf("%lb", (long)10)`) has a spurious warning. Add the missing case labels. Reviewed By: aaron.ballman, enh Differential Revision: https://reviews.llvm.org/D148779
-
Saleem Abdulrasool authored
When building with the 17.5.0 preview toolset for MSVC and building with modules, the definition of _addcarry_u64 and _subborrow_u64 seem to cause issues due to the use of GNU inline semantics. Change the headers to prefer C++ inline semantics for C++ compilation, falling back to GNU inlining semantics for C compilation. This is motivated by https://github.com/microsoft/STL/issues/2520. Differential Revision: https://reviews.llvm.org/D139749 Reviewed By: fsb4000
-
Mikhail R. Gadelha authored
This patch defaults the copy constructor and copy operator so it can be used with __builtin_bit_cast Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D148794
-
- Apr 20, 2023
-
-
Florian Hahn authored
Extra tests discussed in D147322.
-
Florian Hahn authored
Extra tests discussed in D147322.
-
Nikita Popov authored
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D148772
-
Tom Stellard authored
There is a bug in the package tree of on the default images that causes some dependencies not to be found. Running apt-get gets us the latest package lists rather than relying on the default lists in the GitHub Runner imgae, which can be up to a week old. Running apt-get update before intstalling packages is also recommended in the official github documentation: https://docs.github.com/en/actions/using-github-hosted-runners/customizing-github-hosted-runners#installing-software-on-ubuntu-runners Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D148741
-
Florian Hahn authored
Use SubOverflow to avoid signed integer overflow when combining coefficients. Fixes #62226.
-
Momchil Velikov authored
This reverts commit 0827e2fa. Failing buildbot, perhaps due to `-std=c++20`.
-
Zarko Todorovski authored
Instrumented profiling now works on AIX and there is no dependency on LTO for PGO. Remove the error. Reviewed By: qiongsiwu1 Differential Revision: https://reviews.llvm.org/D148177
-
Kristof Beyls authored
See https://github.com/llvm/llvm-project/issues/61830 Speculative Load Hardening (SLH) requires that conditional branches are implemented using B.cc branches, not using {TC}B{N}Z branches. Stack tagging was expanding one of the pseudo instructions it uses to cbnz. This commit changes that to use b.ne instead. Note that the added regression test was added to settag.ll rather than speculation-hardening.ll. The speculation-hardening.ll tests also check that all tests in the file work with global-isel. It seems that stack tagging does not work yet with global-isel. Therefore, testing the combination of stack tagging and SLH hard to be added to a test file that doesn't test global-isel, i.e. settag.ll Differential Revision: https://reviews.llvm.org/D148508
-
Momchil Velikov authored
`AArch64TargetLowering::isLegalAddressingMode` has a number of defects, including accepting an addressing mode which consists of only an immediate operand, or not checking the offset range for an addressing mode in the form `1*ScaledReg + Offs`. This patch fixes the above issues. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D143895 Change-Id: I756fa21941844ded44f082ac7eea4391219f9851
-
Mathieu Fehr authored
This patch add support for loading IRDL dialects at runtime with `mlir-opt`. Given the following `dialect.irdl` file: ```mlir module { irdl.dialect @cmath { irdl.type @complex { %0 = irdl.is f32 %1 = irdl.is f64 %2 = irdl.any_of(%0, %1) irdl.parameters(%2) } irdl.operation @norm { %0 = irdl.any %1 = irdl.parametric @complex<%0> irdl.operands(%1) irdl.results(%0) } } ``` the IRDL file can be loaded with the `mlir-opt --irdl-file=dialect.irdl` command, and the following file can then be parsed: ```mlir func.func @conorm(%p: !cmath.complex<f32>, %q: !cmath.complex<f32>) -> f32 { %norm_p = "cmath.norm"(%p) : (!cmath.complex<f32>) -> f32 %norm_q = "cmath.norm"(%q) : (!cmath.complex<f32>) -> f32 %pq = arith.mulf %norm_p, %norm_q : f32 return %pq : f32 } ``` To minimize the size of this patch, the operation, attribute, and type verifier are all always returning `success()`. Depends on D144692 Reviewed By: rriddle, Mogball, mehdi_amini Differential Revision: https://reviews.llvm.org/D144693 -
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D148803
-
LLVM GN Syncbot authored
-
Aaron Ballman authored
We were failing to strip off atomic qualification when forming the cast destination type, but properly stripping off cvr qualification. Now we accept atomic, qualified, or unqualified destination types. Note: the semantics of the cast still drop the qualifier, so such a cast does not result in an atomic rvalue. Fixes https://github.com/llvm/llvm-project/issues/39596
-
Matt Arsenault authored
A bitcast needs to be inserted back to the original type. Just skip the multiple use case for a safer quick fix. Handling the multiple use case seems to be beneficial in some but not all cases.
-
OCHyams authored
See https://discourse.llvm.org/t/rfc-enable-assignment-tracking/69399 This sets the -Xclang -fexperimental-assignment-tracking flag to the value enabled which means it will be enabled so long as none of the following are true: it's an LTO build, LLDB debugger tuning has been specified, or it's an O0 build (no work is done in any case if -g is not specified or -gmlt is used). This reverts commit a65ca454 which reverts https://reviews.llvm.org/D146987
-
Nikolas Klauser authored
Reviewed By: #libc, ldionne Spies: arichardson, libcxx-commits Differential Revision: https://reviews.llvm.org/D148468
-
zhangyi1357 authored
This commit is about clangd's type name hint length limit. The past behavior was 32 characters fixed limit. It is now configurable. Projects can now add the following config fragment to their .clangd: ``` InlayHints: TypeNameLimit: 34 ``` Ref: [[ https://github.com/clangd/clangd/issues/1357 | Make the type hint length limit configurable ]] Reviewed By: hokein Differential Revision: https://reviews.llvm.org/D147395
-
OCHyams authored
The out-param vector from findDbgValues and findDbgUsers should not include duplicates, which is possible if the debug intrinsic uses the value multiple times. This filter is already in place for multiple uses in a `DIArgLists`; extend it to cover dbg.assigns too because a Value may be used in both the address and value components. Additionally, refactor the duplicated functionality between findDbgValues and FindDbgUsers into a new function findDbgIntrinsics. Reviewed By: jmorse, StephenTozer Differential Revision: https://reviews.llvm.org/D148788
-
Nikita Popov authored
For binary ops explicitly list all supported ops, as it's no longer all of them.
-
Nikita Popov authored
This reverts commit 85c649bc. Has been causing test failures in OrcV2Examples for the past few days.
-
Nikita Popov authored
This exposed another miscompile in GVN, which was fixed by 20e9b31f. ----- After D141386, violation of nonnull, range and align metadata results in poison rather than immediate undefined behavior, which means that these are now safe to retain when speculating. We only need to remove UB-implying metadata like noundef. This is done by adding a dropUBImplyingAttrsAndMetadata() helper, which lists the metadata which is known safe to retain on speculation. Differential Revision: https://reviews.llvm.org/D146629
-
Andrew Gozillon authored
Fir.GlobalOp's currently do not respect attributes that are applied to them, this change will do two things: - Allow lowering of arbitrary attributes applied to Fir.GlobalOp's to LLVMGlobalOp's during CodeGen - Allow printing and parsing of arbitrarily applied attributes This allows applying other dialects attributes (or other fir attributes) to fir.GlobalOps on the fly and have them exist in the resulting LLVM dialect IR or FIR IR. Reviewer: jeanPerier Differential Revision: https://reviews.llvm.org/D148352
-
Aaron Ballman authored
The relevant language rule from C11 is 6.5.16.1p1: "the left operand is an atomic, qualified, or unqualified pointer, and the right is a null pointer constant; or". We correctly handled qualified or unqualified pointer types, but failed to handle atomic-qualified pointer types. Now we look through the atomic qualification before testing the constraint requirements. Fixes https://github.com/llvm/llvm-project/issues/49563 Differential Revision: https://reviews.llvm.org/D148730
-
Louis Dionne authored
For the assert.FOO.pass.cpp test, we should be passing _LIBCPP_ENABLE_ASSERTIONS=1 for consistency, even though -D_LIBCPP_ENABLE_ASSERTIONS is equivalent. For the other test, we shouldn't be forcing assertions to be enabled, since we already have a CI job that enables assertions by default and will do the right thing. Differential Revision: https://reviews.llvm.org/D148736
-
Guillaume Chatelet authored
-
Tobias Gysi authored
In particular, do not drop all access groups of a loop annotation if one of them is unused. This change makes the access group import robust against stale access group references in loop metadata. Reviewed By: Dinistro Differential Revision: https://reviews.llvm.org/D148791
-
Owen Pan authored
Fixes #62228. Fixes #62229. Differential Revision: https://reviews.llvm.org/D148777
-