- May 31, 2023
-
-
Florian Hahn authored
-
Martin Storsjö authored
This uses the same logic as in c2b256a9; we can't check defined(_MSC_VER) invoked as %clang_cc1, therefore check for !defined(__MINGW32__) instead. This fixes the same issue in a new testcase that was added after this issue was fixed last time in c2b256a9. Differential Revision: https://reviews.llvm.org/D151661
-
Fangrui Song authored
-
Petr Hosek authored
This reverts commit 627d5e16.
-
Petr Hosek authored
The existing BOLT install targets are broken on Windows becase they don't properly handle output extension. Rather than reimplementing this logic in BOLT, reuse the existing LLVM macros which already handle this aspect correctly. Differential Revision: https://reviews.llvm.org/D151595
-
Alex Brachet authored
Differential Revision: https://reviews.llvm.org/D151502
-
Fangrui Song authored
clang/lib/Driver/ToolChains/Clang.cpp has a lot of fragments like the following: ``` if (const Arg *A = Args.getLastArg(...)) { if (Triple is xxx) A->render(Args, CmdArgs); else D.Diag(diag::err_drv_unsupported_opt_for_target) << ...; } ``` The problem is more apparent with a recent surge of AIX-specific options. Introduce the TargetSpecific flag so that we can move the target-specific options to ToolChains/*.cpp and ToolChains/Arch/*.cpp and overload the warn_drv_unused_argument mechanism to give an err_drv_unsupported_opt_for_target error. Migrate -march=/-mcpu= and some AIX-specific options to use this simplified pattern. Reviewed By: jansvoboda11 Differential Revision: https://reviews.llvm.org/D151590 -
Alex Brachet authored
Differential Revision: https://reviews.llvm.org/D151679
-
Tue Ly authored
Add log, log2, log1p, log10 RISCV64 entrypoints. Reviewed By: michaelrj, sivachandra Differential Revision: https://reviews.llvm.org/D151674
-
LLVM GN Syncbot authored
-
Erick Velez authored
Refactor SerializerBase and SymbolGraphSerializer to use a visitor pattern described by the CRTP. Reviewed By: dang Differential Revision: https://reviews.llvm.org/D151477
-
Fangrui Song authored
-
Mats Petersson authored
This patch makes more than 2D arrays work, with a fix for the way that loop index is calculated. Removing the restriction of number of dimensions. This also changes the way that the actual index is calculated, such that the stride is used rather than the extent of the previous dimension. Some tests failed without fixing this - this was likely a latent bug in the 2D version too, but found in a test using 3D arrays, so wouldn't have been found with 2D only. This introduces a division on the index calculation - however it should be a nice and constant value allowing a shift to be used to actually divide - or otherwise removed by using other methods to calculate the result. In analysing code generated with optimisation at -O3, there are no divides produced. Some minor refactoring to avoid repeatedly asking for the "rank" of the array being worked on. This improves some of the SPEC-2017 ROMS code, in the same way as the limited 2D array improvements - less overhead spent calculating array indices in the inner-most loop and better use of vector-instructions. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D151140
-
Philip Reames authored
Add another form of the same pattern (as_rotate tests), and add coverage for a couple corner cases I got wrong at first in an upcoming rewrite.
-
Deniz Evrenci authored
All exceptions thrown in coroutine bodies are caught and unhandled_exception member of the coroutine promise type is called. In accordance with the existing rules of diagnostics related to exceptions thrown in functions marked noexcept, even if the promise type's constructor, get_return_object, or unhandled_exception throws, diagnostics should not be emitted. Fixes #61905. Reviewed By: PiotrZSL, ChuanqiXu Differential Revision: https://reviews.llvm.org/D147417
-
Artem Belevich authored
The file must go under cuda_wrappers/bits/ directly, but was by mistake copied directly into cuda_wrappers/ during installation. Differential Revision: https://reviews.llvm.org/D151503
-
Mehdi Amini authored
-
Philip Reames authored
-
Philip Reames authored
-
Paul Robinson authored
Differential Revision: https://reviews.llvm.org/D150114
-
Ben Hamilton authored
This adds to the ObjC language guesser a few more common macros used in ObjC headers. These can help distinguish ObjC headers which otherwise lack ObjC types from C++ headers. Contributed by danblakemore. Tested: New tests included. Ran unit tests with: ``` % cmake -S llvm -B build -G Ninja && \ ninja -C build FormatTests && \ ./build/tools/clang/unittests/Format/FormatTests --gtest_filter="*FormatTestObjC*" (snip) [----------] 24 tests from FormatTestObjC (265 ms total) [----------] Global test environment tear-down [==========] 26 tests from 2 test suites ran. (270 ms total) [ PASSED ] 26 tests. ``` Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D151578 -
Peter Steinfeld authored
The title says it all. Differential Revision: https://reviews.llvm.org/D151712
-
Craig Topper authored
-
max authored
I mistakenly put this in `mlir/CAPI/Support.h` at some point during the flurry of refactoring of `TypeCaster`s but as @jpienaar rightly pointed out, it doesn't belong there. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D151669
-
Mark de Wever authored
Windows' libc, like some other libc implementations do not work as specified for %Y and %y. This uses the fixes used for other libc implementations. The work was part of D150593. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D151612
-
Mark de Wever authored
These have been deprecated since their initial version in libc++. It seems they were never properly marked as deprecated. Discovered while working on D151223. Reviewed By: #libc, ldionne, philnik Differential Revision: https://reviews.llvm.org/D151474
-
Marco Elver authored
Fix the Fuchsia build. asan_interceptors_memintrinsics.cpp should not include any interceptors on Fuchsia. Reported-by: haowei Link: https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8779679021892159153/+/u/clang/build/stdout
-
Craig Topper authored
-
David Green authored
See D151189. The existing files check lines have also been adjusted whilst here.
-
Mark de Wever authored
This is needed to build clang-tidy plugins using clang-tidy 17. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D151488
-
Dmitri Gribenko authored
MemRegion::getMemorySpace() is annotated with LLVM_ATTRIBUTE_RETURNS_NONNULL (which triggers instant UB if a null pointer is returned), and callers indeed don't check the return value for null. Thus, even though llvm::dyn_cast is called, it can never return null in this context. Therefore, we can safely call llvm::cast. Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D151727
-
Dmitri Gribenko authored
Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D151725
-
Simon Pilgrim authored
-
Adrian Prantl authored
-
Igor Kirillov authored
This patch updates several functions in LLVM's IR generation code to accept an IRBuilder object as an argument, rather than an Instruction that indicates the insertion point for new instructions. This change is necessary to handle sophisticated -Ofast optimization cases from D148558 where it's unclear which instructions should be used as the insertion point for new operations. Differential Revision: https://reviews.llvm.org/D148703
-
Dmitri Gribenko authored
They are redundant with the [[fallthrough]]; attribute that follows. Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D151723
-
Dmitri Gribenko authored
Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D151726
-
- May 30, 2023
-
-
Alex Zinenko authored
-
Lukas Sommer authored
Add support for the `llvm::TargetExtType` to the MLIR LLVM dialect. Target extension types were introduced to represent target-specific types, which are opaque to the compiler and optimizations. The patch also enforces some of the constraints defined for the target extension type in the LLVM language reference manual. Signed-off-by:
Lukas Sommer <lukas.sommer@codeplay.com> Reviewed By: ftynse, gysit, Dinistro Differential Revision: https://reviews.llvm.org/D151446
-
Quinn Dawkins authored
The ability to add attributes to payload IR is useful functionality independent of any dialect. This is added here through `transform.annotate` by enabling attributes tied to a `TransformParamTypeInterface` (which internally refers to an Attribute) to be added to a target operation by name. The AnnotateOp does not produce a new handle as no existing handles should be affected by adding an attribute. Existing attributes on the payload with the same name will be overwritten. Differential Revision: https://reviews.llvm.org/D151689
-