Mark/compact: use a dynamically-sized mark stack, and don't do linear scan
[ghc-hetmet.git] / rts / sm / Compact.h
index 1e89ad3..efd7351 100644 (file)
 #ifndef SM_COMPACT_H
 #define SM_COMPACT_H
 
-#pragma GCC visibility push(hidden)
-
-INLINE_HEADER rtsBool
-mark_stack_empty(void)
-{
-    return mark_sp == mark_stack;
-}
-
-INLINE_HEADER rtsBool
-mark_stack_full(void)
-{
-    return mark_sp >= mark_splim;
-}
-
-INLINE_HEADER void
-reset_mark_stack(void)
-{
-    mark_sp = mark_stack;
-}
-
-INLINE_HEADER void
-push_mark_stack(StgPtr p)
-{
-    *mark_sp++ = p;
-}
-
-INLINE_HEADER StgPtr
-pop_mark_stack(void)
-{
-    return *--mark_sp;
-}
+BEGIN_RTS_PRIVATE
 
 INLINE_HEADER void 
 mark(StgPtr p, bdescr *bd)
@@ -78,6 +48,6 @@ is_marked(StgPtr p, bdescr *bd)
 
 void compact (StgClosure *static_objects);
 
-#pragma GCC visibility pop
+END_RTS_PRIVATE
 
 #endif /* SM_COMPACT_H */