This is the mail archive of the gcc-patches@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: Repost: RFA: re-instate struct_equiv code


Bernd Schmidt wrote:
> Bernd Schmidt wrote:
>> What we must do is ensure that we can rely on life information in
>> struct_equiv_init by making all transformations done during
>> try_optimize_cfg keep register life information intact.  This seems to
>> be true for things like merge_blocks etc.
> 
> I found one that doesn't.  Replacing condjumps with unconditional jumps
> with try_redirect_by_replacing_jump can kill flag registers.
> 
I still think the idea above is a losing proposition.

Your choices are
1. Make it quite slow in some cases because each life update can change
liveness in a large number of blocks. (This is just a fact of liveness)
2. Make the liveness information "fast" but imprecise.

Neither of these is a good option.

Why doesn't the struct-equiv code run a single time in a separate pass
or something, instead of inserting stuff into cleanup_cfg?

I highly doubt it needs to be run 50 or 60 times.

--Dan


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