Hi, Current implementation of ggc_alloc_rtvec_sized is
#define ggc_alloc_rtvec_sized(NELT) \ (ggc_alloc_zone_vec_rtvec_def (sizeof (rtx), \ sizeof (struct rtvec_def) + ((NELT) - 1), \ &rtl_zone)) The size it allocates is (sizeof (struct rtvec_def) + ((NELT) - 1)) * sizeof (rtx) // (1) Originally, the allocated size is sizeof (struct rtvec_def) + ((NELT) - 1) * sizeof (rtx) // (2) So current implementation allocates more spaces than before. I replace the second parameter of ggc_alloc_zone_vec_rtvec_def with (sizeof (struct rtvec_def) + sizeof (rtx) - 1) / sizeof (rtx) + ((NELT) - 1) // (3) It bootstraps on x86 successfully. So I guess the extra spaces are not used. Did I miss something? Thanks, Liang.