This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How to update reg_dead notes
- From: Oleg Endo <oleg dot endo at t-online dot de>
- To: Georg-Johann Lay <avr at gjlay dot de>
- Cc: Eric Botcazou <ebotcazou at adacore dot com>, gcc at gcc dot gnu dot org, Kenneth Zadeck <zadeck at naturalbridge dot com>, Paolo Bonzini <bonzini at gnu dot org>
- Date: Tue, 24 Feb 2015 19:39:53 +0100
- Subject: Re: How to update reg_dead notes
- Authentication-results: sourceware.org; auth=none
- References: <54EC635D dot 7050608 at gjlay dot de> <11402701 dot RdfJIVWg1Q at polaris> <54ECC187 dot 8000806 at gjlay dot de>
On Tue, 2015-02-24 at 19:23 +0100, Georg-Johann Lay wrote:
>
> The latest pass which runs before the crash is .split5, i.e.
> recog.c::pass_split_for_shorten_branches which executes split_all_insns_noflow
> which in turn reads:
>
> /* Same as split_all_insns, but do not expect CFG to be available.
> Used by machine dependent reorg passes. */
>
> unsigned int
> split_all_insns_noflow (void)
> { ...
>
> Does this mean CFG is (or might be) messed up after this pass and this is the
> reason for why df crashes because df needs correct CFG?
Yes, the CFG is only valid until some point. E.g. on SH it stops being
valid after the machine reorg pass the latest (PR 59189). Doing
anything CFG related after split5 might not be a good idea.
Cheers,
Oleg