- Apr 26, 2021
-
-
Nemanja Ivanovic authored
Bootstrap with `-Werror` is currently broken due to D79714. This patch is required to bring the bootstrap bot back to green. The code will likely need to be fixed and the pragmas removed in due time, but for now we need to bring the bot back up. Bot that is currently failing: https://lab.llvm.org/buildbot/#/builders/36/builds/7680 Differential Revision: https://reviews.llvm.org/D101214
-
Vitaly Buka authored
-
Min-Yih Hsu authored
Try to fix bug 49974. This patch fixes two issues: 1. BL does not use predicate (BL_pred is the predicate version of BL), so we shouldn't add predicate operands in DecodeBranchImmInstruction. 2. Inside DecodeT2AddSubSPImm, we shouldn't add predicate operands into the MCInst because ARMDisassembler::AddThumbPredicate will do that for us. However, we should handle CC-out operand for t2SUBspImm and t2AddspImm. Differential Revision: https://reviews.llvm.org/D100585 -
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D100554
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D100547
-
Florian Hahn authored
This patch adds a blocksOnly helpers which take an iterator range over VPBlockBase * or const VPBlockBase * and returns an interator range that only include BlockTy blocks. The accesses are casted to BlockTy. Reviewed By: a.elovikov Differential Revision: https://reviews.llvm.org/D101093
-
- Apr 25, 2021
-
-
LLVM GN Syncbot authored
-
Tomasz Miąsko authored
The StringView::substr now accepts a substring starting position and its length instead of previous non-standard `from` & `to` positions. All uses of two argument StringView::substr are in MicrosoftDemangler and have 0 as a starting position, so no changes are necessary. This also fixes a bug where attempting to extract a suffix with substr (a `to` position equal to size) would return a substring without the last character. Fixing the issue should not introduce observable changes in the demangler, since as currently used, a second argument to StringView::substr is either: 1) a result of a successful call to StringView::find and so necessarily smaller than size., or 2) in the case of Demangler::demangleCharLiteral potentially equal to size, but with demangler expecting more data to follow later on and failing either way. Reviewed By: #libc_abi, ldionne, erik.pilkington Differential Revision: https://reviews.llvm.org/D100246
-
Simon Pilgrim authored
Revert rG2149aa73 "[X86] Add support for reusing ZF etc. from locked XADD instructions (PR20841)" This might be the cause of some msan build failures - I don't have access to a msan build right now, so this is a speculative revert.
-
LLVM GN Syncbot authored
-
Mark de Wever authored
During the review of D97115 it was mentioned adding the `<utility>` header for `__to_underlying` was a bit unfortunate. Nowadays we tend to implement smaller headers, so a good reason to move `std::to_underlying` to its own header and adjust `<charconv>` to use the new header. Differential Revision: https://reviews.llvm.org/D101233
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D93325
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D101049
-
Simon Pilgrim authored
XADD has the same EFLAGS behaviour as ADD
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Florian Hahn authored
-
Florian Hahn authored
This patch updates performSymbolicPredicateInfoEvaluation to manage registering additional dependencies using ExprResult. Similar to D99987, this fixes an issues where we failed to track the correct dependency for a phi-of-ops value, which is marked as temporary. Fixes PR49873. Reviewed By: asbirlea, ruiling Differential Revision: https://reviews.llvm.org/D100560
-
Hsiangkai Wang authored
We only apply `clang_builtin_alias` to non-masked builtins. Masked builtins could not use `clang_builtin_alias` because the operand order is different between overloaded intrinsics and builtins. A bunch of test cases need to be updated. Differential Revision: https://reviews.llvm.org/D100658
-
Simon Pilgrim authored
-
Xiang1 Zhang authored
-
Xiang1 Zhang authored
Differential Revision: https://reviews.llvm.org/D100026
-
Hsiangkai Wang authored
-
Lang Hames authored
-
Hsiangkai Wang authored
In some cases, we want to provide the alias name for the clang builtins. For example, the arguments must be constant integers for some RISC-V builtins. If we use wrapper functions, we could not constrain the arguments be constant integer. This attribute is used to achieve the purpose. Besides this, use `clang_builtin_alias` is more efficient than using wrapper functions. We use this attribute to deal with test time issue reported in https://bugs.llvm.org/show_bug.cgi?id=49962. In our downstream testing, it could decrease the testing time from 6.3 seconds to 3.7 seconds for vloxei.c test. Differential Revision: https://reviews.llvm.org/D100611
-
Lang Hames authored
This reapplies 1e1d75b1, which was reverted in ce1a4d53 due to build failures. The unconditional dependencies on clang and llvm-jitlink in compiler-rt/test/orc/CMakeLists.txt have been removed -- they don't appear to be necessary, and I suspect they're the cause of the build failures seen earlier.
-
Jason Molenda authored
Instead of looking up a symbol and reducing it to an addr_t to set a breakpoint, set the breakpoint on the function name directly. The old Mac OS X dynamic loader plugin worked in terms of addresses and I incorrectly emulated that here when I wrote this newer one. Differential Revision: https://reviews.llvm.org/D100931
-
Nikita Popov authored
ICMP_NE predicates directly overwrote the rewritten result, instead of chaining it with previous rewrites, as was done for ICMP_ULT and ICMP_ULE. This means that some guards were effectively discarded, depending on their order.
-
Nikita Popov authored
This is the same as @test_guard_ult_ne, just with the order of the conditions swapped.
-
Nikita Popov authored
m_Deferred() has nothing to do with commutative matchers, it needs to be used whenever the value to match is determinde as part of the same match expression.
-
RamNalamothu authored
In terms of readability, the `enum CFIMoveType` didn't better document what it intends to convey i.e. the type of CFI section that gets emitted. Reviewed By: dblaikie, MaskRay Differential Revision: https://reviews.llvm.org/D76519
-
Dávid Bolvanský authored
Fixes tail folding issue mentioned in D100879. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D101230
-
peter klausler authored
Such macros were exposing some edge cases in the preprocessor regarding empty tokens. Differential Revision: https://reviews.llvm.org/D101207
-
Florian Hahn authored
performSymbolicEvaluation is used to obtain the symbolic expression when visiting instructions and this is used to determine their congruence class. performSymbolicEvaluation only creates expressions for certain instructions (via createExpression). For unsupported instructions, 'unknown' expression are created. The use of createExpression in processOutgoingEdges means we may simplify the condition in processOutgoingEdges to a constant in the initial round of processing, but we use Unknown(I) for the congruence class. If an operand of I changes the expression Unknown(I) stays the same, so there is no update of the congruence class of I. Hence it won't get re-visited. So if an operand of I changes in a way that causes createExpression to return different result, this update is missed. This patch updates the code to use performSymbolicEvaluation, to be symmetric with the congruence class updating code. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D99990
-
Dávid Bolvanský authored
-
David Green authored
This is similar to D69796 from the ARM backend. We remove the UseAA feature, enabling it globally in the AArch64 backend. This should in general be an improvement allowing the backend to reorder more instructions in scheduling and codegen, and enabling it by default helps to improve the testing of the feature, not making it cpu-specific. A debugging option is added instead for testing. Differential Revision: https://reviews.llvm.org/D98781
-
Dávid Bolvanský authored
-
David Tolnay authored
The following program winds up with D->getDefaultArgStorage().getInheritedFrom() == nullptr during dumping the TemplateTemplateParmDecl corresponding to the template parameter of i. template <typename> struct R; template <template <typename> class = R> void i(); This patch fixes the null pointer dereference.
-
Dávid Bolvanský authored
Proof: https://alive2.llvm.org/ce/z/ss2zyt - rotl https://alive2.llvm.org/ce/z/ZM7Aue - rotr Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D101235
-
- Apr 24, 2021
-
-
Dávid Bolvanský authored
For example: ``` int src(unsigned int a, unsigned int b) { return __builtin_popcount(a << 16) + __builtin_popcount(b >> 16); } int tgt(unsigned int a, unsigned int b) { return __builtin_popcount((a << 16) | (b >> 16)); } ``` Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D101210
-