#
46f9c6cf |
| 04-Feb-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
MachineVerifier: Move verification of G_* instructions to function
llvm-svn: 353111
|
#
ccb810fb |
| 30-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Verify memory size for load/store
llvm-svn: 352578
|
#
d45b03bb |
| 29-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Verify pointer casts
Not sure if the old AArch64 tests should be just deleted or not.
llvm-svn: 352562
|
#
fdfb7d78 |
| 27-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Verify load/store has a pointer input
I expected this to be automatically verified, but it seems nothing uses that the type index was declared as a "ptype"
llvm-svn: 352319
|
#
711bbdc8 |
| 27-Jan-2019 |
Amara Emerson <aemerson@apple.com> |
Re-apply "r351584: "GlobalISel: Verify g_zextload and g_sextload""
I reverted it originally due to a bot failing. The underlying bug has been fixed as of r352311.
llvm-svn: 352312
|
Revision tags: llvmorg-8.0.0-rc1 |
|
#
a7cd83bc |
| 22-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Disallow vectors for G_CONSTANT/G_FCONSTANT
llvm-svn: 351853
|
#
c19e17dd |
| 22-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Fix out of bounds crashes in verifier
llvm-svn: 351769
|
#
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
#
d5015edb |
| 19-Jan-2019 |
Amara Emerson <aemerson@apple.com> |
Revert r351584: "GlobalISel: Verify g_zextload and g_sextload"
This new assertion triggered on the AArch64 GlobalISel bots. Reverting while it's being investigated.
llvm-svn: 351617
|
#
bd3a5b29 |
| 18-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Verify G_BITCAST
llvm-svn: 351594
|
#
215c4f68 |
| 18-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Verify G_ICMP/G_FCMP vector types
llvm-svn: 351591
|
#
f67ae611 |
| 18-Jan-2019 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
GlobalISel: Verify g_zextload and g_sextload
llvm-svn: 351584
|
#
dad8c6a1 |
| 09-Jan-2019 |
Hiroshi Inoue <inouehrs@jp.ibm.com> |
[NFC] fix trivial typos in comments
llvm-svn: 350690
|
#
c1ece1b4 |
| 08-Jan-2019 |
Florian Hahn <flo@fhahn.com> |
[MachineVerifier] Include offending register in allocatable live-in error msg.
This patch adds a convenience report() method for physical registers and uses it to print the offending register with t
[MachineVerifier] Include offending register in allocatable live-in error msg.
This patch adds a convenience report() method for physical registers and uses it to print the offending register with the 'MBB has allocatable live-in' error.
Reviewers: MatzeB, rtereshin, dsanders
Reviewed By: dsanders
Differential Revision: https://reviews.llvm.org/D55946
llvm-svn: 350630
show more ...
|
#
5ec14604 |
| 10-Dec-2018 |
Amara Emerson <aemerson@apple.com> |
[GlobalISel] Restrict G_MERGE_VALUES capability and replace with new opcodes.
This patch restricts the capability of G_MERGE_VALUES, and uses the new G_BUILD_VECTOR and G_CONCAT_VECTORS opcodes inst
[GlobalISel] Restrict G_MERGE_VALUES capability and replace with new opcodes.
This patch restricts the capability of G_MERGE_VALUES, and uses the new G_BUILD_VECTOR and G_CONCAT_VECTORS opcodes instead in the appropriate places.
This patch also includes AArch64 support for selecting G_BUILD_VECTOR of <4 x s32> and <2 x s64> vectors.
Differential Revisions: https://reviews.llvm.org/D53629
llvm-svn: 348788
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3 |
|
#
a0b15d8f |
| 05-Dec-2018 |
Amara Emerson <aemerson@apple.com> |
[GlobalISel] Introduce G_BUILD_VECTOR, G_BUILD_VECTOR_TRUNC and G_CONCAT_VECTOR opcodes.
These opcodes are intended to subsume some of the capability of G_MERGE_VALUES, as it was too powerful and th
[GlobalISel] Introduce G_BUILD_VECTOR, G_BUILD_VECTOR_TRUNC and G_CONCAT_VECTOR opcodes.
These opcodes are intended to subsume some of the capability of G_MERGE_VALUES, as it was too powerful and thus complex to add deal with throughout the GISel pipeline.
G_BUILD_VECTOR creates a vector value from a sequence of uniformly typed scalar values. G_BUILD_VECTOR_TRUNC is a special opcode for handling scalar operands which are larger than the destination vector element type, and therefore does an implicit truncate.
G_CONCAT_VECTOR creates a vector by concatenating smaller, uniformly typed, vectors together.
These will be used in a subsequent commit. This commit just adds the initial infrastructure.
Differential Revision: https://reviews.llvm.org/D53594
llvm-svn: 348430
show more ...
|
Revision tags: llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
9ef8e51c |
| 23-Oct-2018 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix typo in verifier error message
llvm-svn: 345083
|
#
1b493739 |
| 03-Oct-2018 |
Daniel Sanders <daniel_l_sanders@apple.com> |
[machineverifier] Detect PHI's that are preceeded by non-PHI's
If present, PHI nodes must appear before non-PHI nodes in a basic block. The register allocator relies on this and will fail to elimina
[machineverifier] Detect PHI's that are preceeded by non-PHI's
If present, PHI nodes must appear before non-PHI nodes in a basic block. The register allocator relies on this and will fail to eliminate PHI's that do not meet this requirement.
llvm-svn: 343731
show more ...
|
#
74de21d0 |
| 02-Oct-2018 |
Daniel Sanders <daniel_l_sanders@apple.com> |
[globalisel][verifier] Run the MachineVerifier from IRTranslator onwards
-verify-machineinstrs inserts the MachineVerifier after every MachineInstr-based pass. However, GlobalISel creates MachineIns
[globalisel][verifier] Run the MachineVerifier from IRTranslator onwards
-verify-machineinstrs inserts the MachineVerifier after every MachineInstr-based pass. However, GlobalISel creates MachineInstr-based passes earlier than DAGISel and the corresponding verifiers are not being added. This patch fixes that.
If GlobalISel triggers the fallback path then the MIR can be left in a bad state that is going to be cleared by ResetMachineFunctions. In this situation verifying between GlobalISel passes will prevent the fallback path from recovering from this. As a result, we bail out of verifying a function if the FailedISel attribute is present.
llvm-svn: 343613
show more ...
|
#
b2154af2 |
| 20-Sep-2018 |
Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> |
[MachineVerifier] Relax checkLivenessAtDef regarding dead subreg defs
Summary: Consider an instruction that has multiple defs of the same vreg, but defining different subregs: %7.sub1:rc, dead %7.
[MachineVerifier] Relax checkLivenessAtDef regarding dead subreg defs
Summary: Consider an instruction that has multiple defs of the same vreg, but defining different subregs: %7.sub1:rc, dead %7.sub2:rc = inst
Calling checkLivenessAtDef for the live interval associated with %7 incorrectly reported "live range continues after a dead def". The live range for %7 has a dead def at the slot index for "inst" even if the live range continues (given that there are later uses of %7.sub1).
This patch adjusts MachineVerifier::checkLivenessAtDef to allow dead subregister definitions, unless we are checking a subrange (when tracking subregister liveness).
A limitation is that we do not detect the situation when the live range continues past an instruction that defines the full virtual register by multiple dead subreg defines.
I also removed some dead code related to physical register in checkLivenessAtDef. Wwe only call that method for virtual registers, so I added an assertion instead.
Reviewers: kparzysz
Reviewed By: kparzysz
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D52237
llvm-svn: 342618
show more ...
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3 |
|
#
9eb3dda0 |
| 27-Aug-2018 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
MachineVerifier: Fix assert on implicit virtreg use
If the liveness of a physical register was invalid, this was attempting to iterate the subregisters of all register uses of the instruction, which
MachineVerifier: Fix assert on implicit virtreg use
If the liveness of a physical register was invalid, this was attempting to iterate the subregisters of all register uses of the instruction, which would assert when it encountered an implicit virtual register operand.
llvm-svn: 340763
show more ...
|
Revision tags: llvmorg-7.0.0-rc2 |
|
#
9af86a5e |
| 16-Aug-2018 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
[MachineVerifier] Check if predecessor is jointly dominated by undefs
Each use of a value should be jointly dominated by the union of defs and undefs. It can happen that it will only be jointly domi
[MachineVerifier] Check if predecessor is jointly dominated by undefs
Each use of a value should be jointly dominated by the union of defs and undefs. It can happen that it will only be jointly dominated by undefs, and that is still legal. Make sure that the verifier is aware of that.
llvm-svn: 339924
show more ...
|
Revision tags: llvmorg-7.0.0-rc1 |
|
#
f78650a8 |
| 30-Jul-2018 |
Fangrui Song <maskray@google.com> |
Remove trailing space
sed -Ei 's/[[:space:]]+$//' include/**/*.{def,h,td} lib/**/*.{cpp,h}
llvm-svn: 338293
|
#
cb0bab86 |
| 16-Jul-2018 |
Fangrui Song <maskray@google.com> |
[CodeGen] Fix inconsistent declaration parameter name
llvm-svn: 337200
|
#
42f7bc96 |
| 21-Jun-2018 |
Mikael Holmen <mikael.holmen@ericsson.com> |
[DebugInfo] Make sure all DBG_VALUEs' reguse operands have IsDebug property
Summary: In some cases, these operands lacked the IsDebug property, which is meant to signal that they should not affect c
[DebugInfo] Make sure all DBG_VALUEs' reguse operands have IsDebug property
Summary: In some cases, these operands lacked the IsDebug property, which is meant to signal that they should not affect codegen. This patch adds a check for this property in the MachineVerifier and adds it where it was missing.
This includes refactorings to use MachineInstrBuilder construction functions instead of manually setting up the intrinsic everywhere.
Patch by: JesperAntonsson
Reviewers: aprantl, rnk, echristo, javed.absar
Reviewed By: aprantl
Subscribers: qcolombet, sdardis, nemanjai, JDevlieghere, atanasyan, llvm-commits
Differential Revision: https://reviews.llvm.org/D48319
llvm-svn: 335214
show more ...
|