X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FGC.h;h=03f527d0a54c3d07249bc1410131a2367065abc5;hb=5af1615ff84f5ef7c0db4eff486ed55ee3e4c1c5;hp=d45efb96e495c0127269837da3fcbf4ccfd558b0;hpb=c357244371ca5eeaa0d56a6bd349e26a3b16b7dc;p=ghc-hetmet.git diff --git a/rts/sm/GC.h b/rts/sm/GC.h index d45efb9..03f527d 100644 --- a/rts/sm/GC.h +++ b/rts/sm/GC.h @@ -82,17 +82,16 @@ typedef struct step_workspace_ { // where objects to be scavenged go bdescr * todo_bd; + StgPtr todo_free; // free ptr for todo_bd + StgPtr todo_lim; // lim for todo_bd + bdescr * buffer_todo_bd; // buffer to reduce contention // on the step's todos list // where large objects to be scavenged go bdescr * todo_large_objects; - // Objects that need not be, or have already been, scavenged. The - // block at the front of the list is special: objects that don't - // need to be scavenged are copied directly to this block. - // Completed scan blocks also go on this list; but we put them - // after the head block. + // Objects that need not be, or have already been, scavenged. bdescr * scavd_list; lnat n_scavd_blocks; // count of blocks in this list @@ -136,9 +135,9 @@ typedef struct gc_thread_ { // optimise it into a per-thread // variable). - rtsBool failed_to_evac; // failue to evacuate an object typically - // causes it to be recorded in the mutable - // object list + rtsBool failed_to_evac; // failure to evacuate an object typically + // causes it to be recorded in the mutable + // object list rtsBool eager_promotion; // forces promotion to the evac gen // instead of the to-space @@ -146,6 +145,10 @@ typedef struct gc_thread_ { lnat thunk_selector_depth; // ummm.... not used as of now +#ifdef USE_PAPI + int papi_events; +#endif + } gc_thread; extern nat N; @@ -168,7 +171,6 @@ extern bdescr *oldgen_scan_bd; extern StgPtr oldgen_scan; extern long copied; -extern long scavd_copied; #ifdef THREADED_RTS extern SpinLock static_objects_sync;