This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: IA64 bootstrap failure


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]