- Feb 19, 2023
-
-
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
-
Craig Topper authored
Instead of special casing Zfa in the custom inserters, select the correct instructions during isel. BuildPairF64 we can do with pattern, but SplitF64 requires custom selection due to the two destinations. If we didn't need SplitF64 without Zfa, I would have an extract low and extract high ISD opcode for Zfa to avoid that issue.
-
Juneyoung Lee authored
Given this transformation: X % Y -> X - (X / Y) * Y This patch strips off the poison-generating flag of X / Y such as exact, because it may make the optimized form result poison whereas X % Y does not. The issue was reported here: https://github.com/llvm/llvm-project/issues/60748 Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D144333
-
Juneyoung Lee authored
-
Michael Kirk authored
-
Vitaly Buka authored
"unsigned long" can be 8 bytes, but the code assumes 4. This this the real root cause D122215 was reverted. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D144316
-
David Green authored
Given concat(zip1(a, b), zip2(a, b)), we can convert that to a 128bit zip1(a, b) if we widen a and b out first. Fixes #54226 Differential Revision: https://reviews.llvm.org/D121088
-
Noah Goldstein authored
Add cases for the following ops: - 0-X -- https://alive2.llvm.org/ce/z/6C75Li - bitreverse(X) -- https://alive2.llvm.org/ce/z/SGG1q9 - bswap(X) -- https://alive2.llvm.org/ce/z/p7pzwh - ctpop(X) -- https://alive2.llvm.org/ce/z/c5y3BC - abs(X) -- https://alive2.llvm.org/ce/z/yxXGz_ https://alive2.llvm.org/ce/z/rSRg4K - uadd_sat(X, Y) -- https://alive2.llvm.org/ce/z/Zw-y4W https://alive2.llvm.org/ce/z/2NRqRz https://alive2.llvm.org/ce/z/M1OpF8 Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D142828 -
Noah Goldstein authored
Add cases for the following ops: - 0-X - bitreverse(X) - bswap(X) - ctpop(X) - abs(X) - uadd_sat(X, Y) Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D142827 -
Noah Goldstein authored
[ValueTracking] Add KnownBits patterns `xor(x, x - 1)` and `and(x, -x)` for knowing upper bits to be zero These two BMI pattern will clear the upper bits of result past the first set bit. So if we know a single bit in `x` is set, we know that `results[bitwidth - 1, log2(x) + 1] = 0`. Alive2: blsmsk: https://alive2.llvm.org/ce/z/a397BS blsi: https://alive2.llvm.org/ce/z/tsbQhC Differential Revision: https://reviews.llvm.org/D142271
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D142270
-
Jay Foad authored
Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D142519
-
Cyndy Ishida authored
-
Cyndy Ishida authored
* Deployment Versions for targets * Run Search Paths * Text vs Data Segment attributes to symbols Reviewed By: pete Differential Revision: https://reviews.llvm.org/D144158
-
NAKAMURA Takumi authored
"TableGenBackends.h" has declarations of emitters.
-
NAKAMURA Takumi authored
-
NAKAMURA Takumi authored
-
Amara Emerson authored
The extending loads combine tries to prefer sign-extends folding into loads vs zexts, and in cases where a G_ZEXTLOAD is first used by a G_ZEXT, and then used by a G_SEXT, it would select the G_SEXT even though the load is already zero-extending. Fixes issue #59630
-
Florian Hahn authored
This reverts commit 5356fefc. It looks like Polly still relies on the legacy SCCP pass. Bring it back until the best way forward is determined.
-
Mark de Wever authored
While working on the formatter for the thread::id several minor issues where spotted. This fixes them.
-
Florian Hahn authored
This is part of the optimization pipeline, of which the legacy pass manager version is deprecated. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D144201
-
Mark de Wever authored
-
Kelvin Li authored
This patch adds a subset of PowerPC intrinsics - fmadd, fmsub, fnmadd and fnmsub. Differential Revision: https://reviews.llvm.org/D143951
-
Kristina Bessonova authored
This is similar to ADRP and matches GNU objdump: GNU objdump: ``` 0000000000200100 <_start>: 200100: adr x0, 201000 <_start+0xf00> ``` llvm-objdump (before patch): ``` 0000000000200100 <_start>: 200100: adr x0, #3840 ``` llvm-objdump (after patch): ``` 0000000000200100 <_start>: 200100: adr x0, 0x201000 <_start+0xf00> ``` Reviewed By: simon_tatham, peter.smith Differential Revision: https://reviews.llvm.org/D144079
-
- Feb 18, 2023
-
-
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 } ``` Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D144319
-
Tue Ly authored
-
Sanjay Patel authored
issue #60799 issue #60801
-
Nikolas Klauser authored
Reviewed By: #libc, philnik Spies: Mordante, paulkirth, libcxx-commits Differential Revision: https://reviews.llvm.org/D144307
-
Mark de Wever authored
Depends on D142808 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D143383
-