- Jun 10, 2024
-
-
Krzysztof Parzyszek authored
The categories are primarily meant for OpenMP, where the spec assigns a category to each directive. It's one of declarative, executable, informational, meta, subsidiary, and utility. These will be used in clang to avoid listing directives belonging to certain categories by hand. --------- Co-authored-by:Valentin Clement (バレンタイン クレメン) <clementval@gmail.com>
-
Alexandros Lamprineas authored
The dependency expansion step which was introduced by FMV has been erroneously used for non-FMV features, for example when parsing the target attribute. The PR #93695 has rectified most of the tests which were relying on dependency expansion of target features specified on the -cc1 command line. In this patch I am decoupling the dependency expansion of features specified on the target attribute from FMV. To do that first I am expanding FMV dependencies before passing the list of target features to initFeatureMap(). Similarly when parsing the target attribute I am reconstructing an ExtensionSet from the list of target features which was created during the command line option parsing. The attribute parsing may toggle bits of that ExtensionSet and at the end it is converted to a list of target features. Those are passed to initFeatureMap(), which no longer requires an override. A side effect of this refactoring is that features specified on the target_version attribute now supersede the command line options, which is what should be happening in the first place.
-
OverMighty authored
See Buildbot failure: https://lab.llvm.org/buildbot/#/builders/138/builds/67428.
-
Andreas Jonson authored
There is no test for this code and it also do not change the result of https://github.com/dtcxzyw/llvm-opt-benchmark when I run it locally. I have not been able to make a test for this and do not know how to handle the range attribute for this so maybe it shall be removed?
-
OverMighty authored
Part of #93566.
-
Jie Fu authored
/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp:653:13: error: unused variable 'PGMRSrc3' [-Werror,-Wunused-variable] int64_t PGMRSrc3; ^ 1 error generated. -
paperchalice authored
`LLVM_ENABLE_ABI_BREAKING_CHECKS` is always defined: https://github.com/llvm/llvm-project/blob/72c901f5e59477e568b1b04dae9de753b9d1f6f3/llvm/include/llvm/Config/abi-breaking.h.cmake#L16C2-L16C15 It uses `cmakedefine01` rather than `cmakedefine`, so `LLVM_ENABLE_ABI_BREAKING_CHECKS` is always defined, so the preprocessed code is probably not what the author wanted.
-
Stephen Tozer authored
The recently landed commit c5aeca73 causes debug records to be used by default; while this mostly has no direct effect on output, one side effect is that intrinsics are deleted and recreated in memory, which can change certain properties. This broke a test that expected `tail` to be set on some debug intrinsics; as this property has no effect on debug intrinsics, this patch removes the expectation. Committed without review due to being a trivial test update; if this needs discussion, see review: https://github.com/llvm/llvm-project/pull/89799
-
Florian Hahn authored
Add extra test coverage to ensure decisions do not change when transitioning to a VPlan-based cost model.
-
Stephen Tozer authored
Reapplies commit 91446e2a, which was reverted due to a downstream error, discussed on the pull request. The error could not be reproduced upstream, and cannot be reproduced downstream as-of current main, so until the error can be confirmed to still exist this patch should return. This reverts commit 23f8fac7.
-
c8ef authored
Context: https://github.com/llvm/llvm-project/pull/94568/files#r1631349423 - Reintroduce the RefinePositionToZero path in the unittest. - Adjust some inline function argument hints to match the same style.
-
Simon Camphausen authored
-
Fabio D'Urso authored
This reverts commit 760d880e. It broke https://lab.llvm.org/buildbot/#/builders/169/builds/32309
-
Janek van Oirschot authored
Eliminates assumption that MCExpr comments/remarks being emitted are always resolvable
-
Jay Foad authored
They have been superseded by llvm.amdgcn.raw.buffer.* and llvm.amdgcn.struct.buffer.*.
-
Benjamin Maxwell authored
This adds a new option `-enable-arm-streaming=if-contains-scalable-vectors`, which only applies the selected streaming/ZA modes if the function contains scalable vector types. As a NFC this patch also removes the `only-` prefix from the `if-required-by-ops` mode.
-
Stephen Tozer authored
CGDebugInfo::EmitPseudoVariable currently uses detailed logic to exactly collect llvm.dbg.declare users of an alloca. This patch replaces this with an LLVM function for finding debug declares intrinsics and also adds the same for debug records, simplifying the code and adding record support. No tests added in this commit because it is NFC for intrinsics, and there is no way to make clang emit records directly yet - one of the existing tests however will switch to covering debug records once https://github.com/llvm/llvm-project/pull/89799 relands.
-
Gil Rapaport authored
Remove the copy into fresh variables done when lowering scf.for into emitc.for and use the variables carrying the init and iter values as the loop's results.
-
David Green authored
-
Mark de Wever authored
Implements parts of: - P0355 Extending chrono to Calendars and Time Zones
-
Tom Eccles authored
Co-authored-by:Andrew Gozillon <Andrew.Gozillon@amd.com>
-
Jay Foad authored
Exit early if known bits have a conflict. This gives me a ~15% speed up when running this in my Release+Asserts build: $ unittests/Support/SupportTests --gtest_filter=KnownBitsTest.*Exhaustive
-
Oleksandr T authored
Fixes #92583
-
Tom Eccles authored
Use tablegen to automatically create the pass constructor. The purpose of this pass is to add attributes to functions, so it doesn't need to work on other top level operations.
-
jeanPerier authored
The hlfir::Entity to fir::ExtendedValue conversion usually uses the "fir base" output of hlfir.declare (which is the same as the input) to avoid introducing temporary descriptors for the sole purpose of introducing updating lower bound information. This is possible because local lower bounds, if any, are tracked in a vector inside the fir::ExtendedValue. With assumed-ranks, the lower bounds cannot be tracked inside the fir::ExtendedValue vector (their numbers is unknown at compile time). Hence, the fir.box/fir.class used in fir::ExtendedValue in lowering must always contain accurate local lower bound information.
-
Jay Foad authored
-
Clement Courbet authored
…and operators that have non-const overloads. This allows `unnecessary-copy-initialization` to warn on more cases. The common case is a class with a a set of const/non-sconst overloads (e.g. std::vector::operator[]). ``` void F() { std::vector<Expensive> v; // ... const Expensive e = v[i]; } ``` -
Jay Foad authored
-
Jay Foad authored
Use fast unsigned arithmetic before constructing an APInt. This gives me a ~2x speed up when running this in my Release+Asserts build: $ unittests/Support/SupportTests --gtest_filter=KnownBitsTest.*Exhaustive
-
Dmitry Vasilyev authored
Do not let the compiler gets failed in case the target platform does not support the 'coroutine' C++ features. Just compile without it and let lldb know about missed/unsupported feature.
-
jeanPerier authored
-
Fabio D'Urso authored
-
Orlando Cazalet-Hyams authored
-
Shivam Gupta authored
This issue is reported by cppcheck as a pointless test in the watch mask check. The `else if` condition is opposite to the previous `if` condition, making the expression always true. Caught by cppcheck - lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp:509:25: style: Expression is always true because 'else if' condition is opposite to previous condition at line 505. [multiCondition] Fix #91223
-
Shivam Gupta authored
The `else if` condition for checking `m_compression_type` is redundant as it matches with a previous `if` condition, making the expression always false. Reported by cppcheck as a possible cut-and-paste error. Caught by cppcheck - lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp:543:35: style: Expression is always false because 'else if' condition matches previous condition at line 535. [multiCondition] Fix #91222
-
jeanPerier authored
Allocate result statically on the stack (using max rank) and use the runtime to fill it in correctly.
-
Orlando Cazalet-Hyams authored
Add `LLVMPositionBuilderBeforeDbgRecords` and `LLVMPositionBuilderBeforeInstrAndDbgRecords` to `llvm/include/llvm-c/Core.h` which behave the same as `LLVMPositionBuilder` and `LVMPositionBuilderBefore` except that the position is set before debug records attached to the target instruction (the existing functions set the insertion point to after any attached debug records). More info on debug records and the migration towards using them can be found here: https://llvm.org/docs/RemoveDIsDebugInfo.html The distinction is important in some situations. An important example is when inserting a phi before another instruction which has debug records attached to it (these come "before" the instruction). Inserting before the instruction but after the debug records would result in having debug records before a phi, which is illegal. That results in an assertion failure: `llvm/lib/IR/Instruction.cpp:166: Assertion '!isa<PHINode>(this) && "Inserting PHI after debug-records!"' failed.` In llvm (C++) we've added bit to instruction iterators that carries around the extra information. Adding dedicated functions seemed like the least invasive and least suprising way to update the C API. Update llvm/tools/llvm-c-test/debuginfo.c to test this functionality. Update the OCaml bindings, the migration docs and release notes.
-
Balázs Kéri authored
The checker is made more exact (only pointer into array is allowed, check array index) and more tests are added.
-
Timm Bäder authored
-
Nikita Popov authored
Reapply after https://github.com/llvm/llvm-project/pull/93956, which changed clang array initialization codegen to avoid size regressions for unoptimized builds. ----- This fold is subtly incorrect, because DL-unaware constant folding does not know the correct index type to use, and just performs the addition in the type that happens to already be there. This is incorrect, since sext(X)+sext(Y) is generally not the same as sext(X+Y). See the `@constexpr_gep_of_gep_with_narrow_type()` for a miscompile with the current implementation. One could try to restrict the fold to cases where no overflow occurs, but I'm not bothering with that here, because the DL-aware constant folding will take care of this anyway. I've only kept the straightforward zero-index case, where we just concatenate two GEPs.
-