mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[Hexagon] Fix assert with packetizing IMPLICIT_DEF instructions
The compiler is generating packet with the following instructions, which causes an undefined register assert in the verifier. $r0 = IMPLICIT_DEF $r1 = IMPLICIT_DEF S2_storerd_io killed $r29, 0, killed %d0 The problem is that the packetizer is not saving the IMPLICIT_DEF instructions, which are needed when checking if it is legal to add the store instruction. The fix is to add the IMPLICIT_DEF instructions to the CurrentPacketMIs structure. Patch by Brendon Cahoon. llvm-svn: 329439
This commit is contained in:
parent
e25a65a321
commit
96a41fe994
@ -1687,8 +1687,12 @@ HexagonPacketizerList::addToPacket(MachineInstr &MI) {
|
||||
PacketStalls = false;
|
||||
PacketStalls |= producesStall(MI);
|
||||
|
||||
if (MI.isImplicitDef())
|
||||
if (MI.isImplicitDef()) {
|
||||
// Add to the packet to allow subsequent instructions to be checked
|
||||
// properly.
|
||||
CurrentPacketMIs.push_back(&MI);
|
||||
return MII;
|
||||
}
|
||||
assert(ResourceTracker->canReserveResources(MI));
|
||||
|
||||
bool ExtMI = HII->isExtended(MI) || HII->isConstExtended(MI);
|
||||
|
Loading…
x
Reference in New Issue
Block a user