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: [RFC] New SRA and early interprocedural SRA


> 
> The problem is that  in order to implement ipa_modify_actual_arguments
> sanely  and not  to  pull whole  build_access_expr()  from ipa-sra  to
> ipa-prop,  I need  to switch  to  using maybe_fold_offset_to_reference
> first (and thus rewrite it at least a little bit).  I am mildly afraid
> of this since I  learned that both you and Richi gave  up on it and it
> will certainly take me at least  a week if not more.

What about making parm notes purely info of style "remove this parameter
and put that to nonlocalized vars", "add here this new declaration" and
keeping the separate array of substitutions (tree_map) saying how to
modify the body?

I.e. bit lower form than what you have right now.  In that way logic on
how to produce the subtitutions will still live in ipa-sra and I think
it will be easy to lower what you have in parm notes now into such low
parm notes.  It might however need two different notes that I didn't
think of before :((

I enabled IPA-SRA at -O2 on the branch now and it seems to show no
regression in performance/code size/compilation time to justify -O3 only
pass.  So I would like to keep it this way, all -O3 only code has
tendency to rot.
There is however problem with profile feedback that is now mismatching
so function bodies in profile geneerate run looks different from
function bodies at profile use run already during profile generation.
It means that you seem to do different decision when profiling or not
somehow.  This might be because your decision are dependent on something
instable such as value of memory pointer in hash?

Honza
> 
> So that's what I'll start working on tomorrow.
> 
> Martin


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