- Nov 04, 2019
-
-
Gil Rapaport authored
The sink-after and interleave-group vectorization decisions were so far applied to VPlan during initial VPlan construction, which complicates VPlan construction – also because of their inter-dependence. This patch refactors buildVPlanWithRecipes() to construct a simpler initial VPlan and later apply both these vectorization decisions, in order, as VPlan-to-VPlan transformations. Differential Revision: https://reviews.llvm.org/D68577
-
Pengfei Wang authored
Summary: This patch sets the FPSW (X87 floating-point status register) as a reserved physical register and fix the test failure caused by [[ https://reviews.llvm.org/D68854| D68854 ]]. Before this patch, some tests will fail because it implicit uses FPSW without define it. Setting the FPSW as a reserved physical register will skip liveness analysis because it is always live. Reviewers: pengfei, craig.topper Reviewed By: craig.topper Subscribers: craig.topper, hiraditya, llvm-commits Patch by LiuChen. Differential Revision: https://reviews.llvm.org/D69784
-
- Nov 03, 2019
-
-
Simon Atanasyan authored
-
Simon Atanasyan authored
-
Simon Atanasyan authored
-
Simon Pilgrim authored
[X86][SSE] combineX86ShufflesRecursively - at Depth==0, only resolve KnownZero if it removes an input. This stops infinite loops where KnownUndef elements are converted to Zeroable, resulting in KnownZero elements which are then simplified (via SimplifyDemandedElts etc.) back to KnownUndef elements........ Prep fix for PR43024 which will allow rL368307 to be re-applied.
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
This reverts commit 8308187f. This exposed a bug.
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
This reverts commit b8685cf3.
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Craig Topper authored
[opaque pointer types] Add element type argument to IRBuilder CreatePreserveStructAccessIndex and CreatePreserveArrayAccessIndex Summary: These were the only remaining users of the GetElementPtrInst::getGEPReturnType method that gets the element type from the pointer type. Remove that method since its now dead. Reviewers: jyknight, t.p.northover, arsenm Reviewed By: arsenm Subscribers: wdng, arsenm, arphaman, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D69756
-
Nico Weber authored
-
Simon Pilgrim authored
This doesn't affect actual codegen, but is a minor refactor toward fixing PR43024 where we need to avoid excess changes (folding zeroables etc.) to the shuffle mask at Depth == 0.
-
Simon Pilgrim authored
Fixes MSVC static analyzer warnings about enum safety, this enum performs no integer math so it'd be better to fix its scope.
-
Bjorn Pettersson authored
DIExpression::isImplicit() did not handle DW_OP_LLVM_fragment correctly. It was scanning the elements in the expression by iterating from the end. But we do not know the position of ops unless we iterate from the beginning of the expression, since DW_OP:s and their operands are stored flat in the expression list. The old code also assumed that a DW_OP_LLVM_fragment only occupied one element in the expression list, but it actually occupies three elements.
-
Yonghong Song authored
During deriving proper bitfield access FIELD_BYTE_SIZE, function Member->getStorageOffsetInBits() is used to get llvm IR type storage offset in bits so that the byte size can permit aligned loads/stores with previously derived FIELD_BYTE_OFFSET. The function should only be used with bitfield members and it will assert if ASSERT is turned on during cmake build. Constant *getStorageOffsetInBits() const { assert(getTag() == dwarf::DW_TAG_member && isBitField()); if (auto *C = cast_or_null<ConstantAsMetadata>(getExtraData())) return C->getValue(); return nullptr; } This patch fixed the issue by using Member->isBitField() directly and a test case is added to cover this missing case. This issue is discovered when running Andrii's linux kernel CO-RE tests. Differential Revision: https://reviews.llvm.org/D69761
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Allows us to auto define the default constructor as well.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
shkzhang authored
Summary: For below test case, we will get assert error except for AArch64 and ARM: declare i8 @llvm.experimental.vector.reduce.and.i8.v3i8(<3 x i8> %a) define i8 @test_v3i8(<3 x i8> %a) nounwind { %b = call i8 @llvm.experimental.vector.reduce.and.i8.v3i8(<3 x i8> %a) ret i8 %b } In the function getShuffleReduction (), we can see it needs the vector size must be power of 2. This patch is fix below error when the number of element is not power of 2 for those llvm.experimental.vector.reduce.* function. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D68625
-
- Nov 02, 2019
-
-
Simon Pilgrim authored
Call each of the rebase_if() calls separately.
-
Simon Pilgrim authored
Ensure the test still runs all target checks but stop the static analyzer warnings.
-
Fangrui Song authored
CodeGen/DIE.h: prefer the default member initializer to the member initializers in the constructor. NFC
-
Simon Atanasyan authored
-
Simon Atanasyan authored
-
Simon Pilgrim authored
-