- Jun 08, 2022
-
-
David Penry authored
Just a few spelling mistakes and missing newlines Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D127162
-
Benjamin Kramer authored
parseBlock may decide to leave it unchanged. Found by msan.
-
Joseph Huber authored
When we build the libomptarget device runtime library targeting bitcode, we need special care to make sure that certain functions are not optimized out. This is because we manually internalize and optimize these definitions, ignoring their standard linkage semantics. When we build with the static library, we can maintain these semantics and we do not need these to be kept-alive. Furthermore, if they are kept-alive it prevents them from being removed during LTO. This prevents us from completely internalizing `IsSPMDMode` and removing several other functions. This patch removes these for the static library target by using a macro definition to enable them. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D126701
-
- Jun 07, 2022
-
-
Simon Pilgrim authored
[DAG] combineShuffleOfSplatVal - fold shuffle(splat,undef) -> splat, iff the splat contains no UNDEF elements As noticed on D127115 - we were missing this fold, instead just having the shuffle(shuffle(x,undef,splatmask),undef) fold. We should be able to merge these into one using SelectionDAG::isSplatValue, but we'll need to match the shuffle's undef handling first. This also exposed an issue in SelectionDAG::isSplatValue which was incorrectly propagating the undef mask across a bitcast (it was trying to just bail with a APInt::isSubsetOf if it found any undefs but that was actually the wrong way around so didn't fire for partial undef cases).
-
Muhammad Omair Javaid authored
This patch remove XFAIL decorator from tests which as passing on AArch64 Windows. This is tested on surface pro x using tot llvm and clang 14.0.3 as compiler with visual studio 2019 x86_arm64 environment.
-
Muhammad Omair Javaid authored
This patch adds a minor fix in lldbtest.py TestBase.generateSource function. Generated Python source with directory paths was not being escaped properly. This fix makes sure we treat dir path as raw string.
-
Craig Topper authored
If we look through a truncate in matchLinearIVUser, it's possible we find a sext/zext instruction that didn't come from widening. This will fail the MatchedItCount->getType() == InnerInductionPHI->getType() assertion. Fix this by checking that we did not look through a truncate already. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D127149
-
Craig Topper authored
Spotted while reading through the code. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D127146
-
Craig Topper authored
i64 indices aren't supported on Zve32*. Scalarize gathers to prevent generating illegal instructions. Since InstCombine will aggressively canonicalize GEP indices to pointer size, we're pretty much always going to have an i64 index. Trying to predict when SelectionDAG will find a smaller index from the TTI hook used by the ScalarizeMaskedMemIntrinPass seems fragile. To optimize this we probably need an IR pass to rewrite it earlier. Test RUN lines have also been added to make sure the strided load/store optimization still works. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D127179
-
Alexey Bataev authored
nodes, NFC.
-
LLVM GN Syncbot authored
-
David Truby authored
This patch corrects some diagnostics for the SVE sizeless vector operators, including correctly diagnosing when the vectors are different sizes. Differential Revision: https://reviews.llvm.org/D126377
-
Benjamin Kramer authored
Found by msan
-
Matt Arsenault authored
Ideally reductions would never produce invalid IR, and we shouldn't regress on cases that already avoid doing so.
-
Matt Arsenault authored
The intention is that these should never have undef operands. It turns out the restriction the verifier enforces is too lax. The verifier enforces that registers without a register class cannot be undef, but it's valid to use a register with a register class and type. The verifier needs to change to be based on the opcode.
-
Matt Arsenault authored
Try to delete implicit uses, and add undef flags to explicit ones.
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D127117
-
Matt Arsenault authored
MIR support is totally unusable for AMDGPU without this, since the set of reserved registers is set from fields here. Add a clone method to MachineFunctionInfo. This is a subtle variant of the copy constructor that is required if there are any MIR constructs that use pointers. Specifically, at minimum fields that reference MachineBasicBlocks or the MachineFunction need to be adjusted to the values in the new function.
-
Matt Arsenault authored
-
Louis Dionne authored
-
Louis Dionne authored
-
Matt Arsenault authored
-
Matt Arsenault authored
Use the query that doesn't assert if TracksLiveness isn't set, which needs to always be available. We also need to start printing liveins regardless of TracksLiveness.
-
Matt Arsenault authored
-
Guillaume Chatelet authored
I can't remove the function just yet as it is used in the generated .inc files. I would also like to provide a way to compare alignment with TypeSize since it came up a few times. Differential Revision: https://reviews.llvm.org/D126910
-
Simon Pilgrim authored
First step towards enabling shuffle combining starting from VSELECT/BLENDV nodes - this should eventually help improve the codegen reported at Issue #54819
-
Simon Pilgrim authored
-
Pengxuan Zheng authored
MSVC defines _KERNEL_MODE when /kernel is passed. Also, /kernel disables RTTI and C++ exception handling. https://docs.microsoft.com/en-us/cpp/build/reference/kernel-create-kernel-mode-binary?view=msvc-170 Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D126719
-
David Green authored
The MVE shuffle costing for VREV instructions was making incorrect assumptions as to legalized vector types remaining as vectors. Add a quick check to ensure they are indeed vectors before attempting to get the number of elements.
-
David Green authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Guillaume Chatelet authored
-
J. Ryan Stinnett authored
This adds code blocks and inline code formatting to improve the readability of the instruction referencing doc. Reviewed By: Orlando Differential Revision: https://reviews.llvm.org/D126767
-
Martin Boehme authored
Introduced by https://github.com/llvm/llvm-project/commit/1b664460fa4cb507e2af87c48cd269964f3ad747 Sorry for the breakage.
-
Gabor Marton authored
Depends on D126560. Differential Revision: https://reviews.llvm.org/D126878
-
Martin Boehme authored
Reviewed By: sammccall, njames93 Differential Revision: https://reviews.llvm.org/D126853
-
Gabor Marton authored
Aligned with the measures we had in D124674, this condition seems to be unlikely. Nevertheless, I've made some new measurments with stats just for this, and data confirms this is indeed unlikely. Differential Revision: https://reviews.llvm.org/D127190
-
Yuki Okushi authored
The `Builder.defineMacro("__cpp_multidimensional_subscript", "202110L");` line has some `U+C2AD`s that shouldn't necessary here. So removed them. Differential Revision: https://reviews.llvm.org/D127066 -
David Sherwood authored
Pre-commit some tests as part of https://reviews.llvm.org/D126774
-