IA64 bootstrap failure
Jan Hubicka
jh@suse.cz
Tue Feb 11 09:12:00 GMT 2003
> The IA-64 builds are dying in ia64_reorg. The IA-64 port calls into the
> scheduler to help emit ia64 specific info such as stop bits, padding nops,
> and bundle selection info. This stuff naturally needs to go between basic
> block boundaries. Trying to fit this stuff into the CFG doesn't seem like
> a good idea, since then we need machine dependent info in the CFG code.
> This also changes some assumptions in the CFG code. For instance, a basic
> block may not end with a control flow instruction, but rather with the
> stop bits or padding nops emitted after the branch that would normally end the
> basic block. It seems reasonable that the machine dependent pass would emit
> stuff that can't be understood by the generic CFG code.
>
> A possible solution here is to add another option to schedule_ebbs, e.g.
> verify_cfg. Then pass in true everywhere except the call from ia64_reorg
> which passes in false.
I think we can simply move verify_flow_info call from schedule_ebbs to
toplev.c so it is not called for IA-64 scheduling.
Alternative way would be to get it to create dummy basic block for the
"instructions" in between of the boundaries, that would fix the
bootstrap too.
I don't have much time and I am leaving for a 4 day vacation tomorrow
afternoon, but I will try ti investigate this tomorrow after the lunch.
Honza
More information about the Gcc
mailing list