Commit a2970f88 authored by thomie's avatar thomie

RTS: delete BlockedOnGA* + dead code

Some old stuff related to the PAR way.

Reviewed by: austin, simonmar

Differential Revision: https://phabricator.haskell.org/D2137
parent 0fa1d075
...@@ -212,11 +212,6 @@ ...@@ -212,11 +212,6 @@
/* Win32 only: */ /* Win32 only: */
#define BlockedOnDoProc 7 #define BlockedOnDoProc 7
/* Only relevant for PAR: */
/* blocked on a remote closure represented by a Global Address: */
#define BlockedOnGA 8
/* same as above but without sending a Fetch message */
#define BlockedOnGA_NoSend 9
/* Only relevant for THREADED_RTS: */ /* Only relevant for THREADED_RTS: */
#define BlockedOnCCall 10 #define BlockedOnCCall 10
#define BlockedOnCCall_Interruptible 11 #define BlockedOnCCall_Interruptible 11
......
...@@ -177,12 +177,6 @@ STATIC_LINK(const StgInfoTable *info, StgClosure *p) ...@@ -177,12 +177,6 @@ STATIC_LINK(const StgInfoTable *info, StgClosure *p)
} }
} }
INLINE_HEADER StgClosure *STATIC_LINK2(const StgInfoTable *info,
StgClosure *p) {
return (*(StgClosure**)(&((p)->payload[info->layout.payload.ptrs +
info->layout.payload.nptrs + 1])));
}
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
INTLIKE and CHARLIKE closures. INTLIKE and CHARLIKE closures.
-------------------------------------------------------------------------- */ -------------------------------------------------------------------------- */
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
position-independent code. position-independent code.
Note [x86-64-relative] Note [x86-64-relative]
There is a complication on the x86_64 platform, where pointeres are There is a complication on the x86_64 platform, where pointers are
64 bits, but the tools don't support 64-bit relative relocations. 64 bits, but the tools don't support 64-bit relative relocations.
However, the default memory model (small) ensures that all symbols However, the default memory model (small) ensures that all symbols
have values in the lower 2Gb of the address space, so offsets all have values in the lower 2Gb of the address space, so offsets all
...@@ -208,7 +208,7 @@ typedef struct StgInfoTable_ { ...@@ -208,7 +208,7 @@ typedef struct StgInfoTable_ {
#ifdef TABLES_NEXT_TO_CODE #ifdef TABLES_NEXT_TO_CODE
StgCode code[]; StgCode code[];
#endif #endif
} *StgInfoTablePtr; } *StgInfoTablePtr; // StgInfoTable defined in rts/Types.h
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
......
...@@ -184,7 +184,7 @@ typedef struct StgTSO_ { ...@@ -184,7 +184,7 @@ typedef struct StgTSO_ {
StgWord32 saved_winerror; StgWord32 saved_winerror;
#endif #endif
} *StgTSOPtr; } *StgTSOPtr; // StgTSO defined in rts/Types.h
typedef struct StgStack_ { typedef struct StgStack_ {
StgHeader header; StgHeader header;
...@@ -242,8 +242,6 @@ void dirty_STACK (Capability *cap, StgStack *stack); ...@@ -242,8 +242,6 @@ void dirty_STACK (Capability *cap, StgStack *stack);
BlockedOnRead NULL blocked_queue BlockedOnRead NULL blocked_queue
BlockedOnWrite NULL blocked_queue BlockedOnWrite NULL blocked_queue
BlockedOnDelay NULL blocked_queue BlockedOnDelay NULL blocked_queue
BlockedOnGA closure TSO blocks on BQ of that closure
BlockedOnGA_NoSend closure TSO blocks on BQ of that closure
tso->link == END_TSO_QUEUE, if the thread is currently running. tso->link == END_TSO_QUEUE, if the thread is currently running.
...@@ -258,13 +256,6 @@ void dirty_STACK (Capability *cap, StgStack *stack); ...@@ -258,13 +256,6 @@ void dirty_STACK (Capability *cap, StgStack *stack);
(tso->sp is left pointing at the top word on the stack so that (tso->sp is left pointing at the top word on the stack so that
the return value or exception will be retained by a GC). the return value or exception will be retained by a GC).
The 2 cases BlockedOnGA and BlockedOnGA_NoSend are needed in a GUM
setup only. They mark a TSO that has entered a FETCH_ME or
FETCH_ME_BQ closure, respectively; only the first TSO hitting the
closure will send a Fetch message.
Currently we have no separate code for blocking on an RBH; we use the
BlockedOnBlackHole case for that. -- HWL
---------------------------------------------------------------------------- */ ---------------------------------------------------------------------------- */
/* this is the NIL ptr for a TSO queue (e.g. runnable queue) */ /* this is the NIL ptr for a TSO queue (e.g. runnable queue) */
......
...@@ -1702,10 +1702,6 @@ scavenge_static(void) ...@@ -1702,10 +1702,6 @@ scavenge_static(void)
ASSERT(LOOKS_LIKE_CLOSURE_PTR(p)); ASSERT(LOOKS_LIKE_CLOSURE_PTR(p));
info = get_itbl(p); info = get_itbl(p);
/*
if (info->type==RBH)
info = REVERT_INFOPTR(info); // if it's an RBH, look at the orig closure
*/
// make sure the info pointer is into text space // make sure the info pointer is into text space
/* Take this object *off* the static_objects list, /* Take this object *off* the static_objects list,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment