- Oct 10, 2022
-
-
Lang Hames authored
Now that ExecutionSession objects alway have ExecutorProcessControl (EPC) objects attached we can use EPCEHFrameRegistrar by default, rather than InProcessEHFrameRegistrar. This allows LLJIT to work out-of-the-box with remote EPCs on platforms that use JITLink, without requiring a custom ObjectLinkingLayerCreator to override the eh-frame registrar.
-
Craig Topper authored
Zve32* does not support SEW=64. Or any LMUL smaller than 32/SEW. Reviewed By: eopXD Differential Revision: https://reviews.llvm.org/D135519
-
Kai Luo authored
Fixed error ``` compiler-rt/lib/tsan/go/buildgo.sh: 62: [: unexpected operator ``` Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D135537
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mingming Liu authored
[AArch64] Swap 'lsl(val1,small-shmt)' to right hand side for AND(lsl(val1,small-shmt), lsl(val2,large-shmt)) On many aarch64 processors (Cortex A78, Neoverse N1/N2/V1, etc), ADD with LSL shift (shift-amount <= 4) has smaller latency and higher throughput than ADD with larger shift (shift-amunt > 4). This is at least no-op for the rest of the processors. Differential Revision: https://reviews.llvm.org/D135208
-
Mingming Liu authored
[AArch64][NFC] Precommit test case to show sub-optimal codegen for add(lsl(val1,small-shift), lsl(val2,large-shift)). Ideally, add operand with smaller shift should be RHS. In that way, smaller-shift is folded into ADD. - Also add another test case when 'lsl(val1,small-shift)' has one than one use, to show the (planned) optimization won't regress this case.
-
Florian Hahn authored
The current decomposition for GEPs did not correctly handle cases where GEPs access different source types. Adjust the constraints by including the indexed type-size as coefficients. Further generalization to allow GEPs with more than one index is a needed general follow-up improvement.
-
Florian Hahn authored
-
- Oct 06, 2022
-
-
luxufan authored
Differential Revision: https://reviews.llvm.org/D135533
-
luxufan authored
If the location ptr to be killed is in no loop and the Function does not have irreducible loops, then we can regard it as loop invariant. Differential Revision: https://reviews.llvm.org/D135369
-
- Oct 09, 2022
-
-
Yeting Kuo authored
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D135365
-
mydeveloperday authored
Fixes: https://github.com/llvm/llvm-project/issues/58217 This change is to remove extraneous and unnecessary ';' from after a function definition, its off by default and carries the same "code modification" warning as some of our other code manipulating changes. Reviewed By: HazardyKnusperkeks, owenpan Differential Revision: https://reviews.llvm.org/D135466
-
Tom Praschan authored
Fixes https://github.com/clangd/clangd/issues/170 This patch actually consists of 2 fixes: 1) Add handling for UsingShadowDecl to canonicalRenameDecl(). This fixes the issue described in https://github.com/clangd/clangd/issues/170. 2) Avoid the "there are multiple symbols under the cursor error" by applying similar logic as in https://reviews.llvm.org/D133664. This also partly fixes https://github.com/clangd/clangd/issues/586. Differential Revision: https://reviews.llvm.org/D135489
-
gonglingqin authored
Differential Revision: https://reviews.llvm.org/D135510
-
Florian Hahn authored
Move common logic shared by callers of getConstraint that use the result to query the constraint system to a new helper getConstraintForSolving. This includes common legality checks (i.e. not an equality constraint, no new variables) and the logic to query the unsigned system if possible for signed predicates.
-
LLVM GN Syncbot authored
-
Hui Xie authored
Differential Revision: https://reviews.llvm.org/D134952
-
Chuanqi Xu authored
unevaluated context Closes https://github.com/llvm/llvm-project/issues/58133 The direct cause for this issue is that the compilation process continues after it found it is in a invalid state. [expr.await]p2 says clearly that the co_await expressions are not allowed to appear in unevaluated context. So we can exit early in this case. It also reduces many redundant diagnostic messages (Such as 'expression with side effects has no effect in an unevaluated context').
-
Ting Wang authored
This is AIX part of update after https://reviews.llvm.org/D117225 Fixed the issue that AIX64 with vector pair enabled saw redundant spill/reload of callee saved vector registers. Based on original patch by: Kai Luo Reviewed By: lkail Differential Revision: https://reviews.llvm.org/D133466
-
WANG Xuerui authored
Otherwise eliminateFrameIndex cannot figure out how to fixup the stack offset with its stateless logic, because there wouldn't be an immediate slot for it to trivially write to, and it may not be easy to transform the surrounding code to make it work. This fixes a fairly common crash when compiling moderately complex code with Clang. Differential Revision: https://reviews.llvm.org/D135251
-
Keith Smiley authored
This option is really only useful for things like debugging https://github.com/llvm/llvm-project/issues/56939, but there are some actual uses of it in Swift's build system as well. Differential Revision: https://reviews.llvm.org/D135528
-
Petr Hosek authored
When in-tree libcxx is selected as the sanitizer C++ ABI, use libcxx-abi-* targets rather than libcxxabi and libunwind directly. Differential Revision: https://reviews.llvm.org/D134855
-
Craig Topper authored
-
Craig Topper authored
-
-
Tatsuyuki Ishi authored
InclusionRewriter on Windows (CRLF line endings) will exercise this in a hot path. Calling memcmp repeatedly would be highly suboptimal for that use case, so give it a specialized path. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D133660
-
Anton Bikineev authored
Generally, with PGO enabled the C++20 likelyhood attributes shall be dropped assuming the profile has a good coverage. However, currently this is not the case for the following code: if (always_false()) [[likely]] { ... } The patch fixes this and drops the attribute, if the parent context was executed in the profile. The patch still preserves the attribute, if the parent context was not executed, e.g. to support the cases when the profile has insufficient coverage. Differential Revision: https://reviews.llvm.org/D134456 -
Simon Pilgrim authored
Phoebe Wang and I are replacing Craig Topper as X86 Code Owners: https://discourse.llvm.org/t/proposed-change-to-x86-code-ownership/65620
-
Florian Hahn authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Fangrui Song authored
See the updated linkonce_resolution_comdat.ll. For a local linkage GV in a non-prevailing COMDAT, it remains defined while its leader has been made available_externally. This violates the COMDAT rule that its members must be retained or discarded as a unit. To fix this, update the regular LTO change D34803 to track local linkage GlobalValues, and port the code to ThinLTO (GlobalAliases are not handled.) Fix https://github.com/llvm/llvm-project/issues/58215: as a size optimization, we place private `__profd_` in a COMDAT with a `__profc_` key. When FuncImport.cpp makes `__profc_` available_externally due to a non-prevailing COMDAT, `__profd_` incorrectly remains private. This change makes the `__profd_` available_externally. ``` cat > c.h <<'eof' extern void bar(); inline __attribute__((noinline)) void foo() {} eof cat > m1.cc <<'eof' #include "c.h" int main() { bar(); foo(); } eof cat > m2.cc <<'eof' #include "c.h" __attribute__((noinline)) void bar() { foo(); } eof clang -O2 -fprofile-generate=./t m1.cc m2.cc -flto -fuse-ld=lld -o t_gen rm -fr t && ./t_gen && llvm-profdata show -function=foo t/default_*.profraw # one _Z3foov clang -O2 -fprofile-generate=./t m1.cc m2.cc -flto=thin -fuse-ld=lld -o t_gen rm -fr t && ./t_gen && llvm-profdata show -function=foo t/default_*.profraw # one _Z3foov ``` Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D135427
-
Craig Topper authored
-
Sam McCall authored
Unlike UsingDecl it doesn't name the UsingShadowDecls it emits, so it doesn't make sense to consider them the same thing. Don't consider the UsingEnumDecl a target when the UsingShadowDecl is referenced. Differential Revision: https://reviews.llvm.org/D135506
-
- Oct 08, 2022
-
-
Florian Hahn authored
Handle the (gep (gep ....), C) case by incrementing the constant coefficient of the inner GEP, if C is a constant.
-
Florian Hahn authored
At this point, we need to have resume values for all inductions. If not, this would result in silent mis-compiles.
-
Florian Hahn authored
-
Sanjay Patel authored
The 1st attempt failed to updated the test checks as expected. Original commit message: sdiv exact X, (1<<ShAmt) --> ashr exact X, ShAmt (if shl is non-negative) https://alive2.llvm.org/ce/z/kB6VF7 It would probably be better to use ValueTracking to replace this and the existing transform above it, but the analysis does not account for the no-wrap properly, and it's not immediately clear to me how to fix it.
-
Sanjay Patel authored
-