D pointers

George Staikos staikos at kde.org
Sat Oct 1 19:18:04 BST 2005


On Saturday 01 October 2005 13:57, Thomas Braxton wrote:
> > > >   I'm glad someone else pointed this out.  I was trying to get out of
> > > > this conversation altogether (and I will just revert changes to my
> > > > own classes that I don't like), but this is a very valid point.
> > >
> > >  No, it's not a very valid point. Unless somebody can find a problem
> > > with my KURL benchmark (which I ran on i386), the point is as valid as
> > > about 2% performance loss. And BTW exactly which of your classes are
> > > performance critical?
> >
> >    It's not a valid point that register pressure is an issue on our most
> > significant platform?
>
> This is a small test i made up to see the difference of d-pointers on
> register pressure. The test has two classes with exactly the same members,
> one using a d-pointer the other not.
> Compile with g++ -O3 -g3 -fPIC -c test.cpp
> the other file is the output of objdump -CSd test.o
> If you look at status() in both classes you see that this{0x8(%ebp)} is
> assigned to %eax.
> In withDPointer::status() this->d{(%eax)} is then assigned to %eax.
> Then both assign _status{0x8(%eax)} to %eax.
> register pressure doesn't look to be an issue on i386, at least w/ gcc
> 4.0.1.

  Good to know.  Also good, I should point out, that I didn't jump to any 
conclusion that d-> adds to it.  I just claimed that register pressure 
('period') is an issue on x86.

-- 
George Staikos
KDE Developer				http://www.kde.org/
Staikos Computing Services Inc.		http://www.staikos.net/




More information about the kde-core-devel mailing list