Identifying Compiler Options to Minimize Energy Consumption by Embedded Programs

2012-07-20 Thread James Pallister
Hi Everyone,

Firstly, thanks for the great reception we got at the GCC Cauldron - it was 
nice meeting you.

This is just a quick follow up email with regards to the presentation 
(available here 
http://jpallister.com/wiki/images/4/44/Gcc-cauldron-low-power-9-jul-12.pdf).


A quick recap of what this project is about: 
We hope to identify what effect a broad range of compiler options has on the 
energy consumption of different embedded platforms. To do this we are finding a 
set of relevant benchmarks, compiling them with different options and measuring 
their energy consumption on these platforms.

Questions we'd like to answer:
 - Which set of benchmarks are suitable for embedded applications and 
representative of possible applications?
 - What compiler options have the most effect on the power consumption of the 
device?
 - Does choice of compiler make any difference (LLVM or GCC)?
 - Does optimizing for speed give the same results as optimizing for energy 
usage?
 - Does choice of architecture make a difference?


We are very interesting in getting opinions and for everyone to be able to see 
the progress of this project, so a wiki has been set up. You can access the 
wiki here: http://jpallister.com/wiki

I give you occasional updates here as the work progresses.
All contributions and feedback are very welcome.

Thanks,
James Pallister



Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-07-20 Thread Jakub Jelinek
On Wed, Jul 11, 2012 at 02:47:37PM +0200, Michael Matz wrote:
> On Wed, 11 Jul 2012, Ian Lance Taylor wrote:
> 
> > We will modify g++ to support a type attribute indicating the version of 
> > the type, as a string.  This type attribute will be inherited by any 
> > other type that uses it, as a class/struct member or via inheritance.  
> > Type attributes will be concatenated as needed.  This type attribute 
> > will then be used in the mangled name of any function that takes a 
> > parameter of a type with an attribute or returns a type with an 
> > attribute.  The type attribute will also be used in the mangled name of 
> > any global variable whose type has an attribute.
> 
> There are some technical details that need to be decided: Should every 
> type affected have a different tag, or just one common (e.g. all of c++11 
> types that differ would get "_cxx11"?  Then, should the set of these tags 

Multiple types that are changed at the same time (and have the type added to
all of them concurrently) can and should use the same string.
Then there is no way to have new list and old pair together (if you use
unmodified libstdc++ headers at least), either during compilation both will
have "cxx11" string in the new type attribute, or none, so either you are
using a new std::list and std::pair, or the old one (well, std::pair is a
bad example probably, std::string and std::list is good, what other types we
are going to change?).

> if there are multiple be regarded as unordered set?  This would allow 

I'd just sort the collected strings.  The other option is to remember in
some canonical way in what order the various strings have been seen for the
first time.

> The question boils down to what we want to add to the mangled name of a 
> type looking like so (or an function taking the equivalent number of 
> arguments):
> 
> class X {
>   std::list l1;  // all new lists
>   std::list l2;
>   std::list l3;
>   std::list l4;
>   std::pair p1;  // the old pair
> };

Can't happen, unless the libstdc++ headers would allow e.g. preprocessor
macros or compiler options to tweak the type attributes of std::list and
std::pair individually (but, if it allows that, then they must not use the
same string, if it doesn't allow that, then it can).

Jakub


Re: GCC Cauldron: Notes from the C++ ABI BOF

2012-07-20 Thread Jonathan Wakely
On 20 July 2012 12:43, Jakub Jelinek wrote:
> using a new std::list and std::pair, or the old one (well, std::pair is a
> bad example probably, std::string and std::list is good, what other types we
> are going to change?).

I need to add a new virtual function and rename an existing virtual
function for a base class in .  That's for C++11 types only,
but doing the change will create an incompatibility with previous
releases.  (I don't know whether it's better to just make that change
while we still call C++11 support experimental or to wait and use the
new type attribute to make it a different type with the "_cxx11" tag.)

I think there are some changes needed to the hierarchy of exception
classes, to add std::system_error as a base class of std::ios_failure.

I don't know if adding move semantics to iostream classes can be done
without ABI changes (I haven't looked into it.)


gcc-4.6-20120720 is now available

2012-07-20 Thread gccadmin
Snapshot gcc-4.6-20120720 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.6-20120720/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.6 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch 
revision 189733

You'll find:

 gcc-4.6-20120720.tar.bz2 Complete GCC

  MD5=79a5e45515ee3a7cafd1278519206c29
  SHA1=d30cbb8967df011d21f4577aa9cc2138d46b5657

Diffs from 4.6-20120713 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.6
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Re: Ad-hoc notes from the "pending patches" BOF at the GNU tools cauldron.

2012-07-20 Thread Ryan Hill
On Wed, 11 Jul 2012 11:01:37 +0300 (EEST)
Dimitrios Apostolou  wrote:

> Replying to myself, I was just informed (thanks hp!) that there is the 
> "URL" field in bugzilla, where the owner of the bug can add one relevant 
> URL. I tried it and it's very useful, it would be even better if I could 
> add more than one.

You want "See Also" which lets you add multiple URLs.


-- 
fonts, gcc-porting
toolchain, wxwidgets
@ gentoo.org


signature.asc
Description: PGP signature