diff options
| author | Lang Hames <lhames@gmail.com> | 2014-10-27 17:44:25 +0000 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2014-10-27 17:44:25 +0000 |
| commit | 5fe30ca56fd5f4276c0f4d5de721210bbb0514bd (patch) | |
| tree | 80f5366e1d2f0290cb737e74369a8fd50d230320 /llvm/lib/Target | |
| parent | d71825c3cbdb173274c2e3afcef2c66552400648 (diff) | |
| download | bcm5719-llvm-5fe30ca56fd5f4276c0f4d5de721210bbb0514bd.tar.gz bcm5719-llvm-5fe30ca56fd5f4276c0f4d5de721210bbb0514bd.zip | |
[PBQP] Unique allowed-sets for nodes in the PBQP graph and use pairs of these
sets as keys into a cache of interference matrice values in the Interference
constraint adder.
Creating interference matrices was one of the large remaining time-sinks in
PBQP. Caching them reduces the total compile time (when using PBQP) on the
nightly test suite by ~10%.
llvm-svn: 220688
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp b/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp index 05692ee0968..f942c4e98a6 100644 --- a/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp +++ b/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp @@ -174,10 +174,10 @@ bool A57ChainingConstraint::addIntraChainConstraint(PBQPRAGraph &G, unsigned Rd, PBQPRAGraph::NodeId node1 = G.getMetadata().getNodeIdForVReg(Rd); PBQPRAGraph::NodeId node2 = G.getMetadata().getNodeIdForVReg(Ra); - const PBQPRAGraph::NodeMetadata::OptionToRegMap *vRdAllowed = - &G.getNodeMetadata(node1).getOptionRegs(); - const PBQPRAGraph::NodeMetadata::OptionToRegMap *vRaAllowed = - &G.getNodeMetadata(node2).getOptionRegs(); + const PBQPRAGraph::NodeMetadata::AllowedRegVector *vRdAllowed = + &G.getNodeMetadata(node1).getAllowedRegs(); + const PBQPRAGraph::NodeMetadata::AllowedRegVector *vRaAllowed = + &G.getNodeMetadata(node2).getAllowedRegs(); PBQPRAGraph::EdgeId edge = G.findEdge(node1, node2); @@ -268,12 +268,12 @@ void A57ChainingConstraint::addInterChainConstraint(PBQPRAGraph &G, unsigned Rd, const LiveInterval &lr = LIs.getInterval(r); if (ld.overlaps(lr)) { - const PBQPRAGraph::NodeMetadata::OptionToRegMap *vRdAllowed = - &G.getNodeMetadata(node1).getOptionRegs(); + const PBQPRAGraph::NodeMetadata::AllowedRegVector *vRdAllowed = + &G.getNodeMetadata(node1).getAllowedRegs(); PBQPRAGraph::NodeId node2 = G.getMetadata().getNodeIdForVReg(r); - const PBQPRAGraph::NodeMetadata::OptionToRegMap *vRrAllowed = - &G.getNodeMetadata(node2).getOptionRegs(); + const PBQPRAGraph::NodeMetadata::AllowedRegVector *vRrAllowed = + &G.getNodeMetadata(node2).getAllowedRegs(); PBQPRAGraph::EdgeId edge = G.findEdge(node1, node2); assert(edge != G.invalidEdgeId() && |

