Re: How to update reg_dead notes

2015-02-25 Thread Kenneth Zadeck
it is a good policy to do a run with full checking every once in a while. it is easy to have some garbage sneak in.df is particularly sensitive to bad rtl so that was my first suggestion.i had forgotten that df (as well as a lot of the infrastructure) does not work very late. On

Re: How to update reg_dead notes

2015-02-25 Thread Georg-Johann Lay
Am 02/24/2015 um 07:33 PM schrieb Kenneth Zadeck: when i suggested that you do a build with all of the checking turned on, i wanted you to this without you new code in it.there is a good possibility that the problem is that your port is generating bad rtl. Ah, ok. This actually revealed

How to update reg_dead notes

2015-02-24 Thread Georg-Johann Lay
Hi, in order to fix PR64331 I tried to implement new target-specific passes whose sole purpose is to recompute REG_DEAD notes. The avr BE relies on correct dead notes which are used in avr.c:reg_unused_after which uses dead_or_set_p. avr BE needs correct dead notes in ADJUST_INSN_LENGTH,

Re: How to update reg_dead notes

2015-02-24 Thread Kenneth Zadeck
It is generally as easy as just adding the problem and calling df_analyze. You tend to get into trouble if the rtl is not good, i.e. there is improper sharing or other violations of the canonical rtl rules. DF does not like improperly shared rtl and it has not been uncommon for port specific

Re: How to update reg_dead notes

2015-02-24 Thread Georg-Johann Lay
Am 02/24/2015 um 02:11 PM schrieb Kenneth Zadeck: On 02/24/2015 06:41 AM, Georg-Johann Lay wrote: Hi, in order to fix PR64331 I tried to implement new target-specific passes whose sole purpose is to recompute REG_DEAD notes. The avr BE relies on correct dead notes which are used in

Re: How to update reg_dead notes

2015-02-24 Thread Oleg Endo
On Tue, 2015-02-24 at 16:59 +0100, Georg-Johann Lay wrote: It doesn't really answer your question, but just as a side note, the following ... + struct register_pass_info insert_before_bbro = +{ + notes_bbro_pass, /* pass */ + bbro, /*

Re: How to update reg_dead notes

2015-02-24 Thread Oleg Endo
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

Re: How to update reg_dead notes

2015-02-24 Thread Eric Botcazou
Could you give me some advice on correct usage of df or even more preferred point me to a comprehensible documentation of df which is more complete than in df-core.c? Take a look at the c6x and mep ports. -- Eric Botcazou

Re: How to update reg_dead notes

2015-02-24 Thread Georg-Johann Lay
Am 02/24/2015 um 06:06 PM schrieb Eric Botcazou: Could you give me some advice on correct usage of df or even more preferred point me to a comprehensible documentation of df which is more complete than in df-core.c? Take a look at the c6x and mep ports. Thanks for the hint. I changed the

Re: How to update reg_dead notes

2015-02-24 Thread Kenneth Zadeck
when i suggested that you do a build with all of the checking turned on, i wanted you to this without you new code in it.there is a good possibility that the problem is that your port is generating bad rtl. Also, you should generate a debuggable compiler so that the line numbers have some