- Sep 11, 2023
-
-
Mehdi Amini authored
-
Fangrui Song authored
-
Fangrui Song authored
This matches how a SelectionDAG::getExternalSymbol node is lowered. On x86-32, a function call in -fno-pic code should emit R_386_PC32 (since ebx is not set up). When linked as -shared (problematic!), the generated text relocation will work. Ideally, we should mark IR intrinsics created in CodeGenFunction::EmitBuiltinExpr as dso_local, but the code structure makes it not very feasible. Fix #51078
-
Tianlan Zhou authored
-
Fangrui Song authored
The removal started at https://reviews.llvm.org/D50989 and https://reviews.llvm.org/D75494 removed the Triple support. Without recognizing Darwin triples as Mach-O, we will get assertion error in ToolChains/Darwin.h due to the universal binary mechanism. Fix #47698
-
Billy Laws authored
The ARM64EC ABI requires that struct layouts match between regular x86_64 code and ARM64EC code. Ensure this is always the case by defining the same set of macros as are set when targeting x86_64 but with the addition of `__arm64ec__/_M_ARM64EC` macros that can be used for any ARM64EC specific code. More details can be found here: https://techcommunity.microsoft.com/t5/windows-os-platform-blog/getting-to-know-arm64ec-defines-and-intrinsic-functions/ba-p/2957235
-
Owen Pan authored
-
Fangrui Song authored
Continue the work started at https://reviews.llvm.org/D50989
-
Yingwei Zheng authored
This patch adds missing checks in the function `test_overflow_in_negate_constraint`. Related commit: 0a0181dc
-
Simon Pilgrim authored
Add missing asm comments to reduce a future diff.
-
Yingwei Zheng authored
This patch generalizes the fold of `icmp pred min/max(X, Y), Z` to address the issue https://github.com/llvm/llvm-project/issues/62898. For example, we can fold `smin(X, Y) < Z` into `X < Z` when `Y > Z` is implied by constant folds/invariants/dom conditions. Alive2 (with `--disable-undef-input` due to the limitation of --smt-to=10000): https://alive2.llvm.org/ce/z/rB7qLc You can run the standalone translation validation tool `alive-tv` locally to verify these transformations. ``` alive-tv transforms.ll --smt-to=600000 --exit-on-error ``` Reviewed By: goldstein.w.n Differential Revision: https://reviews.llvm.org/D156238
-
Yingwei Zheng authored
This patch adds some test cases from https://github.com/llvm/llvm-project/issues/62898. As nikic noted in the issue, we should start by implementing a generalization of the fold `smin(X, Y) < Z -> X < Z` when `Y > Z` is implied by constant folds/invariants/dom conditions. ``` define i1 @src(i32 %x, i32 %y, i32 %z) { %cmp = icmp sgt i32 %y, %z br i1 %cmp, label %if, label %end if: %cond = call i32 @llvm.smin.i32(i32 %x, i32 %y) %tobool = icmp slt i32 %cond, %z ret i1 %tobool end: ret i1 false } define i1 @tgt(i32 %x, i32 %y, i32 %z) { %cmp = icmp sgt i32 %y, %z br i1 %cmp, label %if, label %end if: %tobool = icmp slt i32 %x, %z ret i1 %tobool end: ret i1 false } declare i32 @llvm.smin.i32(i32, i32) ``` Alive2: https://alive2.llvm.org/ce/z/dK9vXz This patch also adds some generalized test cases like the above. Reviewed By: goldstein.w.n Differential Revision: https://reviews.llvm.org/D156227
-
Jay Foad authored
This just avoids explicitly passing around common pointers like MRI and TII. NFC.
-
Jan Svoboda authored
This extends 985dacea by XFAILing more tests that started failing after these commits: * 14498a47 * e644f597 * 89bacc0b These failures need to be investigated. Possible cause is D151938.
-
Mark de Wever authored
This has been tested as part of D156609.
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Piotr Zegar authored
Improved bugprone-non-zero-enum-to-bool-conversion check by eliminating false positives resulting from direct usage of bitwise operators.
-
- Sep 10, 2023
-
-
Simon Pilgrim authored
Fixes #65895
-
Yingwei Zheng authored
See also https://reviews.llvm.org/D153148#inline-1535588
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Congcong Cai authored
This reverts commit 31cc069b.
-
Congcong Cai authored
Fixed: https://github.com/llvm/llvm-project/issues/62127 https://reviews.llvm.org/D116203 introduced several compiler builtin equivalents of the unary type traits. In some cases (e.g. template) those builtin will be dependent and need to be mangle. This patch add the check for `u{builtin}I{type}E` to demangle it. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D148465
-
Alex Brachet authored
tzdb is currently broken when cross compiling from non Linux to Linux. Lets just disable it totally in our toolchain for now. We should remove this when #65859 lands.
-
Ignat Loskutov authored
Due to guaranteed copy elision, not only do some nodes get removed from the AST, but also some existing nodes change the source locations they correspond to. Hence, the check works slightly differently in pre-C++17 and C++17-and-later modes in terms of what gets highlighted. Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D158371
-
Piotr Zegar authored
New option added and configured in a way, so types related to std::strong_ordering would be ignored. Fixes: #63478 Reviewed By: ccotter Differential Revision: https://reviews.llvm.org/D158928
-
David Green authored
Some of the 1x vector types are expanded to scalar, but the others that do not require constants looks OK.
-
David Green authored
-
Christian Sigg authored
This is a new attempt of https://reviews.llvm.org/D159481, this time as GitHub PR. `GenericOptionValue::compare()` should return `true` for a match. - `OptionValueBase::compare()` always returns `false` and shouldn't match anything. - `OptionValueCopy::compare()` returns `false` if not `Valid` which corresponds to no match. Also adding some tests.
-
Brad Smith authored
The two flags mean the same thing for the bfd / lld linkers so just use the same flag consistently everywhere.
-
Younan Zhang authored
Closes https://github.com/clangd/clangd/issues/1742 Reviewed By: nridge Differential Revision: https://reviews.llvm.org/D158926
-
Matt Arsenault authored
Currently s_getreg_b32 is missing the possible mode use. Really we need separate pseudos for mode-only accesses, but leave this as a pre-existing issue. https://reviews.llvm.org/D152710
-
Fangrui Song authored
When there are multiple catch-all patterns (i.e. a single `*`), GNU ld and gold select the last pattern. Match their behavior. This change was inspired by a correction made by Michael Kerrisk to a blog post I wrote at https://maskray.me/blog/2020-11-26-all-about-symbol-versioning , following the current lld rules. Note: GNU ld prefers global: patterns to local: patterns, which might seem awkward (https://www.airs.com/blog/archives/300). gold doesn't follow this behavior, and we do not either.
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Alex Brachet authored
This test fails with `CLANG_DEFAULT_CXX_STDLIB=libc++`
-