Feature request concerning bitwise operations

2010-01-10 Thread Wen Li
On x86 processors, I think bitwise operators should be optimized for individual bit accesses, which should be converted to BT instructions. For example: x |= 1<

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Erik Trulsson
On Sun, Jan 10, 2010 at 06:24:14PM +, Dave Korn wrote: > Eric Botcazou wrote: > >> The aliasing rules treat "char" specially because char is a bit like a > >> "poor main's void". > > > > Not symmetrically though, only for the type of the lvalue expression used > > to > > access the object (C

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Richard Guenther
On Sun, Jan 10, 2010 at 10:36 PM, Andrew Hutchinson wrote: > > > Kai Tietz wrote: >> >> Well, open call there aren't that much but point of interest is in >> 'c-pch.c:  fd = open (name, O_RDONLY | O_BINARY, 0666);' as it uses >> O_BINARY, too. See also for pattern in libiberty mkstemps.c >> >> Reg

gcc-4.3-20100110 is now available

2010-01-10 Thread gccadmin
Snapshot gcc-4.3-20100110 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/4.3-20100110/ 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

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Andrew Hutchinson
Kai Tietz wrote: Well, open call there aren't that much but point of interest is in 'c-pch.c: fd = open (name, O_RDONLY | O_BINARY, 0666);' as it uses O_BINARY, too. See also for pattern in libiberty mkstemps.c Regards, Kai It looks like O_BINARY is already defined in system.h, so all

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Kai Tietz
2010/1/10 Kai Tietz : > 2010/1/10 Andrew Hutchinson : >> >> >> Kai Tietz wrote: >>> >>> Well, on linux (libc) fopen/freopen/etc the "b" is an nop (but >>> handled). For O_BINARY the common approach here is to do the following >>> condifition before use: >>> >>> #ifndef O_BINARY >>> #define O_BINARY

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Kai Tietz
2010/1/10 Andrew Hutchinson : > > > Kai Tietz wrote: >> >> Well, on linux (libc) fopen/freopen/etc the "b" is an nop (but >> handled). For O_BINARY the common approach here is to do the following >> condifition before use: >> >> #ifndef O_BINARY >> #define O_BINARY 0 >> #endif >> >> This is a patte

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Andrew Hutchinson
Kai Tietz wrote: Well, on linux (libc) fopen/freopen/etc the "b" is an nop (but handled). For O_BINARY the common approach here is to do the following condifition before use: #ifndef O_BINARY #define O_BINARY 0 #endif This is a pattern pretty often used. To rely here on binmode.o is a way, t

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Kai Tietz
2010/1/10 Andrew Hutchinson : > I think  "rb" is nop. However, O_BINARY is less portable. > > There is another way. If  MinGW hosted build  is linked with binmode.o - the > default for files become binary > Some other methods are here: > > http://oldwiki.mingw.org/index.php/binary > > > > > Rafael

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Andrew Hutchinson
I think "rb" is nop. However, O_BINARY is less portable. There is another way. If MinGW hosted build is linked with binmode.o - the default for files become binary Some other methods are here: http://oldwiki.mingw.org/index.php/binary Rafael Espindola wrote: I hacked fopen/open calls i

Re: Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Rafael Espindola
> I hacked fopen/open calls in  lto.c and lto-elf.c to use O_BINARY and "rb" > and compilation with -flto was then successful! > > I am not sure how this should be fixed properly. Using O_BINARY and "rb" should be a nop on unix, no? Is it wrong to use them on any arch we care about? > Andy Cheer

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Dave Korn
Eric Botcazou wrote: >> Yes, fair enough; but properties can commute just as much as operators >> can (although it's perhaps less intuitively surprising when they don't). > > To be picky, binary operators are commutative (or not), binary relations are > symmetric (or not). Ah, I wasn't awar

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Eric Botcazou
> Yes, fair enough; but properties can commute just as much as operators > can (although it's perhaps less intuitively surprising when they don't). To be picky, binary operators are commutative (or not), binary relations are symmetric (or not). -- Eric Botcazou

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Dave Korn
Andreas Schwab wrote: > Dave Korn writes: > >> Andreas, you wrote: "Aliasing is not symmetric". To be precise, we're >> saying it's not commutative here; that (A aliases B) does not imply (B >> aliases >> A)? I don't think I've ever heard it expressed that explicitly before. > > Aliasing is

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andreas Schwab
Dave Korn writes: > Andreas, you wrote: "Aliasing is not symmetric". To be precise, we're > saying it's not commutative here; that (A aliases B) does not imply (B aliases > A)? I don't think I've ever heard it expressed that explicitly before. Aliasing is not an operator, it's a property of

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Dave Korn
Eric Botcazou wrote: >> The aliasing rules treat "char" specially because char is a bit like a >> "poor main's void". > > Not symmetrically though, only for the type of the lvalue expression used to > access the object (C99 6.5.7). > Ok. So if I had four ints, and I wanted to cast the pointe

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Erik Trulsson
On Sun, Jan 10, 2010 at 08:58:47AM -0800, Patrick Horgan wrote: > Andrew Haley wrote: > > On 01/10/2010 12:39 PM, Andreas Schwab wrote: > > > >> Andrew Haley writes: > >> > >> > >>> Why do you say the effective type is different? > >>> > >> The object type is uint8_t, but accessed a

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Dave Korn
Andrew Haley wrote: > On 01/10/2010 02:39 PM, Paul Koning wrote: >>> ... >>> typedef unsigned char uint8_t; >>> typedef unsigned int uint32_t; >>> >>> struct in6_addr >>> { >>> uint8_t __s6_addr[16]; >>> }; >>> >>> static inline int >>> address_in_use (unsigned char *a, struct in6_addr *in6) >>>

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Dave Korn
Patrick Horgan wrote: > Andrew Haley wrote: >> On 01/10/2010 12:39 PM, Andreas Schwab wrote: >> >>> Andrew Haley writes: >>> >>> Why do you say the effective type is different? >>> The object type is uint8_t, but accessed as uint32_t. That is >>> undefined. >>> >> >> U

Re: help on debugging gcc using gdb

2010-01-10 Thread Jonathan Wakely
2010/1/10 swati raina: > > I am tried to debug gcc using the following commands > > 1)[sw...@localhost ~]$ gdb --args /usr/bin/gcc See http://gcc.gnu.org/wiki/DebuggingGCC

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Joseph S. Myers
On Sun, 10 Jan 2010, Patrick Horgan wrote: > But in the new compilers it's an integer type, not a character type--from the > spec: signed char is a signed integer type, and unsigned char is an unsigned integer type. (char is neither, although it behaves the same as one of signed char and unsig

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andrew Haley
On 01/10/2010 04:58 PM, Patrick Horgan wrote: > Andrew Haley wrote: >> On 01/10/2010 12:39 PM, Andreas Schwab wrote: >> >>> Andrew Haley writes: >>> Why do you say the effective type is different? >>> The object type is uint8_t, but accessed as uint32_t. That is >>> undefined.

help on debugging gcc using gdb

2010-01-10 Thread swati raina
Hi, I want to detect simple 'if-else' statements for which i need to understand the source code of gcc. I am using version 4.4.0. So, I am tried to debug gcc using the following commands 1)[sw...@localhost ~]$ gdb --args /usr/bin/gcc Missing separate debuginfos, use: debuginfo-install gcc-4.4.0

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Patrick Horgan
Andrew Haley wrote: On 01/10/2010 12:39 PM, Andreas Schwab wrote: Andrew Haley writes: Why do you say the effective type is different? The object type is uint8_t, but accessed as uint32_t. That is undefined. Unless uint8_t is a character type, as I understand it. That

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andrew Haley
On 01/10/2010 02:39 PM, Paul Koning wrote: >> ... >> typedef unsigned char uint8_t; >> typedef unsigned int uint32_t; >> >> struct in6_addr >> { >> uint8_t __s6_addr[16]; >> }; >> >> static inline int >> address_in_use (unsigned char *a, struct in6_addr *in6) >> { >> if const uint32_t *)(a

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Eric Botcazou
> The aliasing rules treat "char" specially because char is a bit like a > "poor main's void". Not symmetrically though, only for the type of the lvalue expression used to access the object (C99 6.5.7). -- Eric Botcazou

RE: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Paul Koning
> ... > typedef unsigned char uint8_t; > typedef unsigned int uint32_t; > > struct in6_addr > { > uint8_t __s6_addr[16]; > }; > > static inline int > address_in_use (unsigned char *a, struct in6_addr *in6) > { > if const uint32_t *)(a))[0] > == ((const uint32_t *)(in6->__

RE: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Paul Koning
> ... > >> The object type is uint8_t, but accessed as uint32_t. That is > >> undefined. > > > > Unless uint8_t is a character type, as I understand it. > > In which way does it make a difference? For aliasing consideration, > only the type of access matters. The aliasing rules treat "char" spe

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andreas Schwab
Andrew Haley writes: > On 01/10/2010 12:39 PM, Andreas Schwab wrote: >> Andrew Haley writes: >> >>> Why do you say the effective type is different? >> >> The object type is uint8_t, but accessed as uint32_t. That is >> undefined. > > Unless uint8_t is a character type, as I understand it. In

Success with MinGW and AVR and LTO - almost

2010-01-10 Thread Andrew Hutchinson
I have just succeed in building last snapshot version 4.5.0 20100107 for AVR target with working LTO on both LINUX and MinGW hosts! As noted before #define LINKER_NAME has to be deleted from target avr.h (I will raise patch for this) I also built avr target for MINGW under MSYS and this has

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andrew Haley
On 01/10/2010 12:39 PM, Andreas Schwab wrote: > Andrew Haley writes: > >> Why do you say the effective type is different? > > The object type is uint8_t, but accessed as uint32_t. That is > undefined. Unless uint8_t is a character type, as I understand it. That is clearly the assumption on wh

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andreas Schwab
Andrew Haley writes: > Why do you say the effective type is different? The object type is uint8_t, but accessed as uint32_t. That is undefined. Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something co

Regression in GCC4.5.0 m68k-elf with r146817 (Author: matz)

2010-01-10 Thread Bernd Roesch
Hi, http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg01459.html This do the problem when compile ffmpeg.all gcc Versions that contain the Patch fail -m68020 -m68881 -O1 ("Abort trap") but work when do -m68020 -m68881 -O1 -fno-tree-ccp -fno-tree-dominator-opts (works ok). .See here for more about t

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andrew Haley
On 01/10/2010 10:30 AM, Andreas Schwab wrote: > Dave Korn writes: > >> Is that really right? The type of the pointer (in6->__s6_addr) that we're >> casting is unsigned char *, so shouldn't it already alias everything anyway >> and dereferencing it be allowed, like it is for the casted (a)? I'

Re: Sorry to mention aliasing again, but is the standard IN6_ARE_ADDR_EQUAL really wrong?

2010-01-10 Thread Andreas Schwab
Dave Korn writes: > Is that really right? The type of the pointer (in6->__s6_addr) that we're > casting is unsigned char *, so shouldn't it already alias everything anyway > and dereferencing it be allowed, like it is for the casted (a)? I'll file a > PR if so. (I can't pretend I find the la

Re: dwarf2 - multiple DW_TAG_variable for global variable

2010-01-10 Thread Jan Kratochvil
On Sun, 10 Jan 2010 00:31:56 +0100, Nenad Vukicevic wrote: ... > <1><54>: Abbrev Number: 4 (DW_TAG_variable) > <55> DW_AT_name: (indirect string, offset: 0x38): x > <59> DW_AT_decl_file : 1 > <5a> DW_AT_decl_line : 1 > <5b> DW_AT_type: <0x4d> > <5f> DW_AT_external