projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
EVACUATED: target is definitely HEAP_ALLOCED(), no need to check
[ghc-hetmet.git]
/
rts
/
sm
/
Evac.c-inc
diff --git
a/rts/sm/Evac.c-inc
b/rts/sm/Evac.c-inc
index
6fa93d1
..
7e10452
100644
(file)
--- a/
rts/sm/Evac.c-inc
+++ b/
rts/sm/Evac.c-inc
@@
-23,7
+23,7
@@
#endif
STATIC_INLINE void
#endif
STATIC_INLINE void
-copy_tag(StgClosure **p, StgClosure *src, nat size, step *stp)
+copy_tag(StgClosure **p, StgClosure *src, nat size, step *stp, StgWord tag)
{
StgPtr to, tagged_to, from;
nat i;
{
StgPtr to, tagged_to, from;
nat i;
@@
-353,7
+353,7
@@
loop:
(StgClosure *)CHARLIKE_CLOSURE((StgChar)w)
);
}
(StgClosure *)CHARLIKE_CLOSURE((StgChar)w)
);
}
- if (q->header.info == Izh_con_info &&
+ else if (q->header.info == Izh_con_info &&
(StgInt)w >= MIN_INTLIKE && (StgInt)w <= MAX_INTLIKE) {
*p = TAG_CLOSURE(tag,
(StgClosure *)INTLIKE_CLOSURE((StgInt)w)
(StgInt)w >= MIN_INTLIKE && (StgInt)w <= MAX_INTLIKE) {
*p = TAG_CLOSURE(tag,
(StgClosure *)INTLIKE_CLOSURE((StgInt)w)
@@
-482,7
+482,7
@@
loop:
StgClosure *e = ((StgEvacuated*)q)->evacuee;
*p = e;
if (stp < gct->evac_step) { // optimisation
StgClosure *e = ((StgEvacuated*)q)->evacuee;
*p = e;
if (stp < gct->evac_step) { // optimisation
- if (HEAP_ALLOCED(e) && Bdescr((P_)e)->step < gct->evac_step) {
+ if (Bdescr((P_)e)->step < gct->evac_step) {
gct->failed_to_evac = rtsTrue;
TICK_GC_FAILED_PROMOTION();
}
gct->failed_to_evac = rtsTrue;
TICK_GC_FAILED_PROMOTION();
}