From: Diego Novillo <dnovillo@redhat.com>
To: Per Bothner <per@bothner.com>
Cc: "gcc@gcc.gnu.org" <gcc@gcc.gnu.org>
Subject: Re: [RFC] Contributing tree-ssa to mainline
Date: Sat, 17 Jan 2004 08:00:00 -0000 [thread overview]
Message-ID: <1074326403.5368.33.camel@frodo.toronto.redhat.com> (raw)
In-Reply-To: <4008CD99.6080501@bothner.com>
[-- Attachment #1: Type: text/plain, Size: 935 bytes --]
On Sat, 2004-01-17 at 00:52, Per Bothner wrote:
> Diego Novillo wrote:
>
> > On Fri, 2004-01-16 at 22:24, Richard Kenner wrote:
> >
> >
> >>Remember that the last time we had the discussion of the timing of tree-ssa,
> >>people claimed it was "essential" for 3.5 since there was a tremendous
> >>improvement on some C++ cases. So let's see those cases.
> >>
> >
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12747
>
> Can you give numbers? I.e. how much faster does that (or a similar)
> testcase run?
>
Sure. I added some of the missing bits in 12747's test program to make
it executable (attached). The binary produced by mainline executes in
28.62 seconds. The one produced by tree-ssa executes in 10.57 seconds
(average over 3 runs).
As with any benchmark, the fact that we do good here cannot be
extrapolated to any other random piece of code.
[ apologies to our C++ experts for butchering the test case. ]
Diego.
[-- Attachment #2: 12747.C --]
[-- Type: text/x-c++, Size: 2039 bytes --]
#include <string.h>
#include <stdlib.h>
class BitRef;
class BitVector
{
public:
BitVector (unsigned nbits) : m_size(nbits)
{
m_data = (unsigned long *)malloc (m_size*sizeof(unsigned long));
}
BitVector (const BitVector &orig) : m_size (orig.size())
{
m_data = (unsigned long *)malloc (m_size*sizeof(unsigned long));
memcpy(m_data,orig.m_data,m_size);
}
BitVector & operator= (const BitVector &orig)
{
m_size = orig.size();
m_data = (unsigned long *)malloc (m_size*sizeof(unsigned long));
memcpy(m_data,orig.m_data,m_size);
}
~BitVector ()
{
free (m_data);
}
unsigned size () const
{
return m_size;
}
bool getBit (unsigned idx)
{
return m_data[idx] != 0;
}
void setBit (unsigned idx, bool value)
{
m_data[idx] = (unsigned long)value;
}
inline BitRef operator[] (unsigned idx);
//private:
unsigned long *m_data;
unsigned m_size;
};
class BitRef
{
public:
BitRef (BitVector & bv, unsigned idx):m_bv (bv), m_idx (idx)
{
}
bool value () const
{
return m_bv.getBit (m_idx);
}
operator bool () const
{
return value ();
}
BitRef & operator= (bool newVal)
{
m_bv.setBit (m_idx, newVal);
return *this;
}
BitRef & operator= (const BitRef & newVal)
{
m_bv.setBit (m_idx, newVal.value ());
return *this;
}
private:
BitVector & m_bv;
unsigned m_idx;
};
inline BitRef
BitVector::operator[] (unsigned idx)
{
return BitRef (*this, idx);
}
// abstract copy: compiler should be able to make this as fast as copy_2
void
copy (BitVector & dest, BitVector & src)
{
unsigned
sz = dest.size ();
for (unsigned i = 0; i < sz; i++)
dest[i] = src[i];
}
// direct copy, without proxy objects.
void
copy_2 (BitVector & dest, BitVector & src)
{
unsigned
sz = dest.size ();
for (unsigned i = 0; i < sz; i++)
dest.setBit (i, src.getBit (i));
}
main()
{
BitVector bv1(30000), bv2(30000);
int i;
for (i = 0; i < 50000; i++)
copy (bv1, bv2);
}
next prev parent reply other threads:[~2004-01-17 8:00 UTC|newest]
Thread overview: 193+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-17 3:21 Richard Kenner
2004-01-17 3:26 ` Diego Novillo
2004-01-17 5:52 ` Per Bothner
2004-01-17 6:09 ` Andrew Pinski
2004-01-18 2:46 ` Scott A Crosby
2004-01-17 8:00 ` Diego Novillo [this message]
2004-01-17 13:47 ` Florian Weimer
2004-01-17 14:48 ` Daniel Berlin
2004-01-17 14:53 ` Florian Weimer
2004-01-17 15:14 ` Daniel Berlin
2004-01-17 17:07 ` Joseph S. Myers
2004-01-17 17:14 ` Diego Novillo
2004-01-17 17:40 ` Daniel Berlin
2004-01-17 18:34 ` Mark Mitchell
2004-01-17 14:57 ` Diego Novillo
2004-01-19 23:30 ` Joe Buck
2004-01-19 23:43 ` Daniel Berlin
2004-01-20 0:20 ` Dale Johannesen
2004-01-20 3:12 ` Geert Bosch
2004-01-20 3:27 ` Diego Novillo
2004-01-27 21:24 ` tree-ssa/13756 Documentation issues Geert Bosch
-- strict thread matches above, loose matches on Subject: below --
2004-01-20 12:36 [RFC] Contributing tree-ssa to mainline Richard Kenner
2004-01-20 15:06 ` Daniel Jacobowitz
2004-01-20 15:14 ` Steven Bosscher
2004-01-20 16:14 ` Diego Novillo
2004-01-20 11:46 Richard Kenner
2004-01-20 11:57 ` Steven Bosscher
2004-01-20 4:35 Robert Dewar
2004-01-20 4:23 Richard Kenner
2004-01-20 4:28 ` Andrew Pinski
2004-01-20 11:15 ` Diego Novillo
2004-01-19 23:40 Richard Kenner
2004-01-19 23:15 Richard Kenner
2004-01-19 23:31 ` tm_gccmail
2004-01-19 19:13 Richard Kenner
2004-01-19 18:06 Richard Kenner
2004-01-19 16:12 Richard Kenner
2004-01-19 15:05 Richard Kenner
2004-01-19 15:56 ` law
2004-01-19 22:41 ` Andrew Pinski
2004-01-19 14:17 Richard Kenner
2004-01-19 14:46 ` Diego Novillo
2004-01-19 17:58 ` Dan Nicolaescu
2004-01-19 14:02 Richard Kenner
2004-01-19 12:29 Richard Kenner
2004-01-19 12:24 Richard Kenner
2004-01-19 12:31 ` Andrew Haley
2004-01-19 12:36 ` Paul Brook
2004-01-19 12:39 ` Paul Brook
2004-01-19 12:38 ` Andrew Haley
2004-01-19 12:49 ` Diego Novillo
2004-01-19 17:42 ` Geert Bosch
2004-01-19 17:51 ` Diego Novillo
2004-01-19 17:56 ` John R. Shannon
2004-01-19 18:02 ` Diego Novillo
2004-01-19 18:09 ` Geert Bosch
2004-01-19 18:27 ` Robert Dewar
2004-01-19 12:51 ` Jan Hubicka
2004-01-19 15:51 ` law
2004-01-19 17:30 ` Robert Dewar
2004-01-19 17:48 ` law
2004-01-19 17:57 ` Diego Novillo
2004-01-19 13:26 ` Theodore Papadopoulo
2004-01-19 14:23 ` Robert Dewar
2004-01-19 18:00 ` Tom Tromey
2004-01-19 18:11 ` Andrew Haley
2004-01-19 18:39 ` Jeff Sturm
2004-01-19 11:44 Richard Kenner
2004-01-19 12:00 ` Jan Hubicka
2004-01-19 12:13 ` Andrew Pinski
2004-01-19 12:12 ` Richard Henderson
2004-01-18 13:09 Richard Kenner
2004-01-17 17:17 Dara Hazeghi
2004-01-19 17:23 ` law
2004-01-17 13:35 Richard Kenner
2004-01-17 14:05 ` Steven Bosscher
2004-01-17 15:26 ` Andreas Jaeger
2004-01-17 13:33 Richard Kenner
2004-01-17 13:29 Richard Kenner
2004-01-17 17:58 ` Diego Novillo
2004-01-17 13:20 Richard Kenner
2004-01-17 3:26 Richard Kenner
2004-01-17 14:49 ` Scott Robert Ladd
2004-01-17 3:15 Robert Dewar
2004-01-17 2:56 Richard Kenner
2004-01-17 3:14 ` Steven Bosscher
2004-01-17 3:20 ` Diego Novillo
2004-01-17 2:52 Richard Kenner
2004-01-17 3:12 ` Steven Bosscher
2004-01-17 2:39 Richard Kenner
2004-01-17 3:04 ` Robert Dewar
2004-01-17 16:55 ` Gerald Pfeifer
2004-01-19 14:48 ` Lars Segerlund
2004-01-19 23:37 ` Joe Buck
2004-01-17 2:28 Richard Kenner
2004-01-17 3:09 ` Steven Bosscher
2004-01-17 5:04 ` Roger Sayle
2004-01-17 5:31 ` Diego Novillo
2004-01-17 6:04 ` Roger Sayle
2004-01-17 6:19 ` David Edelsohn
2004-01-17 14:54 ` Scott Robert Ladd
2004-01-17 14:01 ` Jan Hubicka
2004-01-17 14:20 ` Roger Sayle
2004-01-17 14:29 ` Roger Sayle
2004-01-17 14:44 ` Jan Hubicka
2004-01-17 15:07 ` Jan Hubicka
2004-01-17 14:37 ` Jan Hubicka
2004-01-17 21:32 ` Richard Henderson
2004-01-17 21:45 ` Diego Novillo
2004-01-17 5:06 ` Diego Novillo
2004-01-17 6:13 ` law
2004-01-17 12:07 ` Robert Dewar
2004-01-17 12:15 ` John R. Shannon
2004-01-19 23:46 ` Joe Buck
2004-01-17 0:19 Diego Novillo
2004-01-17 0:31 ` Daniel Berlin
2004-01-17 0:35 ` Andrew Pinski
2004-01-17 0:44 ` Gerald Pfeifer
2004-01-17 0:53 ` law
2004-01-17 0:54 ` law
2004-01-17 1:37 ` Gerald Pfeifer
2004-01-17 1:46 ` Diego Novillo
2004-01-17 0:55 ` Eric Christopher
2004-01-17 2:48 ` Robert Dewar
2004-01-17 22:08 ` Eric Christopher
2004-01-17 1:02 ` Joseph S. Myers
2004-01-17 1:51 ` Kaveh R. Ghazi
2004-01-17 2:01 ` Gabriel Dos Reis
2004-01-17 2:17 ` Kaveh R. Ghazi
2004-01-17 3:01 ` Daniel Berlin
2004-01-17 2:19 ` Steven Bosscher
2004-01-17 3:02 ` Robert Dewar
2004-01-17 3:55 ` Andrew Pinski
2004-01-17 3:36 ` Diego Novillo
2004-01-17 13:06 ` Giovanni Bajo
2004-01-17 13:53 ` Jan Hubicka
2004-01-18 7:01 ` law
2004-01-17 17:04 ` Kaveh R. Ghazi
2004-01-17 17:16 ` Scott Robert Ladd
2004-01-17 17:30 ` Kaveh R. Ghazi
2004-01-17 17:50 ` Scott Robert Ladd
2004-01-17 17:37 ` Robert Dewar
2004-01-17 17:46 ` Joseph S. Myers
2004-01-17 17:51 ` Robert Dewar
2004-01-17 18:11 ` Joseph S. Myers
2004-01-17 19:12 ` Arnaud Charlet
2004-01-29 0:36 ` Robert Dewar
2004-01-29 0:00 ` Robert Dewar
2004-01-17 17:58 ` Scott Robert Ladd
2004-01-17 18:09 ` Joseph S. Myers
2004-01-17 18:06 ` Mark Mitchell
2004-01-18 7:15 ` law
2004-01-18 15:50 ` Daniel Berlin
2004-01-17 17:12 ` Kaveh R. Ghazi
2004-01-17 17:26 ` Diego Novillo
2004-01-17 5:31 ` Diego Novillo
2004-01-17 6:15 ` law
2004-01-17 6:22 ` Andrew Pinski
2004-01-17 6:38 ` Diego Novillo
2004-01-17 14:45 ` Daniel Berlin
2004-01-17 21:23 ` law
2004-01-17 21:33 ` Steven Bosscher
2004-01-18 2:34 ` Zack Weinberg
2004-01-17 11:16 ` Joseph S. Myers
2004-01-17 17:50 ` Diego Novillo
2004-01-17 18:06 ` Joseph S. Myers
2004-01-17 20:14 ` Steven Bosscher
2004-01-17 23:38 ` Toon Moene
2004-01-18 1:06 ` Phil Edwards
2004-01-17 2:15 ` Steven Bosscher
2004-01-17 3:01 ` Robert Dewar
2004-01-17 11:08 ` Andrew Walrond
2004-01-17 23:33 ` Toon Moene
2004-01-17 14:30 ` Scott Robert Ladd
2004-01-17 14:57 ` Paul Brook
2004-01-17 15:28 ` Scott Robert Ladd
2004-01-17 21:24 ` law
2004-01-17 21:47 ` Diego Novillo
2004-01-17 19:01 ` Mark Mitchell
2004-01-17 19:23 ` Andrew Pinski
2004-01-18 0:14 ` Toon Moene
2004-01-20 1:39 ` Kaveh R. Ghazi
2004-01-20 2:00 ` Gabriel Dos Reis
2004-01-20 2:08 ` Mark Mitchell
2004-01-20 2:31 ` Gabriel Dos Reis
2004-01-20 15:19 ` Scott Robert Ladd
2004-01-20 15:27 ` Andrew Haley
2004-01-20 2:09 ` Diego Novillo
2004-01-22 8:49 ` Gerald Pfeifer
2004-01-17 19:22 ` Daniel Jacobowitz
2004-01-17 19:34 ` Richard Guenther
2004-01-17 20:21 ` Steven Bosscher
2004-01-18 1:24 ` David Edelsohn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1074326403.5368.33.camel@frodo.toronto.redhat.com \
--to=dnovillo@redhat.com \
--cc=gcc@gcc.gnu.org \
--cc=per@bothner.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).