This project is mirrored from https://github.com/llvm-doe-org/llvm-project.git.
Pull mirroring updated .
- 23 Jan, 2022 37 commits
-
-
Kazu Hirata authored
Identified with readability-redundant-control-flow.
-
Kazu Hirata authored
Identified with readability-redundant-member-init.
-
Kazu Hirata authored
Identified with llvm-header-guard.
-
Nuno Lopes authored
-
Fangrui Song authored
* Merge parallel_for_each into parallelForEach (this removes 1 `Fn(...)` call) * Change parallelForEach to use parallelForEachN * Move parallelForEachN into Parallel.cpp My x86-64 `lld` executable is 100KiB smaller. No noticeable difference in performance. Reviewed By: lattner Differential Revision: https://reviews.llvm.org/D117510
-
Casey Carter authored
<meme>How many layers of irony are you on?</meme> Differential Revision: https://reviews.llvm.org/D117967
-
Simon Pilgrim authored
D108992 added self-multiply handling to KnownBits::mul but we don't use it yet..
-
Craig Topper authored
Instead of having a test for i32 XLen and i64 XLen, use sed to replace iXLen with i32/i64 before running llc. This change covers all of the floating point tests.
-
Simon Pilgrim authored
Fixes parity codegen issue where we know all but the lowest bit is zero, we can replace the ICMPNE with 0 comparison with a ext/trunc Differential Revision: https://reviews.llvm.org/D117983
-
LLVM GN Syncbot authored
-
Simon Pilgrim authored
Revert rG7c66aadd "[DAG] Fold (X & Y) != 0 --> zextOrTrunc(X & Y) iff everything but LSB is known zero (PR51312)" Noticed a typo in the getBooleanContents call just after I pressed commit :(
-
Richard authored
Looks for duplicate includes and removes them. Every time an include directive is processed, check a vector of filenames to see if the included file has already been included. If so, it issues a warning and a replacement to remove the entire line containing the duplicated include directive. When a macro is defined or undefined, the vector of filenames is cleared. This enables including the same file multiple times, but getting different expansions based on the set of active macros at the time of inclusion. For example: #undef NDEBUG #include "assertion.h" // ...code with assertions enabled #define NDEBUG #include "assertion.h" // ...code with assertions disabled Since macros are redefined between the inclusion of assertion.h, they are not flagged as redundant. Differential Revision: https://reviews.llvm.org/D7982
-
Sanjay Patel authored
The behavior in Analysis (knownbits) implements poison semantics already, and we expect the transforms (for example, in instcombine) derived from those semantics, so this patch changes the LangRef and remaining code to be consistent. This is one more step in removing "undef" from LLVM. Without this, I think https://github.com/llvm/llvm-project/issues/53330 has a legitimate complaint because that report wants to allow subsequent code to mask off bits, and that is allowed with undef values. The clang builtins are not actually documented anywhere AFAICT, but we might want to add that to remove more uncertainty. Differential Revision: https://reviews.llvm.org/D117912
-
Simon Pilgrim authored
Fixes parity codegen issue where we know all but the lowest bit is zero, we can replace the ICMPNE with 0 comparison with a ext/trunc Differential Revision: https://reviews.llvm.org/D117983
-
Ayke van Laethem authored
The register R1 is defined to have the constant value 0 in the avr-gcc calling convention (which we follow). Unfortunately, we don't really make use of it. This patch replaces `LDI 0` instructions with a copy from R1. This reduces code size: my AVR build of compiler-rt goes from 50660 to 50240 bytes of code size, which is a 0.8% reduction. Presumably it will also improve execution speed, although I didn't measure this. Differential Revision: https://reviews.llvm.org/D117425
-
Ayke van Laethem authored
Background: https://github.com/avr-rust/rust-legacy-fork/issues/126 In short, this workaround was introduced to fix a "ran out of registers during regalloc" issue. The root cause has since been fixed in https://reviews.llvm.org/D54218 so this workaround can be removed. There is one test that changes a little bit, removing a single instruction. I also compiled compiler-rt before and after this patch but didn't see a difference. So presumably the impact is very low. Still, it's nice to be able to remove such a workaround. Differential Revision: https://reviews.llvm.org/D117831
-
Carlos Galvez authored
Currently the fix hint is hardcoded to gsl::at(). This poses a problem for people who, for a number of reasons, don't want or cannot use the GSL library (introducing a new third-party dependency into a project is not a minor task). In these situations, the fix hint does more harm than good as it creates confusion as to what the fix should be. People can even misinterpret the fix "gsl::at" as e.g. "std::array::at", which can lead to even more trouble (e.g. when having guidelines that disallow exceptions). Furthermore, this is not a requirement from the C++ Core Guidelines. simply that array indexing needs to be safe. Each project should be able to decide upon a strategy for safe indexing. The fix-it is kept for people who want to use the GSL library. Differential Revision: https://reviews.llvm.org/D117857
-
Simon Pilgrim authored
Noticed while looking at D117983 - we miss some parity patterns with/without popcnt
-
Arthur O'Dwyer authored
https://cplusplus.github.io/LWG/issue3437 Differential Revision: https://reviews.llvm.org/D117963
-
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D117956
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Non-POSIX target builds don't use the file descriptor
-
Simon Pilgrim authored
The pointers are dereferenced immediately, so assert the cast is correct instead of returning nullptr
-
Simon Pilgrim authored
The pointer is dereferenced immediately, so assert the cast is correct instead of returning nullptr
-
Simon Pilgrim authored
The pointer is dereferenced immediately, so assert the cast is correct instead of returning nullptr
-
Simon Pilgrim authored
The pointer is dereferenced immediately, so assert the cast is correct instead of returning nullptr
-
Simon Pilgrim authored
The pointer is dereferenced immediately, so assert the cast is correct instead of returning nullptr
-
Simon Pilgrim authored
Simplifies logic and helps the static analyzer correctly check for nullptr dereferences
-
Simon Pilgrim authored
The pointers are always dereferenced immediately, so assert the cast is correct instead of returning nullptr
-
Simon Pilgrim authored
Noticed on D86578 - several of the test cases were missing checks as they didn't start on a newline so the update script couldn't see them
-
Alex Brachet authored
Implements `--update-section` which is currently supported for ELF for Mach-O as well Reviewed By: alexander-shaposhnikov Differential Revision: https://reviews.llvm.org/D117281
-
Craig Topper authored
Removes moves from GPR to FPR and improves f64 tests on RV32. Differential Revision: https://reviews.llvm.org/D117969
-
Craig Topper authored
Instead of having a test for i32 XLen and i64 XLen, use sed to replace iXLen with i32/i64 before running llc. This change updates tests for intrinsics that operate exclusively on mask values. It removes over 4000 lines worth of test content. More merging will come in future changes. Differential Revision: https://reviews.llvm.org/D117968
-
eopXD authored
Extensions affected: +v, +zve*, +zvl* Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D117860
-
Joe Loser authored
Implement LWG3549 by making `view_interface` not inherit from `view_base`. Types are still views if they have a public and unambiguous derivation from `view_interface`, so adjust the `enable_view` machinery as such to account for that. Differential Revision: https://reviews.llvm.org/D117714
-
Phoebe Wang authored
MSVC currently doesn't support 80 bits long double. ICC supports it when the option `/Qlong-double` is specified. Changing the alignment of f80 to 16 bytes so that we can be compatible with ICC's option. Reviewed By: rnk, craig.topper Differential Revision: https://reviews.llvm.org/D115942
-
Dave authored
We have an page dedicated to compliation databases including various ways to generate them, but we don't mention that clang has a built in method to do this. This addresses that. Reviewed By: joerg Differential Revision: https://reviews.llvm.org/D116882
-
- 22 Jan, 2022 3 commits
-
-
Malhar Jajoo authored
This patch allows Openmp runtime atomic functions operating on x87 high-precision to be present only in Openmp runtime for x86 architectures The functions affected are: __kmpc_atomic_10 __kmpc_atomic_20 __kmpc_atomic_cmplx10_add __kmpc_atomic_cmplx10_div __kmpc_atomic_cmplx10_mul __kmpc_atomic_cmplx10_sub __kmpc_atomic_float10_add __kmpc_atomic_float10_div __kmpc_atomic_float10_mul __kmpc_atomic_float10_sub __kmpc_atomic_float10_add_fp __kmpc_atomic_float10_div_fp __kmpc_atomic_float10_mul_fp __kmpc_atomic_float10_sub_fp __kmpc_atomic_float10_max __kmpc_atomic_float10_min Differential Revision: https://reviews.llvm.org/D117473
-
John Ericson authored
This is the original patch in my GNUInstallDirs series, now last to merge as the final piece! It arose as a new draft of D28234. I initially did the unorthodox thing of pushing to that when I wasn't the original author, but since I ended up - Using `GNUInstallDirs`, rather than mimicking it, as the original author was hesitant to do but others requested. - Converting all the packages, not just LLVM, effecting many more projects than LLVM itself. I figured it was time to make a new revision. I have used this patch series (and many back-ports) as the basis of https://github.com/NixOS/nixpkgs/pull/111487 for my distro (NixOS), which was merged last spring (2021). It looked like people were generally on board in D28234, but I make note of this here in case extra motivation is useful. --- As pointed out in the original issue, a central tension is that LLVM already has some partial support for these sorts of things. Variables like `COMPILER_RT_INSTALL_PATH` have already been dealt with. Variables like `LLVM_LIBDIR_SUFFIX` however, will require further work, so that we may use `CMAKE_INSTALL_LIBDIR`. These remaining items will be addressed in further patches. What is here is now rote and so we should get it out of the way before dealing more intricately with the remainder. Reviewed By: #libunwind, #libc, #libc_abi, compnerd Differential Revision: https://reviews.llvm.org/D99484
-
Sanjay Patel authored
This is an alternate version of D115914 that handles/tests all binary opcodes. I suspect that we don't see these patterns too often because -simplifycfg would convert the minimal cases into selects rather than leave them in phi form (note: instcombine has logic holes for combining the select patterns too though, so that's another potential patch). We only create a new binop in a predecessor that unconditionally branches to the final block. https://alive2.llvm.org/ce/z/C57M2F https://alive2.llvm.org/ce/z/WHwAoU (not safe to speculate an sdiv for example) https://alive2.llvm.org/ce/z/rdVUvW (but it is ok on this path) Differential Revision: https://reviews.llvm.org/D117110
-