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: More of struct function breakup


> 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


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