- Mar 13, 2023
-
-
Craig Topper authored
Use separate lookup tables instead of trying to reuse the fli.s table. We were missing the 2 denormal cases for fli.h. We also had an issue where fli.d was only checking 8 bits of the 11 bit exponent.
-
Craig Topper authored
We fail to use fli.h for the 2 denormal values. We use fli.d for some values where the value is larger than a float can represent due to truncating the exponent to 8 bits without checking if it fits in 8 bits.
-
Alex Lorenz authored
This change generalizes the OS version macro for all darwin OSes. The OS-specific OS version macros are still defined to preserve compatibility.
-
LLVM GN Syncbot authored
-
Chris Cotter authored
Warn when an rvalue reference function paramter is never moved from within the function body. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D141569
-
Craig Topper authored
[RISCV] Add overrides of isLoadFromStackSlot/isStoreFromStackSlot signatures that don't have MemBytes. D145471 added overrides of the other signature to return MemBytes, but shouldn't have removed these overrides. These signatures will now call the MemBytes signature and ignore the MemBytes. This matches X86.
-
Alex Bradbury authored
D102894 introduced common code for the emission of ELF attributes. Our implementation in RISC-V predates this, and basically copies the Arm logic at the time. This patch removes that duplication and uses the shared logic instead. Differential Revision: https://reviews.llvm.org/D145570
-
- Mar 12, 2023
-
-
Simon Pilgrim authored
These implementations both match the TargetLoweringBase.isZExtFree implementation
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D145875
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Preliminary cleanup before adding some additional legality and value tracking handling.
-
Simon Pilgrim authored
-
Jon Chesterfield authored
Post ISel, LDS variables are absolute values. Representing them as such is simpler than the frame recalculation currently used to build assembler tables from their addresses. This is a precursor to lowering dynamic/external LDS accesses from non-kernel functions. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D144221
-
Mike Crowe authored
Simplify the use of the basic_string and basic_string_view types by providing default template arguments. Depends on D145311 Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D145724
-
Mike Crowe authored
Improve the generic <string> header by adding the size() method so that it can be used to replace the custom implementation in the readability-container-size-empty check. This requires fixing an incorrect comparison of a std::wstring with a char string literal. Unfortunately, removing the custom basic_string implementation means fixing the line numbers for many of the checks. Depends on D145312 Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D145313
-
Mike Crowe authored
Improve the generic <string> header by adding another constructor, std::basic_string::empty and operator!= overload set so that it can be used to replace the custom implementation in the readability-string-compare check. Depends on D145311 Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D145312
-
Simon Pilgrim authored
Try to more aggressively narrow masks of extended values. This is mainly for cases where the mask is trying to zero out any_extended upper bits, assuming we can zext/trunc the values for free. This catches a few actual missed folds, as well as helps canonicalize a number of other cases which were being caught in isel etc. Differential Revision: https://reviews.llvm.org/D145866
-
Simon Pilgrim authored
[X86] and-shift.ll - add gnux32 test coverage to ensure the X32 ABI correctly narrows the i64 shifts
-
Paul Walker authored
This patch changes the lowering for the following fp builtins to emit calls to the new aarch64.sve.###.u intrinsics. svabd_x, svabd_n_x svadd_x, svadd_n_x svdiv_x, svdiv_n_x svdivr_x, svdivr_n_x svmad_x, svmad_n_x svmax_x, svmax_n_x svmaxnm_x, svmaxnm_n_x svmin_x, svmin_n_x svminnm_x, svminnm_n_x svmla_x, svmla_n_x svmls_x, svmls_n_x svmsb_x, svmsb_n_x svmul_x, svmul_n_x svmulx_x, svmulx_n_x svnmad_x, svnmad_n_x svnmla_x, svnmla_n_x svnmls_x, svnmls_n_x svnmsb_X, svnmsb_n_x svsub_x, svsub_n_x svsubr_x, svsubr_n_x Depends on D143765. Differential Revision: https://reviews.llvm.org/D143767
-
Paul Walker authored
D143767 will change the intrinsics used to lower floating-point svadd_x, svmul_x and svsub_x builtins. This will result in the combines added as part of D140200 to no longer fire in all cases. This patch extends the existing combines for contraction to cover fadd_u, fmul_u and fsub_u intrinsics. Differential Revision: https://reviews.llvm.org/D144413
-
Dmitry Vyukov authored
The test currently crashes as: AddressSanitizer: CHECK failed: asan_poisoning.cpp:38 "((AddrIsAlignedByGranularity(addr))) != (0)" Main stack address/size don't have to be aligned on asan shadow granularity. Align stack bottom. Reviewed By: melver, vitalybuka Differential Revision: https://reviews.llvm.org/D145799
-
Simon Pilgrim authored
This came about while investigating ways to handle D145468 in a more generic manner, which involves trying harder to fold and(zext(x),c) -> zext(and(x,c)) Alive2: https://alive2.llvm.org/ce/z/7fXtDt (generic fold) Differential Revision: https://reviews.llvm.org/D145855
-
Christian Ulmann authored
This commit introduces the LLVM's visibility attribute and adds it to both globals and functions. Furthermore, this commit ensures that "thread_local" is printed in the correct place and adds a test for that. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D145790
-
Brad Smith authored
This reverts commit 6590a372.
-
Michael Francis authored
This reverts commit 59848b9e, as it causes some failures in AIX-related Lit tests.
-
Michael Francis authored
The current implementation of `-p` does not claim the argument once it is passed. Since it pushes `-pg` directly, it is only ever referred to again when linking. As a result, when compiling with `-S`, the compiler warns that `-p` goes unused even though that is not the case. With this patch, if both `-p` and `-pg` are passed, the argument that is passed second will take precedence. `-p` will still throw an error on unsupported platforms, regardless of precedence. This revision includes a test case, which has been placed in `clang/test/Driver/zos-profiling-error.c`. As a result, `zos-profiling-error.c` has been renamed to `ibm-profiling.c`. This revision also passes `clang/test/Driver/aix-ld.c`. Differential Revision: https://reviews.llvm.org/D145021
-
Siva Chandra Reddy authored
The high number of 10000 threads was choking bot builders running on boards with very small memory.
-
Igor Zhukov authored
libc++ clang-cl tests failed after that commit Look at https://buildkite.com/llvm-project/libcxx-ci/builds/20490 Reviewed By: #libc Differential Revision: https://reviews.llvm.org/D145858 This reverts commit b00aaab7.
-
Koakuma authored
On 64-bit target, when doing i64 BR_CC where one of the comparison operands is a constant zero, try to fold the compare and BPcc into a BPr instruction. For all integers, EQ and NE comparison are available, additionally for signed integers, GT, GE, LT, and LE is also available. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D142461
-
Koakuma authored
Integrate the BranchRelaxation pass to help with relaxing out-of-range conditional branches. This is mostly of concern for SPARCv9, which uses conditional branches with much smaller range than its v8 counterparts. (Some large autogenerated code, such as the ones generated by TableGen, already hits this limitation when building in Release) Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D142458
-
Sanjay Patel authored
This reverts commit 43ae4b62. This was intended to be practically NFC in terms of the overall opt pipeline, but there is experimental data showing that code changes occurred here: https://llvm-compile-time-tracker.com/compare.php?from=772aa05452f8ff90a47168e6801cda2acb5a1873&to=43ae4b62b2671cf73e691c0b53324cd39405cd51&stat=size-text
-
Vitaly Buka authored
-
Sanjay Patel authored
This is the follow-up to D144199 and suggestion from D144045. We make use of loop info explicit via InstCombine pass parameter rather than semi-arbitrary via caching. The only InstCombine transform that uses LoopInfo currently is a GEP fold in visitGEPOfGEP(), so that shows up as a failure in the dedicated test for the fold as well as several LoopVectorizer tests that run extra passes. I don't see any pass manager regression tests that actually check for pass options, but this is intended to be NFC for the pass pipeline behavior - we only try to use loop info where it would have been used before via caching . Differential Revision: https://reviews.llvm.org/D144274
-
Simon Pilgrim authored
-
Yaxun (Sam) Liu authored
HIP runtime is the language runtime of HIP. When users need to specify rpath, they usually need to specify rpath for both compiler-rt and HIP runtime. It seems redundant to have separate options. Therefore make --offload-add-rpath an alias to -frtlib-add-rpath. Reviewed by: Fangrui Song, Artem Belevich Differential Revision: https://reviews.llvm.org/D145393
-
Mike Crowe authored
Remove duplication in abseil-redundant-strcat-calls check tests, by using dummy <string> header file string. Depends on D145310 Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D145311
-
Piotr Zegar authored
When warning would be emitted in constructor for virtual base class initialization. Fixes: https://github.com/llvm/llvm-project/issues/31187 Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D144206
-
Ahmed Harmouche authored
The inliner pass performs canonicalization when created programtically, run with `mlir-opt` with default options, or when explicitly specified. However, when running the pipeline resulting from a `-dump-pass-pipeline` on a default inline pass, the canonicalization is not performed as part of the inlining. This is because the default value for the `default-pipeline` option of the inline pass is an empty string, and this is selected during the dumping. When `InlinerPass::initializeOptions` detects the empty string, it sets the `defaultPipeline` to `nullptr`, which was previously set to canonicalize in the `InlinerPass` constructor, thus the canonicalization is not performed. The added test checks if the inline pass performs canonicalization by default, and that the dumped `default-pipeline` is set to `canonicalize`. Fixes: https://github.com/llvm/llvm-project/issues/60960 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D145066
-
Stephen Neuendorffer authored
This library is linked into libc-hdrgen, which is compiled with DISABLE_LLVM_LINK_LLVM_DYLIB. This option avoids linking with libLLVM.so when LLVM_LINK_LLVM_DYLIB is specified. Unfortunately, this can cause wierd linkage errors where symbols are defined multiple times, with one definition coming from static linkage and another definition coming from libLLVM.so. This is usually apparent as a link error with options defined multiple times. This patch adds DISABLE_LLVM_LINK_LLVM_DYLIB to this library, to get consistent linkage of libc-hdrgen. Differential Revision: https://reviews.llvm.org/D145839
-
Shao-Ce SUN authored
Fix issue [#61260](https://github.com/llvm/llvm-project/issues/61260) Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D145845
-