- Feb 20, 2023
-
-
Serguei Katkov authored
Since canonicalizeForInvariantConditionInjection is introduced the in loop successor may be the second successor. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D144361
-
Kazu Hirata authored
Note that APInt::isNullValue has been soft-deprecated in favor of APInt::isZero.
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/60775 Previously, we will mark all the declarations in the GMF as not visible to other module units. But this is too strict and the users may meet problems during the template instantiation like the above exampel shows. The patch addresseds the problem.
-
Max Kazantsev authored
Adds support for these SCEVs to cover more cases. Differential Revision: https://reviews.llvm.org/D143259 Reviewed By: dmakogon, fhahn
-
Kazu Hirata authored
-
Craig Topper authored
Adding load and store tests. Addressing post commit feedback.
-
Fangrui Song authored
Following recent changes to remove non-core legacy passes.
-
Alex Brachet authored
-
Alex Brachet authored
Don't include llvm-driver when building for Windows
-
sstwcw authored
New: ``` module mh1 (input var int in1, input var in2, in3, output tagged_st out); endmodule ``` Old: ``` module mh1 (input var int in1, input var in2, in3, output tagged_st out); endmodule ``` `getNextNonComment` was modified to return a non-const pointer because we needed to use it that way in `verilogGroupDecl`. The comment on line 2626 was a typo. We corrected it while modifying the function. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D143825 -
Chuanqi Xu authored
As we discussed before, we should stop supporting std::experimental::coroutine_traits in clang17. Now the clang16 is branched so we can clean them now. All the removed tests have been duplicated before.
-
Kai Luo authored
`include/llvm/CodeGen/TargetGlobalISel.td` no longer exists.
-
Matt Arsenault authored
Provides a small code size savings for some f32 cases.
-
Alex Brachet authored
The MacOS problem has been fixed. Additionally, don't enable the driver build on Windows. We can look into enabling it later if symlinks work better than I think on Windows. Differential Revision: https://reviews.llvm.org/D144287
-
Matt Arsenault authored
We do match source modifiers for f32 typed selects already, but the combiner code was never informed of this. A long time ago the documentation lied and stated that source modifiers don't work for v_cndmask_b32 when they in fact do. We had a bunch fo code operating under the assumption that they don't support source modifiers, so we tried to move fnegs around to work around this. Gets a few small improvements here and there. The main hazard to watch out for is infinite loops in the combiner since we try to move fnegs up and down the DAG. For now, don't fold fneg directly into select. The generic combiner does this for a restricted set of cases when getNegatedExpression obviously shows an improvement for both operands. It turns out to be trickier to avoid infinite looping the combiner in conjunction with pulling out source modifiers, so leave this for a later commit.
-
Amara Emerson authored
This fixes a corner case where we would skip doing an alias check because of a >= vs > bug, due to the presence of a non-aliasing instruction, in this case the load %safeld. Fixes issue #59376
-
Alex Brachet authored
-
Sanjay Patel authored
1 << (cttz X) --> -X & X https://alive2.llvm.org/ce/z/qv3E9e This creates an extra use of the input value, so that's generally not preferred, but there are advantages to this direction: 1. 'negate' and 'and' allow for better analysis than 'cttz'. 2. This is more likely to induce follow-on transforms (in the example from issue #60801, we'll get the decrement pattern). 3. The more basic ALU ops are more likely to result in better codegen across a variety of targets. This won't solve the motivating bugs (see issue #60799) because we do not recognize the redundant icmp+sel, and the x86 backend may not have the pattern-matching to produce the optimal BMI instructions. Differential Revision: https://reviews.llvm.org/D144329
-
Erik Desjardins authored
This reverts commit 37eb9d13. Test failures have been fixed: - ubsan failure fixed by 72eac42f - warn-unsafe-buffer-usage-fixits-local-var-span.cpp fixed by 03cc52df (wasn't related) - test-output-format.ll failure was spurious, build failed at https://lab.llvm.org/buildbot/#/builders/54/builds/3545 (b4431b2d) but passed at https://lab.llvm.org/buildbot/#/builders/54/builds/3546 (5ae99be0) which is before my revert https://github.com/llvm/llvm-project/compare/b4431b2d945b6fc19b1a55ac6ce969a8e06e1e93...5ae99be0377248c74346096dc475af254a3fc799 Original commit message: Depends on https://reviews.llvm.org/D142861. Alternative to https://reviews.llvm.org/D137601. xxHash is much faster than djbHash. This makes a simple Rust test case with a large cons...
-
Florian Hahn authored
This fixes an infinite loop if isa<T>(II->getOperand(1)) is true. Update Base at the top of the loop, before the continue. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D144292
-
Alex Bradbury authored
Support for the unratified 1.0-rc3 specification was introduced in D133443. The specification has since been ratified (in November 2022 according to the recently ratified extensions list <https://wiki.riscv.org/display/HOME/Recently+Ratified+Extensions>. A review of the diff <https://github.com/riscv/riscv-zawrs/compare/V1.0-rc3...main> of the 1.0-rc3 spec vs the current/ratified document shows no changes to the instruction encoding or naming. At one point, a note was added <https://github.com/riscv/riscv-zawrs/commit/e84f42406a7c88eb92452515b2035144a7023a51> indicating Zawrs depends on the Zalrsc extension (not officially specified, but I believe to be just the LR/SC instructions from the A extension). The final text ended up as "The instructions in the Zawrs extension are only useful in conjunction with the LR instructions, which are provided by the A extension, and which we also expect to be provided by a narrower Zalrsc extension in the future." I think it's consistent with this phrasing to not require the A extension for Zawrs, which matches what was implemented. No intrinsics are implemented for Zawrs currently, meaning we don't need to additionally review whether those intrinsics can be considered finalised and ready for exposure to end users. Differential Revision: https://reviews.llvm.org/D143507
-
Craig Topper authored
We can swap operands and use fltq.s and fleq.s. Similar for D and H.
-
Craig Topper authored
-
Kazu Hirata authored
This is for consistency with the C++20-style bit manipulation functions in <bit>.
-
Alex Bradbury authored
Per the psABI, the arch string should be normalised to (amongest other things) always include the full version of each extension in form zfoo1p0. riscv-attributes-place.s didn't conform to this, which is not a problem for the current parsing logic, but this behaviour would change with a patch I'm about to propose. This makes riscv-sttributes-place.s feature a valid arch string, and maintains test coverage for this particular form of invalid arch string by adding it to riscv-attributes.s.
-
David Green authored
This prevents the instructions being invalid for the subtarget.
-
Florian Hahn authored
At the moment, properlyDominates(A, A) can return true via LocalComesBefore. Add an early exit to ensure it returns false if A == B. Note: no test has been added because the existing test suite covers this case already with libc++ with assertions enabled. Fixes https://github.com/llvm/llvm-project/issues/60850.
-
Mehdi Amini authored
This is pure code motion, to ensure that the check if we have a valid llvmModule comes before trying to set option on this module. Differential Revision: https://reviews.llvm.org/D144342
-
- Feb 19, 2023
-
-
Mark de Wever authored
These tests fail in D144331, for the same reason other format tests fail in GCC. This is a resource issue.
-
Carlos Galvez authored
-
Carlos Galvez authored
Re-introduce the patch that was reverted previously. In the first attempt, the checks would not be able to read from the global option, since getLocalOrGlobal only works with string types. Additional logic is needed in order to support both use cases in the transition period. All that logic will be removed when the local options are fully removed. We have a number of checks designed to analyze problems in header files only, for example: bugprone-suspicious-include google-build-namespaces llvm-header-guard misc-definitions-in-header ... All these checks duplicate the same logic and options to determine whether a location is placed in the main source file or in the header. More checks are coming up with similar requirements. Thus, to remove duplication, let's move this option to the top-level configuration of clang-tidy (since it's something all checks should share). Add a deprecation notice for all checks that use the local option, prompting to update to the global option. Differential Revision: https://reviews.llvm.org/D142655
-
DianQK authored
This should fix https://github.com/rust-lang/rust/issues/107681. Return undefined to a noundef return value is undefined. Example: ``` define noundef i32 @test_ret_noundef(i1 %cond) { entry: br i1 %cond, label %bb1, label %bb2 bb1: br label %bb2 bb2: %r = phi i32 [ undef, %entry ], [ 1, %bb1 ] ret i32 %r } ``` Differential Revision: https://reviews.llvm.org/D144319
-
Benjamin Kramer authored
TypeSystemClang.cpp:4855:13: error: enumeration value 'WasmExternRef' not handled in switch [-Werror,-Wswitch]
-
Kristina Bessonova authored
Differential Revision: https://reviews.llvm.org/D144344
-
Joshua Cao authored
-
Vitaly Buka authored
-
NAKAMURA Takumi authored
-
Craig Topper authored
These correspond to islessgreater and it inverse.
-
Fabian authored
Currently, MlirTranslateMain only executes one of the requested translations, and does not error if multiple are specified. This commit enables translations to be chained in the specified order. This makes round-trip tests easier, since existing import/export passes can be reused and no combined round-trip passes have to be registered (example: mlir-translate -serialize-spirv -deserialize-spirv). Additionally, by leveraging TranslateRegistration with file-to-file TranslateFunctions, generic pre- and post-processing can be added before/after conversion to/from MLIR. Reviewed By: lattner, Mogball Differential Revision: https://reviews.llvm.org/D143719
-