Add SCCs to some NOINLINE functions
authorBen Lippmeier <benl@ouroborus.net>
Wed, 12 Oct 2011 04:21:56 +0000 (15:21 +1100)
committerBen Lippmeier <benl@ouroborus.net>
Wed, 12 Oct 2011 04:21:56 +0000 (15:21 +1100)
dph-lifted-vseg/Data/Array/Parallel/PArray/PData/Nested.hs
dph-prim-interface/Data/Array/Parallel/Unlifted.hs
dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/USSegd.hs
dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/USegd.hs

index 3963efb..70aa3a5 100644 (file)
@@ -219,7 +219,8 @@ instance PR a => PR (PArray a) where
   -- segment, then point all the virtual segments to it.
   {-# NOINLINE replicatePR #-}
   replicatePR c (PArray n darr)
-   = checkNotEmpty "replicatePR[PArray]" c
+   = {-# SCC "replicatePR" #-}
+     checkNotEmpty "replicatePR[PArray]" c
    $ let -- Physical segment descriptor contains a single segment.
          ussegd  = U.singletonSSegd n
          
@@ -318,7 +319,8 @@ instance PR a => PR (PArray a) where
   -- out all of the psegs that are no longer reachable from the new vsegids.
   {-# NOINLINE extractPR #-}
   extractPR (PNested uvsegd pdata) start len
-   = PNested (U.updateVSegsOfVSegd (\vsegids -> U.extract vsegids start len) uvsegd)
+   = {-# SCC "extractPR" #-}
+     PNested (U.updateVSegsOfVSegd (\vsegids -> U.extract vsegids start len) uvsegd)
              pdata
 
 
@@ -353,7 +355,8 @@ instance PR a => PR (PArray a) where
   --
   {-# NOINLINE extractsPR #-}
   extractsPR arrs ussegd
-   = let segsrcs        = U.sourcesSSegd ussegd
+   = {-# SCC "extractsPR" #-}
+     let segsrcs        = U.sourcesSSegd ussegd
          segstarts      = U.startsSSegd  ussegd
          seglens        = U.lengthsSSegd ussegd
 
index be0ce1f..720ee18 100644 (file)
@@ -182,10 +182,11 @@ data SSegd
         , ssegd_segd    :: Segd }
 
 mkSSegd                 = SSegd
+validSSegd              = notImplemented "validSSegd"
 emptySSegd              = SSegd [] [] emptySegd
 singletonSSegd          = notImplemented "singletonSSegd"
-validSSegd              = notImplemented "validSSegd"
 promoteSegdToSSegd      = notImplemented "promoteSegdToSSegd"
+isContiguousSSegd       = notImplemented "isContiguousSSegd"
 lengthSSegd             = lengthSegd  . ssegd_segd
 lengthsSSegd            = lengthsSegd . ssegd_segd
 indicesSSegd            = indicesSegd . ssegd_segd
@@ -205,6 +206,8 @@ mkVSegd                 = VSegd
 validVSegd              = notImplemented "validSSegd"       
 promoteSegdToVSegd      = notImplemented "promoteSegdToVSegd"
 promoteSSegdToVSegd     = notImplemented "promoteSSegdToVSegd"
+isContiguousVSegd       = notImplemented "isContiguousVSegd"
+isManifestVSegd         = notImplemented "isManifestVSegd"
 emptyVSegd              = VSegd [] emptySSegd
 singletonVSegd          = notImplemented "singletonVSegd"
 lengthOfVSegd           = notImplemented "lengthOfVSegd"
index b2bbbcd..d67c8e1 100644 (file)
@@ -54,7 +54,8 @@ import qualified Data.Array.Parallel.Unlifted.Sequential.Vector         as Seq
 --
 splitSSegdOnElemsD :: Gang -> USSegd -> Dist ((USSegd,Int),Int)
 splitSSegdOnElemsD g !segd 
-  = imapD g mk (splitLenIdxD g (USegd.takeElements $ USSegd.takeUSegd segd))
+  = {-# SCC "splitSSegdOnElemsD" #-}
+    imapD g mk (splitLenIdxD g (USegd.takeElements $ USSegd.takeUSegd segd))
   where 
         -- Number of threads in gang.
         !nThreads = gangSize g
index 3d257db..49f9918 100644 (file)
@@ -111,7 +111,8 @@ splitSegdOnSegsD g !segd
 --
 splitSegdOnElemsD :: Gang -> USegd -> Dist ((USegd,Int),Int)
 splitSegdOnElemsD g !segd 
-  = imapD g mk (splitLenIdxD g (USegd.takeElements segd))
+  = {-# SCC "splitSegdOnElemsD" #-} 
+    imapD g mk (splitLenIdxD g (USegd.takeElements segd))
   where 
         -- Number of threads in gang.
         !nThreads = gangSize g