- Nov 03, 2019
-
-
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
-
Kamil Rytarowski authored
Add missing pad for sparc, alpha and a variation of i386.
-
Kamil Rytarowski authored
Document the minimal version supported as 9.0 and add compat code for renamed syscalls after 9.0.
-
Aaron Puchert authored
This was introduced in D61357, probably by accident.
-
Simon Pilgrim authored
We were checking M for a null value after we'd already dereferenced it multiple times.
-
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
-
-
Fangrui Song authored
[CodeGenCXX][test] Use -fno-experimental-new-pass-manager for CodeGenCXX/union-tbaa2.cpp after D68593/llvmorg-10-init-8907-gcecc0d27ad5 It fails with -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=0 builds. Temporarily use -fno-experimental-new-pass-manager while we are investigating the root cause.
-
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
-
Simon Pilgrim authored
Stop static analyzer warnings about using bitwise operators on booleans.
-
Florian Hahn authored
If the recurrence PHI node has a single user, we can sink any instruction without side effects, given that all users are dominated by the instruction computing the incoming value of the next iteration ('Previous'). We can sink instructions that may cause traps, because that only causes the trap to occur later, but not on any new paths. With the relaxed check, we also have to make sure that we do not have a direct cycle (meaning PHI user == 'Previous), which indicates a reduction relation, which potentially gets missed by ReductionDescriptor. As follow-ups, we can also sink stores, iff they do not alias with other instructions we move them across and we could also support sinking chains of instructions and multiple users of the PHI. Fixes PR43398. Reviewers: hsaito, dcaballe, Ayal, rengolin Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D69228
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Make it clear that (Flags & MTRF_????) should resolve to a boolean.
-
Johannes Doerfert authored
If we do not look at assumed information there is no need to track dependences.
-
Johannes Doerfert authored
Dependences between two abstract attributes SRC and TRG come naturally in two flavors: Either (1) "some" information of SRC is *required* for TRG to derive information, or (2) SRC is just an *optional* way for TRG to derive information. While it is not strictly necessary to distinguish these types explicitly, it can help us to converge faster, in terms of iterations, and also cut down the number of `AbstractAttribute::update` calls. As far as I can tell, we only use optional dependences for liveness so far but that might change in the future. With this change the Attributor can be informed about the "dependence class" and it will perform appropriate actions when an Attribute is set to an invalid state, thus one that cannot be used by others to derive information from.
-