]> granicus.if.org Git - llvm/commit
[Hexagon] Return the correct chain edge for i1 function calls
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Mon, 23 Oct 2017 19:35:25 +0000 (19:35 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Mon, 23 Oct 2017 19:35:25 +0000 (19:35 +0000)
commitdb797c0e595f0e3a3add96430d4eb0cdd9b11e9b
tree59b2dd3d07d1cf95a54bf92927572311c9c7d449
parent990e764ad8a2eec206ce5dda6aefab059ccd4e92
[Hexagon] Return the correct chain edge for i1 function calls

In HexagonISelLowering, there is code to handle the case when
a function returns an i1 type. In this case, we need to generate
extra nodes to copy the result from R0 to a predicate register.

The code was returning the wrong value for the chain edge which
caused an assert "Wrong topological sorting" when converting the
instructions to MIs.

This patch fixes the problem by returning the chain for the final
copy.

Patch by Brendon Cahoon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316367 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Hexagon/HexagonISelLowering.cpp
test/CodeGen/Hexagon/call-ret-i1.ll [new file with mode: 0644]