[PATCH] D58646: [X86] In X86DomainReassignment.cpp add enclosed registers to EnclosedEdges

Guozhi Wei via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 25 14:42:39 PST 2019


Carrot created this revision.
Carrot added reviewers: guyblank, craig.topper.
Herald added subscribers: llvm-commits, jdoerfert.
Herald added a project: LLVM.

The variable X86DomainReassignment::EnclosedEdges is used to store registers that have been enclosed in some closure, so those registers will be ignored when create new closures. But there is no registers has ever been put into this set, so a single register can be enclosed in multiple closures, it significantly increase compile time.

This patch adds a register into EnclosedEdges when it is enclosed into a closure.


Repository:
  rL LLVM

https://reviews.llvm.org/D58646

Files:
  lib/Target/X86/X86DomainReassignment.cpp


Index: lib/Target/X86/X86DomainReassignment.cpp
===================================================================
--- lib/Target/X86/X86DomainReassignment.cpp
+++ lib/Target/X86/X86DomainReassignment.cpp
@@ -556,6 +556,7 @@
     // Register already in this closure.
     if (!C.insertEdge(CurReg))
       continue;
+    EnclosedEdges.insert(Reg);
 
     MachineInstr *DefMI = MRI->getVRegDef(CurReg);
     encloseInstr(C, DefMI);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58646.188255.patch
Type: text/x-patch
Size: 432 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190225/3e31ec85/attachment.bin>


More information about the llvm-commits mailing list