From: Clement Courbet Date: Thu, 16 May 2019 12:48:56 +0000 (+0000) Subject: [DominatorTree] Print roots unconditionally in `print()`. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=80a3c871d90d70cc74bd89b1162ca6c289d648f8;p=llvm [DominatorTree] Print roots unconditionally in `print()`. Summary: This came up in a debugging session. I was failing to update the root of the tree, and got during verification: ``` DominatorTree is different than a freshly computed one! Current: =============================-------------------------------- Inorder Dominator Tree: DFSNumbers invalid: 0 slow queries. [1] %"entry+land.rhs.i" {4294967295,4294967295} [0] [2] %opeq1.exit {4294967295,4294967295} [1] Freshly computed tree: =============================-------------------------------- Inorder Dominator Tree: DFSNumbers invalid: 0 slow queries. [1] %"entry+land.rhs.i" {4294967295,4294967295} [0] [2] %opeq1.exit {4294967295,4294967295} [1] ``` We now print: ``` DominatorTree is different than a freshly computed one! Current: =============================-------------------------------- Inorder Dominator Tree: DFSNumbers invalid: 0 slow queries. [1] %"entry+land.rhs.i" {4294967295,4294967295} [0] [2] %opeq1.exit {4294967295,4294967295} [1] Roots: Freshly computed tree: =============================-------------------------------- Inorder Dominator Tree: DFSNumbers invalid: 0 slow queries. [1] %"entry+land.rhs.i" {4294967295,4294967295} [0] [2] %opeq1.exit {4294967295,4294967295} [1] Roots: %"entry+land.rhs.i" ``` Reviewers: kuhar, asbirlea Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61999 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360886 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/GenericDomTree.h b/include/llvm/Support/GenericDomTree.h index 53a613ea420..99620802505 100644 --- a/include/llvm/Support/GenericDomTree.h +++ b/include/llvm/Support/GenericDomTree.h @@ -669,14 +669,12 @@ protected: // The postdom tree can have a null root if there are no returns. if (getRootNode()) PrintDomTree(getRootNode(), O, 1); - if (IsPostDominator) { - O << "Roots: "; - for (const NodePtr Block : Roots) { - Block->printAsOperand(O, false); - O << " "; - } - O << "\n"; + O << "Roots: "; + for (const NodePtr Block : Roots) { + Block->printAsOperand(O, false); + O << " "; } + O << "\n"; } public: