diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-09-27 18:18:44 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-09-27 18:18:44 +0000 |
commit | 1d3222072111953cf5ebb16de5ca0fd680bc3fff (patch) | |
tree | 3207d39a57fa24fcf395ccebf522dbe13bf61cda /llvm/lib/Target/Hexagon/RDFGraph.h | |
parent | 0775a2326e39c0a1c3112f16f4e0ee408c3b97bb (diff) | |
download | bcm5719-llvm-1d3222072111953cf5ebb16de5ca0fd680bc3fff.tar.gz bcm5719-llvm-1d3222072111953cf5ebb16de5ca0fd680bc3fff.zip |
[RDF] Special treatment of exception handling registers
A landing pad can have live-in registers that are defined by the runtime,
not the program (exception pointer register and exception selector
register). Make sure to recognize that case and not link these registers
with any defs in the program.
Each landing pad will have phi nodes added at the beginning to provide
definitions of these registers, but the uses of those phi nodes will not
have any reaching defs.
llvm-svn: 282519
Diffstat (limited to 'llvm/lib/Target/Hexagon/RDFGraph.h')
-rw-r--r-- | llvm/lib/Target/Hexagon/RDFGraph.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/RDFGraph.h b/llvm/lib/Target/Hexagon/RDFGraph.h index 3403b649d56..596bf342885 100644 --- a/llvm/lib/Target/Hexagon/RDFGraph.h +++ b/llvm/lib/Target/Hexagon/RDFGraph.h @@ -821,6 +821,8 @@ namespace rdf { private: void reset(); + std::vector<uint32_t> getLandingPadLiveIns() const; + NodeAddr<NodeBase*> newNode(uint16_t Attrs); NodeAddr<NodeBase*> cloneNode(const NodeAddr<NodeBase*> B); NodeAddr<UseNode*> newUse(NodeAddr<InstrNode*> Owner, |