- Oct 03, 2022
-
-
Sanjay Patel authored
The constant is already commuted for an fmul opcode, but this code can be called more directly for fma, so we have to swap for that caller. There are tests in InstSimplify and InstCombine to verify that this works as expected.
-
David Green authored
We don't require arm_neon.h fp16 intrinsics to be treated as macros any more. Differential Revision: https://reviews.llvm.org/D131504
-
David Green authored
Also added global-isel coverage for the same file.
-
Igor Kirillov authored
-
Christian Sigg authored
The stderr to stdout piping results in the two streams being interleaved on Windows. Write stderr to a temp-file instead and run separate FileCheck on it.
-
Tomasz Kamiński authored
D132236 would have introduced regressions in the symbol lifetime handling. However, the testsuite did not catch this, so here we have some tests, which would have break if D132236 had landed. This patch addresses the comment https://reviews.llvm.org/D132236#3753238 Co-authored-by:
Balazs Benics <balazs.benics@sonarsource.com> Reviewed By: martong Differential Revision: https://reviews.llvm.org/D134941
-
Hansang Bae authored
The modifier bits in the schedule type is not used/supported in the static scheduler, so it should be ignored. Differential Revision: https://reviews.llvm.org/D134983
-
chenglin.bi authored
Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D134788
-
Nico Weber authored
Makes things look more similar to the ELF port, and removes some slightly deep nesting. No behavior change. Differential Revision: https://reviews.llvm.org/D135032
-
Alex Zinenko authored
-
Markus Böck authored
The code introduced in https://reviews.llvm.org/D130881 has a bug as it may cause a use-after-free error that can be caught by ASAN. The bug essentially boils down to iterator invalidation of `DenseMap`. The expression `SDEI[To] = I->second;` may cause `SDEI` to grow if `To` is inserted for the very first time. When that happens, all existing iterators to the map are invalidated as their backing storage has been freed. Accessing `I->second` is then invalid and attempts to access freed memory (as `I` is an iterator of `SDEI`). This patch fixes that quite simply by first making a copy of `I->second`, and then moving into the possibly newly inserted KV of the ` DenseMap`. No test attached as I am not sure it is practible to test. Differential revision: https://reviews.llvm.org/D135019
-
Hans Wennborg authored
It casued some runtimes builds to fail with cmake error No target "libcxx-abi-static" see code review. > 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 This reverts commit 414f9b7d.
-
Alex Richardson authored
Round-tripping pointers via size_t is not portable, the C/C++ standards only require this to be valid when using (u)intptr_t. Originally committed to the CHERI fork of LLVM as https://github.com/CTSRD-CHERI/llvm-project/commit/dd01245185ab9e71b70b418bee8f11ea0199e1a3, but I forgot to upstream the change. I rediscovered this issue due to a compiler warning when building libc++ on a Arm Morello system. Reviewed By: #libc, ldionne, philnik Differential Revision: https://reviews.llvm.org/D134363
-
Tobias Gysi authored
The revision enriches the debug locations generated during LLVMIR to MLIR translation with file name information and adds a separate test to exercise the debug location translation. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D135069
-
Rainer Orth authored
As described in Issue #57642, `flang` currently lacks SPARC support in `Optimizer/CodeGen/Target.cpp`, which causes a considerable number of tests to `FAIL` with error: flang/lib/Optimizer/CodeGen/Target.cpp:310: not yet implemented: target not implemented This patch fixes this by following GCC`s documentation of the ABI described in the Issue. Tested on `sparcv9-sun-solaris2.11`. Differential Revision: https://reviews.llvm.org/D133561
-
Petar Avramovic authored
Includes handling of constants with vector type in isKnownNeverNaN. For AMDGPU results in not making fcanonicalize during legalization for vector inputs to fmaxnum_ieee and fminnum_ieee. Does not affect end result since there is a combine that eliminates fcanonicalize. Differential Revision: https://reviews.llvm.org/D88573
-
Bjorn Pettersson authored
Added a helper in TargetLibraryInfo to get size of "size_t" in bits, given a Module reference. The new getSizeTSize helper is using the same strategy as for example isValidProtoForLibFunc has been using in the past, assuming that the size can be derived by asking DataLayout about the size/type of a pointer to int. FortifiedLibCallSimplifier::optimizeStrpCpyChk was changed to use the new getSizeTSize helper instead of assuming that sizeof(size_t) is equal to sizeof(int*) by itself (that is the assumption used in TargetLibraryInfoImpl::getSizeTSize so the result will be the same). Having a common helper for this ensure that we use the same strategy when deriving the size of "size_t" in different parts of the code. One bonus with this refactoring (basing it on Module instead of just DataLayout) is that it makes it easier to override this for a specific target triple, in case the assumption of using getPointerSizeInBits wouldn't hold. Differential Revision: https://reviews.llvm.org/D110585
-
Javier Setoain authored
The only current options to create a supervectorization pass from an external dialect is to use `createSuperVectorizePass` with the virtual vector dimensions as a parameter, but the pass accepts other parameters. This patch enables external users to create a supervectorizer pass exposing all available option. Differential Revision: https://reviews.llvm.org/D134632
-
Jean Perier authored
For TRIM and REPEAT calls, semantics was creating ProcedureDesignators using the length parameter of the arguments. This caused bugs when folding LEN(TRIM(char_explicit_constant_length)). The same did not appeared in folding for REPEAT because it is rewritten at a higher level to LEN(c)*N. This is not only a folding issue since any place (like lowering) may try to use the bad length parameter from the created ProcedureDesignator. Update intrinsic resolution to not copy the length parameter for TRIM and REPEAT. Differential Revision: https://reviews.llvm.org/D134970
-
Max Kazantsev authored
-
Weining Lu authored
The same as SPARC and RISCV. See D119122. Differential Revision: https://reviews.llvm.org/D134932
-
Valentin Clement authored
The raw accessor is going away soon so switch to prefixed accessors in the fircg dialect. The main dialect was switched some months ago. https://github.com/llvm/llvm-project/issues/58090 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D135061
-
Alvin Wong authored
Fixes https://github.com/llvm/llvm-project/issues/49958 Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D135027
-
Alvin Wong authored
Delay-loaded imports creats a load thunk with a symbol name. Before this change, the name uses a `__imp_load_` prefix. On the other hand, normal import uses the `__imp_` prefix for the import address pointer. If an import symbol named `load_func` is imported normally and another named `func` is imported using delay-load, this can cause a symbol name collision. This patch changes delay-load imports to use `__imp___load_` prefix. Because it is less likely for normal imports to have a name starting in `__load_` this should reduce the chance of a name collision. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D134464
-
Alvin Wong authored
Before this, LLD sets OrdinalBase to 0, which deviates from usual practices. This technically would allow LLD to export a symbol using ordinal 0, however LLD never use export ordinal 0, which results in binaries with export tables always having an empty export at ordinal 0. This change makes LLD set OrdinalBase to 1 and not create the empty export with ordinal 0, which makes its behaviour more in line with both the MSVC linker and the GNU linker. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D134140
-
Vitaly Buka authored
-
Vitaly Buka authored
Looks like a part of reverted D131898. This reverts commit cfd5b8f1.
-
Peixin Qiao authored
The real(10) is supported on x86_64. On aarch64, the value of selected_real_kind(16) should be 16 rather than 10 since real(10) is not supported on x86_64. Previously, the real type support check is not target dependent. Support it now through the target triple information. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D134021
-
Christian Sigg authored
-
Matthias Springer authored
One of the test cases matched IR from a subsequent test case. For this reason, the test case appeared to pass while it is actually broken. This change does not fix the test case itself. It will be fixed when we overhaul the buffer deallocation implementation. (The memory leak in this test case is an edge case.) Differential Revision: https://reviews.llvm.org/D135046
-
Amara Emerson authored
Before, the isPreLegalize() query in CombinerHelper only checked for the presence of a LegalizerInfo object. This is problematic when we want to have a combine actually check for legality in a pre-legalizer combine pass, since if we pass a LegalizerInfo object to the constructor it causes the combines to think that we're running *post* legalizer, which isn't true. This change fixes it to instead check an explicit bool that passes to signal whether the pass will be run before or after legalization. Doing so exposed a bug in the extending loads combine, which tried to check for legality of candidate extending loads if LegalizerInfo was present. Since we only ran it pre-legalizer and therefore with a null LegalizerInfo, it never actually ran. Also fixes the legality checks to keep the tests passing. Differential Revision: https://reviews.llvm.org/D135044
-
Matthias Springer authored
This interface is implemented by memref.dim and tensor.dim. This change makes it possible to remove a build dependency of the Affine dialect on the Tensor dialect (and maybe also the MemRef dialect in the future). Differential Revision: https://reviews.llvm.org/D133595
-
Fangrui Song authored
-
Vitaly Buka authored
Breaks bots https://lab.llvm.org/buildbot/#/builders/37/builds/17086 This reverts commit 2dc68b53.
-
Fangrui Song authored
-
Yuanqiang Liu authored
Add outline-shape-computation pass. This pass his pass outlines the shape computation part in high level IR by adding shape.func and populate corresponding mapping information into ShapeMappingAnalysis. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D131810
-
Fangrui Song authored
-
Fangrui Song authored
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D135048
-
LLVM GN Syncbot authored
-