utils: detabify/dewhitespace GraphBase
authorAustin Seipp <austin@well-typed.com>
Wed, 20 Aug 2014 08:33:28 +0000 (03:33 -0500)
committerAustin Seipp <austin@well-typed.com>
Wed, 20 Aug 2014 08:47:35 +0000 (03:47 -0500)
Signed-off-by: Austin Seipp <austin@well-typed.com>
compiler/utils/GraphBase.hs

index 2aa16ae..c3850df 100644 (file)
@@ -1,22 +1,14 @@
 
 -- | Types for the general graph colorer.
-
-{-# OPTIONS_GHC -fno-warn-tabs #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and
--- detab the module (please do the detabbing in a separate patch). See
---     http://ghc.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#TabsvsSpaces
--- for details
-
 module GraphBase (
-       Triv,
-       Graph (..),
-       initGraph,
-       graphMapModify,
+        Triv,
+        Graph (..),
+        initGraph,
+        graphMapModify,
 
-       Node  (..),     newNode,
+        Node  (..),     newNode,
 )
-       
+
 
 where
 
@@ -25,94 +17,89 @@ import UniqFM
 
 
 -- | A fn to check if a node is trivially colorable
---     For graphs who's color classes are disjoint then a node is 'trivially colorable'
---     when it has less neighbors and exclusions than available colors for that node.
+--      For graphs who's color classes are disjoint then a node is 'trivially colorable'
+--      when it has less neighbors and exclusions than available colors for that node.
 --
---     For graph's who's color classes overlap, ie some colors alias other colors, then
---     this can be a bit more tricky. There is a general way to calculate this, but 
---     it's likely be too slow for use in the code. The coloring algorithm takes
---     a canned function which can be optimised by the user to be specific to the 
---     specific graph being colored.
+--      For graph's who's color classes overlap, ie some colors alias other colors, then
+--      this can be a bit more tricky. There is a general way to calculate this, but
+--      it's likely be too slow for use in the code. The coloring algorithm takes
+--      a canned function which can be optimised by the user to be specific to the
+--      specific graph being colored.
 --
---     for details, see  "A Generalised Algorithm for Graph-Coloring Register Allocation"
---                             Smith, Ramsey, Holloway - PLDI 2004.
+--      for details, see  "A Generalised Algorithm for Graph-Coloring Register Allocation"
+--                              Smith, Ramsey, Holloway - PLDI 2004.
 --
 type Triv k cls color
-       =  cls                  -- the class of the node we're trying to color.
-       -> UniqSet k            -- the node's neighbors.
-       -> UniqSet color        -- the node's exclusions.
-       -> Bool         
+        =  cls                  -- the class of the node we're trying to color.
+        -> UniqSet k            -- the node's neighbors.
+        -> UniqSet color        -- the node's exclusions.
+        -> Bool
 
 
 -- | The Interference graph.
---     There used to be more fields, but they were turfed out in a previous revision.
---     maybe we'll want more later..
+--      There used to be more fields, but they were turfed out in a previous revision.
+--      maybe we'll want more later..
 --
 data Graph k cls color
-       = Graph { 
-       -- | All active nodes in the graph.
-         graphMap              :: UniqFM (Node k cls color)  }
+        = Graph {
+        -- | All active nodes in the graph.
+          graphMap              :: UniqFM (Node k cls color)  }
 
 
--- | An empty graph.   
+-- | An empty graph.
 initGraph :: Graph k cls color
 initGraph
-       = Graph
-       { graphMap              = emptyUFM }
+        = Graph
+        { graphMap              = emptyUFM }
 
 
 -- | Modify the finite map holding the nodes in the graph.
-graphMapModify 
-       :: (UniqFM (Node k cls color) -> UniqFM (Node k cls color))
-       -> Graph k cls color -> Graph k cls color
+graphMapModify
+        :: (UniqFM (Node k cls color) -> UniqFM (Node k cls color))
+        -> Graph k cls color -> Graph k cls color
 
 graphMapModify f graph
-       = graph { graphMap      = f (graphMap graph) }
-       
-               
+        = graph { graphMap      = f (graphMap graph) }
+
+
 
 -- | Graph nodes.
---     Represents a thing that can conflict with another thing.
---     For the register allocater the nodes represent registers.
+--      Represents a thing that can conflict with another thing.
+--      For the register allocater the nodes represent registers.
 --
 data Node k cls color
-       = Node {        
-       -- | A unique identifier for this node.
-         nodeId                :: k
+        = Node {
+        -- | A unique identifier for this node.
+          nodeId                :: k
 
-       -- | The class of this node,
-       --      determines the set of colors that can be used.
-       , nodeClass             :: cls
+        -- | The class of this node,
+        --      determines the set of colors that can be used.
+        , nodeClass             :: cls
 
-       -- | The color of this node, if any.
-       , nodeColor             :: Maybe color
+        -- | The color of this node, if any.
+        , nodeColor             :: Maybe color
 
-       -- | Neighbors which must be colored differently to this node.
-       , nodeConflicts         :: UniqSet k
+        -- | Neighbors which must be colored differently to this node.
+        , nodeConflicts         :: UniqSet k
 
-       -- | Colors that cannot be used by this node.
-       , nodeExclusions        :: UniqSet color
+        -- | Colors that cannot be used by this node.
+        , nodeExclusions        :: UniqSet color
 
-       -- | Colors that this node would prefer to be, in decending order.
-       , nodePreference        :: [color]  
+        -- | Colors that this node would prefer to be, in decending order.
+        , nodePreference        :: [color]
 
-       -- | Neighbors that this node would like to be colored the same as.
-       , nodeCoalesce          :: UniqSet k }
+        -- | Neighbors that this node would like to be colored the same as.
+        , nodeCoalesce          :: UniqSet k }
 
 
 -- | An empty node.
 newNode :: k -> cls -> Node k cls color
 newNode k cls
-       = Node
-       { nodeId                = k
-       , nodeClass             = cls
-       , nodeColor             = Nothing
-       , nodeConflicts         = emptyUniqSet
-       , nodeExclusions        = emptyUniqSet
-       , nodePreference        = [] 
-       , nodeCoalesce          = emptyUniqSet }
-
-
-
-
-
+        = Node
+        { nodeId                = k
+        , nodeClass             = cls
+        , nodeColor             = Nothing
+        , nodeConflicts         = emptyUniqSet
+        , nodeExclusions        = emptyUniqSet
+        , nodePreference        = []
+        , nodeCoalesce          = emptyUniqSet }