Re: missing optimization "a << (b & 63) to a << b"

2013-01-17 Thread Richard Biener
On Thu, Jan 17, 2013 at 2:44 AM, Wei Mi wrote: > Hi, > > For x86, shift insn will automatically mask the count to 5 bits in 32 > bit mode and to 6 bits in 64 bit mode, so for the testcase below, the > buf_ << (-end & 63) could be optimized to buf_ << -end. But for trunk > compiler, some place in t

Re: Identical basic blocks live long in RTL flow.

2013-01-17 Thread Bin.Cheng
On Thu, Jan 17, 2013 at 1:29 AM, Jan Hubicka wrote: >> > >> >Basic blocks 8/9/10 are identical and live until pass jump2, which is >> >after register allocation. >> >I think these duplicated BBs do not contain additional information and >> >should be better to be removed ASAP, because they might i

Imprecise data flow analysis leads to code bloat

2013-01-17 Thread Georg-Johann Lay
Hi, suppose the following C code: static __inline__ __attribute__((__always_inline__)) _Fract rbits (const int i) { _Fract f; __builtin_memcpy (&f, &i, sizeof (_Fract)); return f; } _Fract func (void) { #if B == 1 return rbits (0x1234); #elif B == 2 return 0.14222r; #endif }

Re: not-a-number's

2013-01-17 Thread Vincent Lefevre
On 2013-01-17 06:53:45 +0100, Mischa Baars wrote: > Also this was not what I intended to do, I was trying to work with quiet > not-a-numbers explicitly to avoid the 'invalid operation' exception to be > triggered, so that my program can work it's way through the calculations > without being termina

Re: not-a-number's

2013-01-17 Thread Vincent Lefevre
On 2013-01-17 06:57:12 +0100, Mischa Baars wrote: > >What exactly do you mean by "terminate the if"?? Do you mean skip the > >whole compound statement, including any "else" clause? > Yes, exactly. Skip it, including the 'else'. This is not how C works. Perhaps instead of if (x < y) ... e

Re: Imprecise data flow analysis leads to code bloat

2013-01-17 Thread Richard Biener
On Thu, Jan 17, 2013 at 12:20 PM, Georg-Johann Lay wrote: > Hi, suppose the following C code: > > > static __inline__ __attribute__((__always_inline__)) > _Fract rbits (const int i) > { > _Fract f; > __builtin_memcpy (&f, &i, sizeof (_Fract)); > return f; > } > > _Fract func (void) > {

Re: not-a-number's

2013-01-17 Thread Gabriel Paubert
On Thu, Jan 17, 2013 at 12:21:04PM +0100, Vincent Lefevre wrote: > On 2013-01-17 06:53:45 +0100, Mischa Baars wrote: > > Also this was not what I intended to do, I was trying to work with quiet > > not-a-numbers explicitly to avoid the 'invalid operation' exception to be > > triggered, so that my p

Re: Graphite TODO tasks

2013-01-17 Thread Shakthi Kannan
Hi, --- On Mon, Jan 14, 2013 at 9:37 PM, Tobias Grosser wrote: | 1) Use isl code generation | | isl 0.18 provides a new code generation. \-- Where can I find isl 0.18 sources? I see 0.11-1 at: http://repo.or.cz/w/isl.git SK -- Shakthi Kannan http://www.shakthimaan.com

Re: Graphite TODO tasks

2013-01-17 Thread Richard Biener
On Thu, Jan 17, 2013 at 1:20 PM, Shakthi Kannan wrote: > Hi, > > --- On Mon, Jan 14, 2013 at 9:37 PM, Tobias Grosser wrote: > | 1) Use isl code generation > | > | isl 0.18 provides a new code generation. > \-- > > Where can I find isl 0.18 sources? It's ISL 0.11.1 actually. 0.18.0 is the curren

Re: not-a-number's

2013-01-17 Thread Vincent Lefevre
On 2013-01-17 13:08:17 +0100, Gabriel Paubert wrote: > Hmm, are you sure that this part is properly implemented in gcc, using > unordered compare versus ordered compare instructions depending on > the operator you use? > > At least on PPC, floating point compares always use the unordered > instr

Re: not-a-number's

2013-01-17 Thread Andreas Schwab
Gabriel Paubert writes: > Hmm, are you sure that this part is properly implemented in gcc, using > unordered compare versus ordered compare instructions depending on > the operator you use? For quiet compare operations you need to use isgreater etc. > At least on PPC, floating point compares a

Re: not-a-number's

2013-01-17 Thread Andreas Schwab
Andreas Schwab writes: > The C standard does not place any requirement on < wrt. exceptions or > lack thereof. But IEC 559 does, of course. Andreas. -- Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something com

Re: not-a-number's

2013-01-17 Thread Mischa Baars
On 01/17/2013 01:08 PM, Gabriel Paubert wrote: On Thu, Jan 17, 2013 at 12:21:04PM +0100, Vincent Lefevre wrote: On 2013-01-17 06:53:45 +0100, Mischa Baars wrote: Also this was not what I intended to do, I was trying to work with quiet not-a-numbers explicitly to avoid the 'invalid operation' ex

Re: not-a-number's

2013-01-17 Thread Vincent Lefevre
On 2013-01-17 15:01:20 +0100, Andreas Schwab wrote: > Andreas Schwab writes: > > The C standard does not place any requirement on < wrt. exceptions or > > lack thereof. Agreed, this is a "may" (7.12.14), but... > But IEC 559 does, of course. and in particular, if __STDC_IEC_559__ is defined, th

Re: not-a-number's

2013-01-17 Thread Mischa Baars
On 01/17/2013 04:33 PM, Mischa Baars wrote: On 01/17/2013 01:08 PM, Gabriel Paubert wrote: On Thu, Jan 17, 2013 at 12:21:04PM +0100, Vincent Lefevre wrote: On 2013-01-17 06:53:45 +0100, Mischa Baars wrote: Also this was not what I intended to do, I was trying to work with quiet not-a-numbers e

Re: not-a-number's

2013-01-17 Thread Vincent Lefevre
On 2013-01-17 16:33:56 +0100, Mischa Baars wrote: > Actually it is the correct way, as long as you stick to the > conventions. A QNaN is not supposed to change into anything, also > not with the pow(). Only the other way around. Normal numbers can > change into QNaN's. The C standard specified pow

Re: not-a-number's

2013-01-17 Thread Mischa Baars
On 01/17/2013 04:46 PM, Vincent Lefevre wrote: On 2013-01-17 16:33:56 +0100, Mischa Baars wrote: Actually it is the correct way, as long as you stick to the conventions. A QNaN is not supposed to change into anything, also not with the pow(). Only the other way around. Normal numbers can change

Re: Components no longer exist

2013-01-17 Thread Mischa Baars
On 01/17/2013 04:48 PM, Michael Witten wrote: The documentation here: http://gcc.gnu.org/install/download.html says: It is possible to download a full distribution or specific components... If you choose to download specific components, you must download the core GCC distributio

Re: Components no longer exist

2013-01-17 Thread Mischa Baars
On 01/17/2013 04:48 PM, Michael Witten wrote: The documentation here: http://gcc.gnu.org/install/download.html says: It is possible to download a full distribution or specific components... If you choose to download specific components, you must download the core GCC distributio

Re: Identical basic blocks live long in RTL flow.

2013-01-17 Thread Jeff Law
On 01/17/13 03:39, Bin.Cheng wrote: On Thu, Jan 17, 2013 at 1:29 AM, Jan Hubicka wrote: Basic blocks 8/9/10 are identical and live until pass jump2, which is after register allocation. I think these duplicated BBs do not contain additional information and should be better to be removed ASAP, b

Re: Adding Rounding Mode to Operations Opcodes in Gimple and RTL

2013-01-17 Thread Joseph S. Myers
I should add that the recent observation of bugs on some platforms with unordered comparisons being wrongly used instead of ordered ones illustrates my point about the value of having proper test coverage for each individual operation, even though some bugs will only show in more complicated co

Re: Imprecise data flow analysis leads to code bloat

2013-01-17 Thread Georg-Johann Lay
Richard Biener wrote: > On Thu, Jan 17, 2013 at 12:20 PM, Georg-Johann Lay wrote: >> Hi, suppose the following C code: >> >> >> static __inline__ __attribute__((__always_inline__)) >> _Fract rbits (const int i) >> { >> _Fract f; >> __builtin_memcpy (&f, &i, sizeof (_Fract)); >> return f

Bootstrapping glibc vs. dependency on system headers

2013-01-17 Thread Thomas Schwinge
Hi! Also known as: »I found another one«. As we already know, glibc's configure script is in a difficult position in that it uses "standard Autoconf", but its tests shall not depend on any functionality (for example, system headers) that is to be supplied by the glibc we're about to build. In re

Re: Primary and secondary sysroot?

2013-01-17 Thread Dmitry Mikushin
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello Ian, Thanks for reply, unfortunately setting extra flags does not help in our case, as we want to conserve original build rules for any application. A brilliant solution suggested by Richard Guenther on IRC is to place first-priority includes a

Re: Bootstrapping glibc vs. dependency on system headers

2013-01-17 Thread Joseph S. Myers
On Thu, 17 Jan 2013, Thomas Schwinge wrote: > Issue 2: Though it will of course never be completely fail-safe, > candidate header files I identified to remedy this issue and to be used > in _AC_PROG_PREPROC_WORKS_IFELSE instead of limits.h are: float.h, > stdarg.h, stddef.h (though the latter migh

Re: Components no longer exist

2013-01-17 Thread Jonathan Wakely
On 17 January 2013 15:48, Michael Witten : > The documentation here: > > http://gcc.gnu.org/install/download.html > > says: > > It is possible to download a full distribution or > specific components... If you choose to download > specific components, you must download the core > GCC dist

Re: Components no longer exist

2013-01-17 Thread Mischa Baars
On 01/17/2013 06:23 PM, Jonathan Wakely wrote: On 17 January 2013 15:48, Michael Witten : The documentation here: http://gcc.gnu.org/install/download.html says: It is possible to download a full distribution or specific components... If you choose to download specific components,

Re: Components no longer exist

2013-01-17 Thread Jonathan Wakely
On 17 January 2013 17:29, Mischa Baars wrote: > On 01/17/2013 06:23 PM, Jonathan Wakely wrote: >> >> On 17 January 2013 15:48, Michael Witten : >>> >>> The documentation here: >>> >>>http://gcc.gnu.org/install/download.html >>> >>> says: >>> >>>It is possible to download a full distributio

Re: Components no longer exist

2013-01-17 Thread Jonathan Wakely
On 17 January 2013 17:31, Jonathan Wakely wrote: > On 17 January 2013 17:29, Mischa Baars wrote: >> >> Does that mean that you are satisfied with the 'if / else' as is, and that >> you also do not need an improvement of the arctangent in glibc? > > You're confused. This is nothing to do with glib

Re: missing optimization "a << (b & 63) to a << b"

2013-01-17 Thread Xinliang David Li
>> Or better way to solve the problem? Appreciated a lot! > > Combine / simplify-rtx should recognize this at the RTL level for > SHIFT_COUNT_TRUNCATED targets. IIUC, combine uses UD chains (LOG links) which is best suitable for cases where this is only one downward uses of the def. The example he

Re: Components no longer exist

2013-01-17 Thread Mischa Baars
On 01/17/2013 06:31 PM, Jonathan Wakely wrote: On 17 January 2013 17:29, Mischa Baars wrote: On 01/17/2013 06:23 PM, Jonathan Wakely wrote: On 17 January 2013 15:48, Michael Witten : The documentation here: http://gcc.gnu.org/install/download.html says: It is possible to download a

Re: Components no longer exist

2013-01-17 Thread Jonathan Wakely
On 17 January 2013 17:48, Mischa Baars wrote: > > Indeed I am, I thought you were trying to say that gcc-x.y.z.tar.gz has > missing components. I had some trouble compiler: unable to compute suffix > for object files, but now it seems to work?! Did you read http://gcc.gnu.org/wiki/FAQ#configure_su

Re: Components no longer exist

2013-01-17 Thread Mischa Baars
On 01/17/2013 07:40 PM, Jonathan Wakely wrote: On 17 January 2013 17:48, Mischa Baars wrote: Indeed I am, I thought you were trying to say that gcc-x.y.z.tar.gz has missing components. I had some trouble compiler: unable to compute suffix for object files, but now it seems to work?! Did you rea

Re: microblaze unroll loops optimization

2013-01-17 Thread David Holsgrove
Hi Richard, On 16 January 2013 06:58, Richard Henderson wrote: > > You could, however, use two CCmodes for the result of the compares: > > (set (reg:CC r) (compare:CC (reg:SI x) (reg:SI y))) > => cmp r, x, y > > (set (reg:CCU r) (compare:CCU (reg:SI x) (reg:SI y))) > => cmpu r, x, y > > a

Re: Graphite TODO tasks

2013-01-17 Thread Shakthi Kannan
Hi, --- On Thu, Jan 17, 2013 at 5:53 PM, Richard Biener wrote: | It's ISL 0.11.1 actually. 0.18.0 is the current CLooG version. \-- Thanks. I downloaded cloog-0.18.0, compiled and installed the same using: $ cd cloog-0.18.0 $ mkdir build $ cd build $ ../configure $ make $ sudo make