This project is mirrored from https://github.com/llvm-doe-org/llvm-project.git.
Pull mirroring updated .
- 23 Jan, 2022 40 commits
-
-
Kazu Hirata authored
Identified with bugprone-argument-comment.
-
Kazu Hirata authored
-
Craig Topper authored
We don't optimize this as well as we could. Bitreverse is always expanded to bswap and a shift/and/or sequence to swap bits within a byte. The newly created bswap will either becomes a shift/and/or sequence or rev8 instruction. We don't always realize the bswap is redundant with another bswap before or after the bitreverse. Found while thinking about the brev8 instruction from the Cryptography extension. It's equivalent to bswap(bitreverse(x)) or bitreverse(bswap(x)).
-
Craig Topper authored
Rename to include bitreverse. Add additional tests and Zbb command lines. There's some overlapping tests with rv32zbb.ll and rv64zbb.ll. Maybe I'll clean that up in a future patch.
-
Simon Pilgrim authored
This can always be lowered as PMULLW+PSRLWI+PACKUSWB
-
Kazu Hirata authored
-
Kazu Hirata authored
This patch adds a forward declaraiton of DynTypedNode. DumpAST.h is relying on the forward declaration of DynTypedNode in ASTContext.h, which is undesirable.
-
Kazu Hirata authored
This patch moves the definition of ASTDiff later within the header file. Without this patch, the header depends on the forward decalrations of SyntaxTree and ComparisonOptions from another header file, which is not desirable. Since SyntaxTree and ComparisonOptions are defined in ASTDiff.h, we can move the definition of ASTDiff later and stop relying on the forward declarations from another header file.
-
Simon Pilgrim authored
Allows us to reuse the ISD shift opcode instead of a mixture of ISD/X86ISD variants
-
Craig Topper authored
The Zbk* extensions have some overlap with Zb so have been placed in this file. Reviewed By: VincentWu Differential Revision: https://reviews.llvm.org/D117958
-
Groverkss authored
This patch changes names of identifiers and their corresponding getters in PresburgerSet to match those of IntegerPolyhedron. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D117998
-
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
-