[Hexagon] Add saved callee-saved registers as live-in in non-wrapped blocks
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Wed, 27 Jul 2016 16:26:39 +0000 (16:26 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Wed, 27 Jul 2016 16:26:39 +0000 (16:26 +0000)
commita34d63954965891943e71d733832cc7c83be2388
treeb2223e861ebd99e4f0c5e947ff0fd1eca87cd97f
parent8c6eb1566c28aadbcf43208ab984e8c50b7e1c6f
[Hexagon] Add saved callee-saved registers as live-in in non-wrapped blocks

The callee-saved registers that are saved in a function are not pristine,
and so they can be defined and used. In case of shrink-wrapping though,
there are blocks that are outside of the save/restore range, and in those
blocks the saved registers must be treated as pristine. To avoid any uses
of these registers, add them as live-in in all those blocks.
This was already done for blocks reaching function exits after restore,
add code that does the same for blocks reached from the function entry
before save.

llvm-svn: 276886
llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
llvm/lib/Target/Hexagon/HexagonFrameLowering.h