Skip to content

Remove (or update the comments for) stg_ap_1_upd_info

Found this while reading the code but couldn't find an issue for it:

/* stg_ap_1_upd_info is a bit redundant, but there appears to be a bug
 * in the compiler that means stg_ap_1 is generated occasionally (ToDo)
 */

INFO_TABLE(stg_ap_1_upd,1,0,THUNK_1_0,"stg_ap_1_upd_info","stg_ap_1_upd_info")
    (P_ node)
{
    TICK_ENT_DYN_THK();
    STK_CHK_NP(node);
    UPD_BH_UPDATABLE(node);
    LDV_ENTER(node);
    push (UPDATE_FRAME_FIELDS(,,stg_upd_frame_info, CCCS, 0, node)) {
        ENTER_CCS_THUNK(node);
        jump stg_ap_0_fast
            (StgThunk_payload(node,0));
    }
}

I tried removing this and it caused linker failures because we really generate references to stg_ap_1_upd_info.

I think this for thunks of form

let x = y

The comment suggests that these could be eliminated, and stg_ap_1_upd_info could be removed. This issue is to either do this or update the comments explaining why we can't remove let x = y thunks and really need stg_ap_1_upd_info.

Edited by Ömer Sinan Ağacan
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information