projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2002-07-21 11:46:34 by panne]
[ghc-hetmet.git]
/
ghc
/
includes
/
Updates.h
diff --git
a/ghc/includes/Updates.h
b/ghc/includes/Updates.h
index
9c17466
..
87b7bd6
100644
(file)
--- a/
ghc/includes/Updates.h
+++ b/
ghc/includes/Updates.h
@@
-1,5
+1,5
@@
/* -----------------------------------------------------------------------------
/* -----------------------------------------------------------------------------
- * $Id: Updates.h,v 1.22 2001/01/29 17:23:41 simonmar Exp $
+ * $Id: Updates.h,v 1.27 2001/12/10 18:07:09 sof Exp $
*
* (c) The GHC Team, 1998-1999
*
*
* (c) The GHC Team, 1998-1999
*
@@
-39,7
+39,7
@@
#define UPD_REAL_IND(updclosure, heapptr) \
{ \
const StgInfoTable *info; \
#define UPD_REAL_IND(updclosure, heapptr) \
{ \
const StgInfoTable *info; \
- if (Bdescr((P_)updclosure)->back != (bdescr *)BaseReg) { \
+ if (Bdescr((P_)updclosure)->u.back != (bdescr *)BaseReg) { \
info = LOCK_CLOSURE(updclosure); \
} else { \
info = updclosure->header.info; \
info = LOCK_CLOSURE(updclosure); \
} else { \
info = updclosure->header.info; \
@@
-104,7
+104,7
@@
#if defined(PAR)
/*
#if defined(PAR)
/*
- In a parallel setup several types of closures, might have a blocking queue:
+ In a parallel setup several types of closures might have a blocking queue:
BLACKHOLE_BQ ... same as in the default concurrent setup; it will be
reawakened via calling UPD_IND on that closure after
having finished the computation of the graph
BLACKHOLE_BQ ... same as in the default concurrent setup; it will be
reawakened via calling UPD_IND on that closure after
having finished the computation of the graph
@@
-121,7
+121,7
@@
TSO ... as in the default concurrent setup
BLOCKED_FETCH ... indicating that a TSO on another PE is waiting for
the result of the current computation
TSO ... as in the default concurrent setup
BLOCKED_FETCH ... indicating that a TSO on another PE is waiting for
the result of the current computation
- CONSTR ... a RBHSave closure (which contains data ripped out of
+ CONSTR ... an RBHSave closure (which contains data ripped out of
the closure to make room for a blocking queue; since
it only contains data we use the exisiting type of
a CONSTR closure); this closure is the end of a
the closure to make room for a blocking queue; since
it only contains data we use the exisiting type of
a CONSTR closure); this closure is the end of a
@@
-136,9
+136,7
@@
extern void awakenBlockedQueue(StgBlockingQueueElement *q, StgClosure *node);
if (info == &stg_BLACKHOLE_BQ_info || \
info == &stg_FETCH_ME_BQ_info || \
get_itbl(closure)->type == RBH) { \
if (info == &stg_BLACKHOLE_BQ_info || \
info == &stg_FETCH_ME_BQ_info || \
get_itbl(closure)->type == RBH) { \
- StgBlockingQueueElement *bqe = ((StgBlockingQueue *)closure)->blocking_queue;\
- ASSERT(bqe!=END_BQ_QUEUE); \
- DO_AWAKEN_BQ(bqe, closure); \
+ DO_AWAKEN_BQ(((StgBlockingQueue *)closure)->blocking_queue, closure); \
}
#elif defined(GRAN)
}
#elif defined(GRAN)
@@
-152,9
+150,7
@@
extern void awakenBlockedQueue(StgBlockingQueueElement *q, StgClosure *node);
#define AWAKEN_BQ(info,closure) \
if (info == &stg_BLACKHOLE_BQ_info || \
get_itbl(closure)->type == RBH) { \
#define AWAKEN_BQ(info,closure) \
if (info == &stg_BLACKHOLE_BQ_info || \
get_itbl(closure)->type == RBH) { \
- StgBlockingQueueElement *bqe = ((StgBlockingQueue *)closure)->blocking_queue;\
- ASSERT(bqe!=END_BQ_QUEUE); \
- DO_AWAKEN_BQ(bqe, closure); \
+ DO_AWAKEN_BQ(((StgBlockingQueue *)closure)->blocking_queue, closure); \
}
}
@@
-182,7
+178,9
@@
extern void awakenBlockedQueue(StgTSO *q);
------------------------------------------------------------------------- */
#if defined(PROFILING)
------------------------------------------------------------------------- */
#if defined(PROFILING)
-#define PUSH_STD_CCCS(frame) frame->header.prof.ccs = CCCS
+// frame->header.prof.hp.rs = NULL (or frame-header.prof.hp.ldvw = 0) is unnecessary
+// because it is not used anyhow.
+#define PUSH_STD_CCCS(frame) (frame->header.prof.ccs = CCCS)
#else
#define PUSH_STD_CCCS(frame)
#endif
#else
#define PUSH_STD_CCCS(frame)
#endif
@@
-239,21
+237,17
@@
extern void newCAF(StgClosure*);
SET_INFO((StgInd *)cafptr,(const StgInfoTable*)&stg_IND_STATIC_info);\
}
SET_INFO((StgInd *)cafptr,(const StgInfoTable*)&stg_IND_STATIC_info);\
}
-#ifdef INTERPRETER
-extern void newCAF_made_by_Hugs(StgCAF*);
-#endif
-
/* -----------------------------------------------------------------------------
Update-related prototypes
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Update-related prototypes
-------------------------------------------------------------------------- */
+EXTFUN_RTS(__stg_update_PAP);
+
DLL_IMPORT_RTS extern STGFUN(stg_upd_frame_entry);
extern DLL_IMPORT_RTS const StgInfoTable stg_PAP_info;
DLL_IMPORT_RTS STGFUN(stg_PAP_entry);
DLL_IMPORT_RTS extern STGFUN(stg_upd_frame_entry);
extern DLL_IMPORT_RTS const StgInfoTable stg_PAP_info;
DLL_IMPORT_RTS STGFUN(stg_PAP_entry);
-EXTFUN_RTS(stg_update_PAP);
-
extern DLL_IMPORT_RTS const StgInfoTable stg_AP_UPD_info;
DLL_IMPORT_RTS STGFUN(stg_AP_UPD_entry);
extern DLL_IMPORT_RTS const StgInfoTable stg_AP_UPD_info;
DLL_IMPORT_RTS STGFUN(stg_AP_UPD_entry);