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