Ulrich,

  Yes on the zSeries machines, the separation of code can be huge.  If
the data that is being updated is within 256 bytes of the instruction
that is updating it, there is a huge performance impact.  Moving the
data to being outside of that range (or having the code "get" the
storage for the data), has been shown on the zSeries to reduce cpu usage
by a factor of at least 5 (that is the 1st case uses at least 5 times
more cpu than the second).

  On other IBM mainframes (i.e. 9675 boxes), there is also an impact,
but the L1 cache is smaller, and a lower cpu impact.



Peter I. Vander Woude

Sr. Mainframe Engineer
Harris Teeter, Inc.



>>> [EMAIL PROTECTED] 08/13/2003 8:31:47 PM >>>
Dave Rivers wrote:

> On a per-function basis - but not within functions; because
> gcc points R13 at the literal pool; which can be quite large
> (and different from the code location in sufficiently large
> functions.)

Separating code and literal pool would appear likely to cause
a net win on machines with separate i-cache and d-cache (i.e.
all zSeries machines).  I don't have specific measurements to
prove that point, though.

Bye,
Ulrich

--
  Dr. Ulrich Weigand
  [EMAIL PROTECTED]

Reply via email to