OSDN Git Service

[Hexagon] Fix assert with packetizing IMPLICIT_DEF instructions
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Fri, 6 Apr 2018 18:19:22 +0000 (18:19 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Fri, 6 Apr 2018 18:19:22 +0000 (18:19 +0000)
commit79debc50372ce12eae471bdea0013a2df299c598
tree9452eb81766ef87cff40c081d9d04d65c6e949f9
parent5a211dfa54831a00b6665d794e9dd05a082e71c4
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329439 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Hexagon/HexagonVLIWPacketizer.cpp