- Feb 10, 2023
-
-
Sanjay Patel authored
-
Sanjay Patel authored
Tail markings are not propagated if the transform succeeds.
-
David Green authored
This seems to cause large regressions in existing code, as much as 75% slower (4x the time taken). Small always inline functions seem to be used a lot in the cmsis-dsp library. I would add a phase ordering test to show the problems, but one already exists! The llvm/test/Transforms/PhaseOrdering/ARM/arm_mult_q15.ll was just changed by removing alwaysinline to hide the problems that existed. This reverts commit cae033dc. This reverts commit 8e33c41e.
-
Juan Manuel MARTINEZ CAAMAÑO authored
Reviewed By: scott.linder Differential Revision: https://reviews.llvm.org/D142453
-
Benjamin Maxwell authored
This fixes a few places where the addrx3 and strx3 forms were missed. Previously this meant if one of these forms appeared somewhere various errors could occur. This now also adds an extra test case for the addrx3 form (which previously failed). Differential Revision: https://reviews.llvm.org/D143488
-
Denis Fatkulin authored
The refactoring !!Move function body to out-of-line!! produces incorrect code for methods of unnamed classes. For this simple example // foo.h struct Foo { struct { void f^oo() {} } Bar; }; the refactoring generates code: // foo.cpp void Foo::(unnamed struct at D:\test\foo.h:2:3)foo() {} Outplace definition for methods of unnamed classes is meaningless. The patch disables it. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D143638 -
Tobias Gysi authored
The revision introduces operation attributes to store tbaa metadata on load and store operations rather than relying using dialect attributes. At the same time, the change also ensures the provided getters and setters instead are used instead of a string based lookup. The latter is done for the tbaa, access groups, and alias scope attributes. The goal of this change is to ensure the metadata attributes are only placed on operations that have the corresponding operation attributes. This is imported since only these operations later on translate these attributes to LLVM IR. Dialect attributes placed on other operations are lost during the translation. Reviewed By: vzakhari, Dinistro Differential Revision: https://reviews.llvm.org/D143654
-
Joseph Huber authored
The function clang_target_link_libraries must only be used with real Clang libraries; with CLANG_LINK_CLANG_DYLIB, it will instead link in clang-cpp. We must use the standard CMake target_link_libraries for the HSA library.
-
v1nh1shungry authored
``` void foobar(int); int main() { foobar(1 + 2); ^ } ``` Currently the CalleeArgInfo will be "Passed by reference", which should be "Passed by value". Fixes https://github.com/clangd/clangd/issues/1467 Differential Revision: https://reviews.llvm.org/D142014 -
LLVM GN Syncbot authored
-
Simon Pilgrim authored
This also requires us to constant fold vXi1 concat_vector nodes
-
Guillaume Chatelet authored
Let's make sure that we only accept boolean expressions when using likely/unlikely. Differential Revision: https://reviews.llvm.org/D143732
-
Nico Weber authored
-
OCHyams authored
Without this patch `getDerefOffsetInBytes` incorrectly always returns `std::nullopt` for expressions with fragments due to an off-by-one error with fragment element indices. Reviewed By: StephenTozer Differential Revision: https://reviews.llvm.org/D143567
-
Christian Ulmann authored
This commit adds support for the "llvm.loop.isvectorized" metadata and ensures that the unroll followups match llvm's naming. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D143730
-
Tobias Hieta authored
-
Tobias Hieta authored
Adds a bash script that syncs llvm/llvm-project and llvm/llvm-project-release-prs. This should run on pushes to any of the repositories release branches. I will follow this up with a change to the github actions to run this script. This breaks out the sync script from: https://reviews.llvm.org/D133476 so we can keep them separate. Reviewed By: kwk Differential Revision: https://reviews.llvm.org/D142726
-
Tobias Hieta authored
clang-cl doesn't support -dumpmachine directly, so we need to preface it with /clang: in order to get this probing function to work. This is needed in order to run cmake directly on the runtimes directory. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D143557
-
Job Noorman authored
As suggested by @asb [here](https://reviews.llvm.org/D143570#4112877), we need tests for `.attribute stack_align`. This patch simply verifies a stack alignment of 16 is emitted for any combination of currently supported base ISA and extensions. Reviewed By: asb, kito-cheng Differential Revision: https://reviews.llvm.org/D143639
-
Sanjay Patel authored
Similar to 62a0a1b9 - We have pow math intrinsics in IR, but no ldexp intrinsics to handle vector types. A patch for that was proposed in D14327, but it was not completed. Issue #60605
-
Frederic Cambus authored
Similar to D110763.
-
Sanjay Patel authored
We have exp2 math intrinsics in IR, but no ldexp intrinsics to handle vector types. A patch for that was proposed in D14327, but it was not completed. Issue #60605
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Tim Northover authored
When working out whether we can see a compressible jump-table pattern during ConstantIslands, we were stopping when we saw a debug instruction. Instead it's better to keep iterating backwards to the first real instruction. https://reviews.llvm.org/D142019
-
Ingo Müller authored
The current bufferization on function boundaries works on `func.func` and any call op implementing `CallOpInterface`. Then, an error is thrown if there is a `CallOpInterface` op that is not `func.call`. This is unnecessary and breaks the pass whenever such an op occurs (such as `llvm.call`). This PR simply restricts the handling of call ops to `func.call`. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D143724
-
Guillaume Chatelet authored
Tested with `bazelisk-linux-amd64 query //... + @llvm-project//... | xargs bazelisk-linux-amd64 test --config=ci --features=layering_check`
-
LiaoChunyu authored
-
Ivan Kosarev authored
Prevents potential matching of literal offsets to non-literal operands. Reviewed By: dp Differential Revision: https://reviews.llvm.org/D142194
-
Yingchi Long authored
-
Max Kazantsev authored
-
Max Kazantsev authored
-
Marco Elver authored
Windows paths confuse the regular expression. Just use the test source name directly. Fixes: 421215b9 ("[SanitizerBinaryMetadata] Support ignore list")
-
Dominik Adamski authored
Currently default simd alignment is defined by Clang specific TargetInfo class. This class cannot be reused for LLVM Flang. That's why default simd alignment calculation has been moved to OMPIRBuilder which is common for Flang and Clang. Previous attempt: https://reviews.llvm.org/D138496 was wrong because the default alignment depended on the number of built LLVM targets. If we wanted to calculate the default alignment for PPC and we hadn't specified PPC LLVM target to build, then we would get 0 as the alignment because OMPIRBuilder couldn't create PPCTargetMachine object and it returned 0 as the default value. If PPC LLVM target had been built earlier, then OMPIRBuilder could have created PPCTargetMachine object and it would have returned 128. Differential Revision: https://reviews.llvm.org/D141910 Reviewed By: jdoerfert
-
Dmitry Makogon authored
This effectively reverts 5c38c6a3 and 4f772b09. A recently introduced LazyValueInfo::getConstantRangeAtUse returns incorrect ranges for values in certain cases. One such example is described in PR60629. The issue has something to do with traversing PHI uses of a value transitively. As nikic pointed out, we're effectively reasoning about values from different loop iterations. In the faulting test case, CVP made a miscompilation because the calculated range for a shift argument was incorrect. It returned empty-set, however it is clearly not a dead code. CVP then erased the shift instruction because of empty range.
-
Dmitry Makogon authored
This adds a test case from PR60629 which shows a miscompilation by CVP.
-
Archibald Elliott authored
The forwarding header is left in place because of its use in `polly/lib/External/isl/interface/extract_interface.cc`, but I have added a GCC warning about the fact it is deprecated, because it is used in `isl` from where it is included by Polly.
-
OCHyams authored
The assert fires if a store to an alloca with no linked dbg.assigns has linked dbg.assigns. This can happen in the wild due to optimisations dropping the alloca's debug info so we shouldn't assert against it. Reviewed By: jryans Differential Revision: https://reviews.llvm.org/D143153
-
OCHyams authored
AggLoadStoreRewriter splits aggregate loads and stores into scalars (before the alloca is split up). The new stores and debug intrinsics are already wired up correctly - we just need to also delete the dbg.assign that is linked to the split to-be-deleted store too. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D142882
-
Chuanqi Xu authored
Revert "[C++20] [Modules] [ClangScanDeps] Enable to print make-style dependency file within P1689 format (4/4)" This reverts commit e1354763. There is a build failure in m68k-linux testing bot (https://lab.llvm.org/buildbot/#/builders/192/builds/267), which is weird. Revert this for now and look at the reasons.
-