Jason mclaughlin | 20 Jul 08:41
Picon

working machine

> > Anyone familiar with the idea of trying to describe a machine the way
> > it works?
> > like where it's being a machine working the way of having a loop with
> > the problem of being in
> > the middle and then to the outside as how the machine can move? so
> > like if you were to make it a machine
> > that does math the way it works it has machine parts that actually
> > move like the way the calculation is done?
> > so it moves like if this were to try and move as a real machine:
> > for (i = 0; i < 10; i++) {
> >  if (i == 3) next;
> > };
> > so as a real machine though, that works the way that would have to as
> > a machine? a machine that can't be anything really working like gears
> > because of how to be in the middle of the loop is to go outside but
> > sometimes not is a problem the way something has to move.
> > so if that's to look like a real machine, it's not a machine that
> > turns around and around mechanically though, because in the middle is
> > back to the beginning. but sometimes through and back around. But it
> > actually has to move like a real machine though.
> > I think I know a way there is to describe a machine that works this
> > way...
> > say on a checkers board you have checker pieces, and say each checker
> > piece is paired with another.
> > now all checker pieces are pairs.
> > the way said, try to make one piece able to move... but you have to
> > move the other it's a pair with at the same time.
> > the board is full, there's no free spaces to move to.
> > so to make a piece move with it's paired piece, find where it can go
> > where there's another pair that can move, that pair can move where
(Continue reading)

Yair Lifshitz | 19 Jul 17:29
Picon

compressed pointer type implementation in gcc

Hi,

I hope I'm not flooding with this topic. I've did some research and
couldn't find anything relevant on this topic.
My team is developing a large scale CAD application that has a large
memory footprint, requiring strong machines to run.

The application uses pointers massively.
During one of our optimization cycles I noticed that since most
objects are aligned on 8-byte boundaries, it's possible to drop the
lower 3 bits of the address and reconstruct the full address later.

Basically, as long as the application is in the 32G range (2^32*2^3),
it's possible to represent aligned pointers using an unsigned int - 4
bytes.
Seeing as obtaining the address from the compressed representation
only costs a left shift (which is very cheap), this trick will have an
insignificant impact in highly polymorphic code (and perhaps even in
general - I am not sure how well the compiler will optimize multiple
calls to the same address using this mechanism).

After giving this some thought, I realized 2 points:

1. The virtual function table pointer cannot be compressed without
handling the compiler.
2. Spreading this (if the idea actually makes sense ;)) will also be
easier through the compiler.
3. 32G of addressable range may not start at 0 and may be dispersed
(although in reality sbrk usually starts a bit above 0 and grows
continuously), so this may require some base address shifting/loader
(Continue reading)

Mohamed Shafi | 19 Jul 14:33
Picon

What are the functions that i can use?

Hello all,

I am involved in porting gcc 4.1.2.
For some processing i need to know whether a register is being defined
and used in a particular instruction. Till now i have been using
'refers_to_regno_p()' to know whether a register is being used in a
instruction and 'modified_in_p()' to know whether a register is being
defined in the instruction. But 'refers_to_regno_p()' also looks into
expr_list and/or notes in an instruction. So sometimes
refers_to_regno_p() returns 1 when the register is referred in the
expr_list in the instruction even though its use list of the
instruction.

Could any one tell me the functions that i can use to find out whether
an register is being used and/or defined in a particular instruction?

Regards,
Shafi

gccadmin | 19 Jul 00:45
Picon
Favicon

gcc-4.4-20080718 is now available

Snapshot gcc-4.4-20080718 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.4-20080718/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.4 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 137968

You'll find:

gcc-4.4-20080718.tar.bz2              Complete GCC (includes all of below)

gcc-core-4.4-20080718.tar.bz2         C front end and core compiler

gcc-ada-4.4-20080718.tar.bz2          Ada front end and runtime

gcc-fortran-4.4-20080718.tar.bz2      Fortran front end and runtime

gcc-g++-4.4-20080718.tar.bz2          C++ front end and runtime

gcc-java-4.4-20080718.tar.bz2         Java front end and runtime

gcc-objc-4.4-20080718.tar.bz2         Objective-C front end and runtime

gcc-testsuite-4.4-20080718.tar.bz2    The GCC testsuite

Diffs from 4.4-20080711 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.4
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.
(Continue reading)

Kenneth Zadeck | 18 Jul 23:24

gimple type system

Diego has asked me to look into what would be needed in a gimple type 
system.   This is an issue that has been brought to a head because now 
it is time to merge types for lto.

There are a lot of questions that need to be answered before designing 
such a system and i would like to handle them one by one, rather than 
deal with a thousand threads that go off in a lot of directions.  So for 
now, I would like to limit the discussion to a single question:   "what 
do we want to do in the middle end of a compiler with a middle end type 
system?"

I have a couple of positive answers and one negative answer.  The point 
of this mail is to get a more refined list.  The two positive answers are:

1) Type narrowing.   In an object oriented system, it is generally a big 
win to be able to narrow a type as much as possible.   This can be used 
to then be able to inline method calls, as well as remove runtime casts 
and type checks (this is useless for c). 

2) Inter file type checking.  While this is not an optimization, there 
are reasons why it would be useful to discover types that are mismatched 
across compilation units.

The thing that MAY not be useful anymore is the use of a type system of 
alias analysis.   I would have hoped that danny and richi and all of the 
other people hacking on the alias analysis would have subsumed anything 
that one could have gathered from a type based alias analysis.  If I am 
wrong, please correct me. 

Anyway, there must be other uses of types in either the existing middle 
(Continue reading)

Adel Abushaev | 18 Jul 23:00
Picon

Adapting GCC to compile code for software CPU

Folks,

      I have a model of a CPU with reduced set of commands and would
like to use GCC to compile code for its architecture.

      The instruction says to notify you in case of any action that
might need to be known to the community. So there is the notice. Also,
anyone who wants to share the list of possible issues or
recommendations - welcome.

Cheers,

Adel.

Le-Chun Wu | 18 Jul 19:21
Picon
Favicon

How to determine if a decl is a class member in GCC

Hi,

In my attribute handlers that handle the new thread-safety attributes
(in c-common.c), I need to check if a decl is a class member. How do
people do that? My original code was checking if a decl is a
FIELD_DECL but that doesn't work for static members. I also tried to
use DECL_CONTEXT but it is not set (in the C++ front-end) for data
members. (I was able to use DECL_CONTEXT for member functions,
though.) Is there any other way that I should use?

BTW, as an experiment, I went ahead and made the following change in
C++ front-end to set the DECL_CONTEXT of class data members. The patch
appears to work and doesn't seem to break any g++ and gcc regression
tests. (I will be running gdb testsuite later.) I think there must be
a reason why the DECL_CONTEXT of data members wasn't set in the
front-end, but it's not clear to my why. Can someone kindly explain
why that is and whether the patch is OK?

Thanks,

Le-chun

Index: cp/decl.c
===================================================================
--- cp/decl.c   (revision 137849)
+++ cp/decl.c   (working copy)
@@ -9074,6 +9074,11 @@ grokdeclarator (const cp_declarator *dec

               if (thread_p)
                 DECL_TLS_MODEL (decl) = decl_default_tls_model (decl);
(Continue reading)

Simon Toth | 18 Jul 13:14
Picon

Where to get a list of warning and error messages

I'm currently building a database of gcc warnings and error messages
including a example of code what triggers it and how to fix it.

Is there any full database of gcc warnings and errors?

Simon Toth

Rainer Emrich | 18 Jul 12:52

gmp-4.2.2 t-printf test fails when compiled with trunk revision 137937 on i686-pc-linux-gnu


gmp_vfprintf wrong
~  fmt       |%08Zd|
~  got       |000    0|
~  want      |00000000|
~  got_len   8
~  ftell_len 8
~  fread_len 8
~  want_len  8
/bin/sh: line 4: 10698 Aborted                 ${dir}$tst
FAIL: t-printf
PASS: t-scanf
PASS: t-locale
==================================
1 of 3 tests failed
Please report to gmp-bugs <at> swox.com
==================================

--
Mit freundlichen Grüßen / Best Regards

Dipl.-Ing. Rainer Emrich
Dept. Manager IT/Softwareentwicklung
TECOSIM Technische Simulation GmbH
Ferdinand-Stuttmann-Straße 15
D-65428 Rüsselsheim
Phone  +49 (0) 6142 8272-330
Fax    +49 (0) 6142 8272-249
Mobile +49 (0) 163 5694920
www.tecosim.com
(Continue reading)

gccadmin | 18 Jul 00:43
Picon
Favicon

gcc-4.3-20080717 is now available

Snapshot gcc-4.3-20080717 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.3-20080717/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

gcc-4.3-20080717.tar.bz2              Complete GCC (includes all of below)

gcc-core-4.3-20080717.tar.bz2         C front end and core compiler

gcc-ada-4.3-20080717.tar.bz2          Ada front end and runtime

gcc-fortran-4.3-20080717.tar.bz2      Fortran front end and runtime

gcc-g++-4.3-20080717.tar.bz2          C++ front end and runtime

gcc-java-4.3-20080717.tar.bz2         Java front end and runtime

gcc-objc-4.3-20080717.tar.bz2         Objective-C front end and runtime

gcc-testsuite-4.3-20080717.tar.bz2    The GCC testsuite

Diffs from 4.3-20080710 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.3
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.
(Continue reading)

Rainer Emrich | 17 Jul 16:49

Bootstrap failure in stage 1 on trunk for i686-pc-linux-gnu


/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c: In function ‘choose_reload_regs’:
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:6083: error: expected expression at end
of input
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:6083: error: expected declaration or
statement at end of input
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:6083: warning: unused variable ‘nr’
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:6083: error: expected declaration or
statement at end of input
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:6083: error: expected declaration or
statement at end of input
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:6083: error: expected declaration or
statement at end of input
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:6083: error: expected declaration or
statement at end of input
/opt/gnu/src/gcc/gcc-4.4.0/gcc/reload1.c:5621: warning: unused variable ‘pass’
gmake[3]: *** [reload1.o] Error 1

--
Mit freundlichen Grüßen / Best Regards

Dipl.-Ing. Rainer Emrich
Dept. Manager IT/Softwareentwicklung
TECOSIM Technische Simulation GmbH
Ferdinand-Stuttmann-Straße 15
D-65428 Rüsselsheim
Phone  +49 (0) 6142 8272-330
Fax    +49 (0) 6142 8272-249
Mobile +49 (0) 163 5694920
www.tecosim.com
(Continue reading)


Gmane