- Mar 14, 2023
-
-
Tue Ly authored
Warnings due to changes in behavior of cmake 3.20 or above. See https://cmake.org/cmake/latest/policy/CMP0116.html Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D145983
-
Philip Reames authored
This is part of prework for supporting scalable vector types. This isn't NFC because it shifts the point of failure (i.e. which assert triggers first), but should be NFC for all non-scalable vector inputs.
-
David Tenty authored
GCC on AIX primarily uses the -maix32 and -maix64 to select the bitmode to target. In order to be compatible with existing build configurations, clang should accept these options as well. In this patch we implement these options for AIX targets. Differential Revision: https://reviews.llvm.org/D145610
-
Philip Reames authored
This is a prepass on generalizing for scalable vectors; I'm just picking off the easy bits.
-
Snehasish Kumar authored
This reverts commit 287177a4.
-
Amir Ayupov authored
Leverage move semantics for `std::vector`. This also makes it consistent with `createInstrumentationSnippet`. Reviewed By: Elvina Differential Revision: https://reviews.llvm.org/D145465
-
Valentin Clement authored
In some cases the argument is already handled by a fir.rebox operation. Just adapat the type to match the parent component in that case. Depends on D145928 Differential Revision: https://reviews.llvm.org/D145931
-
David Green authored
The TripCount liveins would currently be printed as badref in the vplan as they are not allocated slots in the VPSlotTracker. This patch allocates them a slot and adds them to the printed Live-Ins. It also makes a minor adjustment to printing of Live-ins to reduce the empty lines when multiple Live-ins are present. Differential Revision: https://reviews.llvm.org/D145507
-
Valentin Clement authored
When the argument is a parent component the box needs to be updated to reflect the correct type. Use `updateBoxForParentComponent` to update the argument accordingly. Depends on D145907 Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D145928
-
Felipe de Azevedo Piovezan authored
This is an initial attempt at preserving debug information in the pseudo instruction expansion of the AArch backend. In particular, we preserve the instruction number required by the InstrRef implementation of live debug values. There are many other expansions that need to be considered, but the ones addressed in this commit should be extremely common, as they handle most arithmetic and logical instructions. Differential Revision: https://reviews.llvm.org/D145943
-
Snehasish Kumar authored
This patch adds support for recording BuildIds usng the sanitizer ListOfModules API. We add another entry to the SegmentEntry struct and change the memprof raw version. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D145190
-
Joseph Huber authored
This patch breaks the handling of `printf` in the OpenMP library. Usiing `-ffreestanding` prevents clang from emitting LLVM builtins, which we use for OpenMP printing support. Shelve this until we have functioning `printf` in the GPU `libc` and we can remove that code. This reverts commit a92eaa3e.
-
Hassnaa Hamdi authored
-Lower AVGFloor(A, B) to: SRL(A) + SRL(B) + (A&B)&1. -Lower AVGCeil(A, B) to: SRL(A) + SRL(B) + (A|B)&1. Differential Revision: https://reviews.llvm.org/D143283
-
Joshua Cranmer authored
-
Philip Reames authored
These idioms already appear a number of places in code, and upcoming changes to the various sanitizers continue to need more instances of the same patterns. Differential Revision: https://reviews.llvm.org/D145945
-
Job Noorman authored
It was using a redundant iteration over super regs to build SmallerAliasMap. Removing this results in exactly the same alias maps and a noticeable performance gain on targets with a large number of registers. Just anecdotally: on my machine, processing a small AArch64 binary went from 2.7s down to 80ms. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D145779
-
Teresa Johnson authored
Option was added in D53891, and only has basic documentation added later in 5168ddfa. Add more extensive documentation with links to related docs. Differential Revision: https://reviews.llvm.org/D145951
-
Nick Desaulniers authored
Follow up to commit 831e99fe ("[GVNHoist] don't hoist callbr users into the callbr's block") Looks like MSVC has trouble with llvm::is_contained. Unbreak the build. Link: https://lab.llvm.org/buildbot/#/builders/127/builds/45021/steps/7/logs/stdio Reviewed By: hans, kuhar Differential Revision: https://reviews.llvm.org/D145969
-
Joshua Cranmer authored
Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D141008
-
Jeffrey Tan authored
This patch refactors PlaceholderObjectFile into ObjectFile plugin directory so that we can reuse it for other cases like coredump debugging with NT_FILE notes. PlaceholderObjectFile is also renamed to ObjectFilePlaceholder to be consistent with ObjectFile plugin naming convention. Differential Revision: https://reviews.llvm.org/D145955
-
Philip Reames authored
The existing scalable costing was just bad. No LMUL cost, no i1 specific costing, etc.. We had updated the fixed cost model, but none of the code is actually fixed length specific. Moving it down handles the scalable cases too.
-
Rahul Kayaith authored
This works around link errors when building the python bindings with ASAN, since the ASAN run-time doesn't get linked into shared libraries. The ASAN docs specficially call out -z,defs as a potential issue: https://clang.llvm.org/docs/AddressSanitizer.html#usage closes https://github.com/llvm/llvm-project/issues/60565 Reviewed By: stellaraccident, mehdi_amini Differential Revision: https://reviews.llvm.org/D145956
-
Mike Crowe authored
Add StringParameterFunctions option to allow the readability-redundant-string-cstr check to work with library functions such as fmt::format and spdlog::logger:info that are able to support std::string arguments in addition to const char * ones. Depends on D143342 Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D145885
-
Jakub Kuderski authored
Reword the vector gather and scatter op description to make it well-defined to have out-of-bounds indices when the corresponding mask bits are false. Update the code sample to avoid relying on C UB semantics to provide informal semantics for vector.gather. This change should be consistent with the existing interpretation of the semantics in the codebase. Issue: https://github.com/llvm/llvm-project/issues/60905 Reviewed By: dcaballe Differential Revision: https://reviews.llvm.org/D145824
-
Michał Górny authored
Use the installed llvm_gtest library instead of rebuilding it locally when standalone builds are used. This change is now required as otherwise the build fails due to duplicate llvm_gtest target. This is based on 82169103 in clang. Differential Revision: https://reviews.llvm.org/D145964
-
Jonas Paulsson authored
Don't create local pointers to Subtarget in places in SystemZTargetLowering as the class already has a Subtarget member. Review: Ulrich Weigand
-
Evangelos Foutras authored
Summary: This creates install-clang-linker-wrapper{,-stripped} targets which are useful for Linux distro builds when using LLVM_DISTRIBUTION_COMPONENTS. Fixes: https://bugs.archlinux.org/task/77814 Differential Revision: https://reviews.llvm.org/D145862 -
Joseph Huber authored
Summary: The previous patch only included the needed library if you had HSA and CUDA installed. Fix that.
-
Vadim Paretsky authored
Some globals were used for enforcing certain linking rules in the Intel OpenMP implementation's MSVC compatibility layer and are not applicable to the LLVM implementation (kmp_import.cpp has already been removed from the build). Differential Revision:https://reviews.llvm.org/D145837
-
Joseph Huber authored
The `stdint.h` header provides the standard types. Previously we used `-nostdinc` and defined these ourselves. This patch switches to a freestanding version which should work properly. Without `-ffreestanding` the `stdint.h` header will include other libraries. But in a freestanding environment it should work given the primitives. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D145963
-
Joseph Huber authored
Summray: These clang tools should print some basic help and version messages so they are less opaque. Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D145944
-
Nick Desaulniers authored
This isn't safe to do. Link: https://github.com/llvm/llvm-project/issues/53562 Fixes: https://github.com/llvm/llvm-project/issues/61023 Reviewed By: efriedma, nikic Differential Revision: https://reviews.llvm.org/D144927
-
Slava Zakharin authored
This is related to llvm-project#61074. In general, it is undefined behavior if user subprogram is declared with a name that matches a name of function from any runtime library that Flang is using (e.g. FortranRuntime, libm, etc.). With this change-set we avoid ICE for invalid calls generated during math lowering by type casing the function before the call. This happens when a user function call is lowered before the math function call with the same name. To detect the name clash in cases when the math function call is lowered before the user function call we set fir.runtime attribute for the math functions and check it when we lower the user function call. The warnings are currently emitted only in debug compiler and under llvm debug options. I think they should be reported in the same way as regular Flang warnings. Note that this change-set does not resolve issues with the conversion passes that might introduce libm calls after the lowering. Differential Revision: https://reviews.llvm.org/D145653
-
Mehdi Amini authored
-
Alexander Belyaev authored
When generic_atomic_rmw is inside of memref.alloca_scope, then the pattern would fail. Differential Revision: https://reviews.llvm.org/D145901
-
Chia-hung Duan authored
Also fix few lints Reviewed By: cryptoad Differential Revision: https://reviews.llvm.org/D145427
-
Philip Reames authored
Fixed vector costs may be more precise, but the actual lowering will use scalable vectors if nothing better is available. During review, we noticed a case where fixed vector reverse can be improved cost model wise, that will follow seperately. Differential Revision: https://reviews.llvm.org/D145953
-
Dmitry Makogon authored
This replaces several rewriting rules in ScalarEvolution::applyLoopGuards that are applied to min/max expressions with the equivalent ones but applied to its arguments. So previously given we had a loop guard min(a, b) >= c, the min expression would get rewritten as max(c, min(a, b)). With such approach, we were unable to apply the rewrite if min operands were zext for example (min(zext(a), zext(b))), however it's equivalent to the expression zext(min(a, b)) for which we could apply the rewrite. Now we'd rewrite the min operands also with these expressions: a -> max(c, a) and b -> max(c, b). and this would allow us to apply the loop guard in this and similar cases: min(zext(a), zext(b)) would get rewritten as min(zext(max(c, a)), zext(max(c, b))) instead of just being skipped. The list of added rules (omitting predicates signedness for simplicity): 1. Guard: min(a, b) >= c Old rule: min(a, b) -> max(c, min(a, b)) New rules: a -> max(a, c) and b -> max(b, c) 2. Guard: min(a, b) > c Old rule: min(a, b) -> max(c + 1, min(a, b)) New rules: a -> max(a, c + 1) and b -> max(b, c + 1) 3. Guard: max(a, b) <= c Old rule: max(a, b) -> min(c, max(a, b)) New rules: a -> min(a, c) and b -> min(b, c) 4. Guard: max(a, b) < c Old rule: max(a, b) -> min(c - 1, max(a, b)) New rules: a -> min(a, c - 1) and b -> min(b, c - 1) The old rewrites still hold. Differential Revision: https://reviews.llvm.org/D145230
-
Dmitry Makogon authored
-
Ayal Zaks authored
Structs that contain global or local pointers can be passed as kernel arguments starting OpenCL v2.0 with the introduction of shared virtual memory. Differential Revision: https://reviews.llvm.org/D143849
-