More of struct function breakup

Jan Hubicka hubicka@ucw.cz
Fri Apr 25 18:28:00 GMT 2008


> On 04/25/08 09:33, Jan Hubicka wrote:
> 
> >I've also removed the obsoletted current_function_*
> >accestor macros for all the flags. RTL flags are now bools since they
> >are not memory critical and generate smaller code this way than the
> >bitfields.
> 
> Huh.  Should we consider doing this in other structures?

If you mean the current_function_awfully_long_accesors, I am mostly
done with them.  There is one left I will send patch for soon.
I am also not big fan of the struct function's x_ style accestors,
so if we can get to concensus that we want to get rid of them in favour
of direct references, I will make patch for it too.

As for bools, I don't think turning flags in general is good idea.  Uros
was able to measure some real improvements for turning i386 TARGET_*
flags from bitfields to proper variables, but the downside obviously is
size. In the rtl_data I did it mainly because there is always just one
rtl_data alive so the memory usage is not an issue.  And even for
threaded compiler we will unlikely turn throusdands of functions to RTL
at once to make it matter again...
Original struct function was expensive also because a lot of functions
in C++ gets the structure even though they never get to gimplification
or RTL stage. (ie unused inlines in headers)

Honza



More information about the Gcc-patches mailing list