- Apr 06, 2022
-
-
Matthias Springer authored
These can be local variables. No need to store them in the struct. Differential Revision: https://reviews.llvm.org/D123210
-
Matthias Springer authored
This is for consistency reasons. `*AnalysisState` always starts with the name of the dialect. Differential Revision: https://reviews.llvm.org/D123209
-
Mark de Wever authored
Adds the new cpp20_output_iterator in the ranges::transform test. Reviewed By: philnik, #libc Differential Revision: https://reviews.llvm.org/D123139
-
Mark de Wever authored
The is a followup of D116965 to split the calendar header. This is a preparation to add the formatters for the chrono header. The code is only moved no other changes have been made. Reviewed By: ldionne, #libc, philnik Differential Revision: https://reviews.llvm.org/D122995
-
Arjun P authored
Refactor the operation of subtraction by - removing the usage of SimplexRollbackScopeExit since this can't be used in the iterative version - reducing the number of stack variables to make the iterative version easier to follow Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D123156
-
Roman Lebedev authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D123221
-
Sam McCall authored
In files where different preprocessing paths are possible, our goal is to choose a preprocessed token sequence which we can parse that pins down as much of the grammatical structure as possible. This forms the "primary parse", and the not-taken branches get parsed later, and are constrained to be compatible with the primary parse. Concretely: int x = #ifdef // TAKEN 2 + 2 + 2 // determined during primary parse to be an expression #else 2 // constrained to be an expression during a secondary parse #endif ; Differential Revision: https://reviews.llvm.org/D121165
-
Matthias Springer authored
Support returning arbitrary tensors from functions. Even those that are not equivalent. To that end, additional information is gathered during the analysis phase. In particular, which function args are aliasing with which return values. Also fix bugs in the current implementation when returning equivalent tensors. Various unit tests are added to ensure that we have better test coverage. Note: Returning non-equivalent tensors is only allowed when allowReturnAllocs is enabled. This functionality is useful for unit testing and compatibility with other bufferizations such as the sparse compiler. This is also towards using ModuleBufferization as a replacement for --func-bufferize. Differential Revision: https://reviews.llvm.org/D119120
-
Matthias Springer authored
* Bufferize FuncOp bodies and boundaries in the same loop. This is in preparation of moving FuncOp bufferization into an external model implementation. * As a side effect, stop bufferization earlier if there was an error. (Do not continue bufferization, fewer error messages.) * Run equivalence analysis of CallOps before the main analysis. This is needed so that equialvence info is propagated properly. Differential Revision: https://reviews.llvm.org/D123208
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D123192
-
Paul Walker authored
Promotion does not affect the base element type and so the original index type will remain unchanged. This reflects the behaviour of DAGTypeLegalizer::PromoteIntOp_MGATHER with no tests affected.
-
Paul Walker authored
-
LLVM GN Syncbot authored
-
Sam McCall authored
Differential Revision: https://reviews.llvm.org/D116514
-
LLVM GN Syncbot authored
-
Sam McCall authored
Fixes https://github.com/clangd/clangd/issues/973 Differential Revision: https://reviews.llvm.org/D116490
-
Shengchen Kan authored
``` {"MMX_MOVD64grr", "MMX_MOVD64mr"} ``` This pair has different opcodes.
-
chenglin.bi authored
In tryBitfieldInsertOpFromOr, if the new created LSR Node's source is LSR with Imm shift, try to fold them. Fixes https://github.com/llvm/llvm-project/issues/54696 Reviewed By: efriedma, benshi001 Differential Revision: https://reviews.llvm.org/D122915
-
Nikita Popov authored
Use helper APIs for isNonNegative() and getMaxValue() instead of flipping the zero value and having a long comment explaining why that is necessary.
-
Paul Robinson authored
-
Augie Fackler authored
This has been true since dba73135, but didn't matter until now because clang wasn't emitting allocalign attributes. Differential Revision: https://reviews.llvm.org/D121640
-
Jay Foad authored
-
Jean Perier authored
Unit numbers must fit on a default integer. It is however possible that the user provides the unit number in UNIT with a wider integer type. In such case, lowering was previously silently narrowing the value and passing the result to the BeginXXX runtime entry points. Cases where the conversion caused overflow were not reported/caught. Most existing compilers catch these errors and raise an IO error. Add a CheckUnitNumberInRange runtime API to do the same in f18. This runtime API has its own error management interface (i.e., does not use GetIoMsg, EndIo, and EnableHandlers) because the usual error management requires BeginXXX to be called to set up the error management. But in this case, the BeginXXX cannot be called since the bad unit number that would be provided to it overflew (and in the worst case scenario, the narrowed value could point to a different valid unit already in use). Hence I decided to make an API that must be called before the BeginXXX and should trigger the whole BeginXXX/.../EndIoStatement to be skipped in case the unit number is too big and the user enabled error recovery. Note that CheckUnitNumberInRange accepts negative numbers (as long as they can fit on a default integer), because unit numbers may be negative if they were created by NEWUNIT. Differential Revision: https://reviews.llvm.org/D123157
-
Shengchen Kan authored
[X86] Fold MMX_MOVD64from64rr + store to MMX_MOVQ64mr instead of MMX_MOVD64from64mr in auto-generated table This is a follow-up patch for D122241.
-
zhongyunde authored
WHILELO/LS insn is used very important for SVE loop, and itself is a flag-setting operation, so add it. Reviewed By: paulwalker-arm, david-arm Differential Revision: https://reviews.llvm.org/D122796
-
Hansang Bae authored
This change adds support for ompt_callback_dispatch with the new dispatch chunk type introduced in 5.2. Definitions of the new ompt_work_loop types were also added in the header file. Differential Revision: https://reviews.llvm.org/D122107
-
zhongyunde authored
Accord the discussion in D122281, we missing an ISD::AND combine for MLOAD because it relies on BuildVectorSDNode is fails for scalable vectors. This patch is intend to handle that, so we can circle back the type MVT::nxv2i32 Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D122703
-
Louis Dionne authored
This patch implements P0674R1, i.e. support for arrays in std::make_shared and std::allocate_shared. Co-authored-by:
Zoe Carver <z.zoelec2@gmail.com> Differential Revision: https://reviews.llvm.org/D62641
-
Shengchen Kan authored
``` {X86::MOVLHPSrr,X86::MOVHPSrm} {X86::VMOVLHPSZrr,X86::VMOVHPSZ128rm} {X86::VMOVLHPSrr,X86::VMOVHPSrm} ``` Each of the three pairs has different mnemonic, so we have to add it manually. This is a follow-up patch for D122477.
-
Nico Weber authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Roman Lebedev authored
[TLI] `TargetLowering::SimplifyDemandedVectorElts()`: narrowing bitcast: fill known zero elts from known src bits E.g. in ``` %i0 = zext <2 x i8> to <2 x i16> %i1 = bitcast <2 x i16> to <4 x i8> ``` the `%i0`'s zero bits are known to be `0xFF00` (upper half of every element is known zero), but no elements are known to be zero, and for `%i1`, we don't know anything about zero bits, but the elements under `0b1010` mask are known to be zero (i.e. the odd elements). But, we didn't perform such a propagation. Noticed while investigating more aggressive `vpmaddwd` formation. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D123163
-
Daniil Kovalev authored
Place PersistentId declaration under #if LLVM_ENABLE_ABI_BREAKING_CHECKS to reduce memory usage when it is not needed. Differential Revision: https://reviews.llvm.org/D120714
-
Alex Zinenko authored
It appears that the DialectRegistry::addExtension template was never instantiated because it contains an obvious compilation error. Fix it. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D123199
-
Nathan Sidwell authored
Add specific dates and versions to note about source_location handling. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D123119
-
Jeremy Morse authored
Variable locations now come in two modes, instruction referencing and DBG_VALUE. At -O0 we pick DBG_VALUE to allow fast construction of variable information. Unfortunately, SelectionDAG edits the optimisation level in the presence of opt-bisect-limit, meaning different passes have different views of what variable location mode we should use. That causes assertions when they're mixed. This patch plumbs through a boolean in SelectionDAG from start to instruction emission, so that we don't rely on the current optimisation level for correctness. Differential Revision: https://reviews.llvm.org/D123033
-
Sven van Haastregt authored
This simplifies completeness comparisons against OpenCLBuiltins.td and also makes the header no longer "claim" the argument name identifiers. Continues the direction set out in D119560.
-
Alexander Belyaev authored
This reverts commit 96e9b6c9.
-
Jay Foad authored
-