This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Hot and Cold Partitioning (Was: GCC 4.1 Projects)
On Mon, 2005-02-28 at 10:01 -0800, Dale Johannesen wrote:
> On Feb 28, 2005, at 4:43 AM, Joern RENNECKE wrote:
>
> > Dale Johannesen wrote:
> >
> >> Well, no, what is supposed to happen (I haven't tried it for a
> >> while, so I don't promise
> >> this still works) is code like this:
> >>
> >> .hotsection:
> >> loop:
> >> conditional branch (i?==1000) to L2
> >> L1:
> >> /* do stuff */
> >> end loop:
> >>
> >> /* still in hot section */
> >> L2: jmp L3
> >>
> >> .coldsection:
> >> L3:
> >> i = 0;
> >> jmp L1
> >>
> >
> > Well, even then, using of the cold section can increase the hot
> > section size, depending on target, and for some
> > targets the maximum supported distance of the cold section.
>
> Certainly. In general it will make the total size bigger, as does
> inlining.
Yup. Others have found the same effect.
> If you have good information about what's hot and cold, it should reduce
> the number of pages that actually get swapped in.
Right. And IIRC others have found that while there may be more
static long branches/calls due to hot/cold partitioning, the
number of dynamic long branches/calls is actually reduced
substantially.
> No, you should not turn on partitioning in situations where code size
> is important to you.
Agreed 100%.
jeff