no response to cfarm request

2014-12-09 Thread Jay Foad
Hi,

I've followed the instructions to request access to the GCC compile
farm (https://gcc.gnu.org/wiki/CompileFarm#How_to_Get_Involved.3F) but
heard nothing for two weeks, despite a ping. Are the instructions
still correct? Is there anyone else I can contact about it?

Thanks,
Jay.


Re: no response to cfarm request

2014-12-16 Thread Jay Foad
Hi,

On 9 December 2014 at 09:16, Jay Foad  wrote:
> I've followed the instructions to request access to the GCC compile
> farm (https://gcc.gnu.org/wiki/CompileFarm#How_to_Get_Involved.3F) but
> heard nothing for two weeks, despite a ping. Are the instructions
> still correct? Is there anyone else I can contact about it?

I've pinged again and waited another week with no response. Is there
no-one else who can administer compile farm accounts?

Thanks,
Jay.


Re: Why is floor() only compiled to roundsd when using -funsafe-math-optimizations?

2015-01-28 Thread Jay Foad
On 26 January 2015 at 23:50, Fredrik Tolf  wrote:
> Dear list,
>
> Consider the following small program:
>
> #include 
> #include 
> #include 
>
> int main(int argc, char **argv)
> {
> double a;
>
> a = strtod(argv[0], NULL);
> printf("%f\n", floor(a));
> return(0);
> }
>
> When compiling this with a -march that supports the roundsd instruction, the
> floor() call seems to only be compiled to such an instruction if
> -funsafe-math-optimizations is specified.
>
> Why is this? I notice the glibc's floor() implementation (for SSE4.1-enabled
> processors) consists of only this instruction, so barring a bug in glibc,
> that would seem to imply to me the roundsd is IEEE-compliant and safe. Why
> does GCC consider it unsafe?

I asked the same thing: https://gcc.gnu.org/ml/gcc-help/2014-01/msg00051.html

Jay.


how to generate x86 "narrowing" divide instruction

2011-03-07 Thread Jay Foad
This source code:

$ cat rand.c
#include 
uint32_t rand(uint32_t x) { return (uint64_t)x * 16807 % 0x7FFF; }

compiles to this optimised x86 code:

$ gcc -S -O3 -m32 -fomit-frame-pointer -o - rand.c
...
rand:
subl$28, %esp
movl$16807, %eax
mull32(%esp)
movl$2147483647, 8(%esp)
movl$0, 12(%esp)
movl%eax, (%esp)
movl%edx, 4(%esp)
call__umoddi3
addl$28, %esp
ret

Why does the compiler generate a call to __umoddi3, rather than a
single 64- to 32-bit divide/remainder instruction, "div"? Is it
lacking the necessary VRP to determine that the high part of the
dividend is strictly less than the divisor?

I'm using:

$ gcc --version
gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5

Thanks,
Jay.


Re: GMP and GCC 4.3.2

2009-12-17 Thread Jay Foad
If it's the bug being discussed here:

http://gmplib.org/list-archives/gmp-discuss/2009-April/003717.html

... then it was reported as fixed here:

http://gcc.gnu.org/ml/gcc/2009-04/msg00562.html

Jay.


Re: New no-undefined-overflow branch

2009-02-27 Thread Jay Foad
> To support languages that have undefined semantics on overflowing
> operations the middle-end gets new unary and binary operators
> that implicitly encode value-range information about their operands
> noting that the operation does not overflow.  These does-not-overflow
> operators transform the undefined behavior into a valid assumption
> and thus make the GIMPLE IL fully defined.

>From an optimisation pass's point of view, what's the difference between:

1. a PLUS expression that gives an undefined result on overflow, and
2. a PLUS expression with a guarantee that the result won't overflow.

I can't see how they will be handled any differently in practice.

Thanks,
Jay.


dodgy syntax in acx.m4?

2009-04-24 Thread Jay Foad
I've just noticed this in config/acx.m4:

dnl GCC_TARGET_TOOL(PROGRAM, TARGET-VAR, HOST-VAR, IN-TREE-TOOL, LANGUAGE)
AC_DEFUN([GCC_TARGET_TOOL],
[AC_MSG_CHECKING(where to find the target $1)
if test "x${build}" != "x${host}" ; then
  ...
else
  ifelse([$4],,,
  [ok=yes
  case " ${configdirs} " in
*" patsubst([$4], [/.*], []) "*) ;;
*) ok=no ;;
  esac
  ifelse([$5],,,
  [case ,${enable_languages}, in
*,$5,*) ;;
*) ok=no ;;
  esac])
  if test $ok = yes; then
# An in-tree tool is available and we can use it
$2='$$r/$(HOST_SUBDIR)/$4'
AC_MSG_RESULT(just compiled)
  el])if expr "x[$]$2" : "x/" > /dev/null; then
  ^^

That "el])if" looks very odd. Is it meant to be like that?

Thanks,
Jay.


Re: dodgy syntax in acx.m4?

2009-04-24 Thread Jay Foad
> If $4 is empty this expands to "if expr ...", otherwise you get "ok=yes
> ... if test $ok = yes; then ... elif expr ..."

Thanks for the explanation! I didn't realise it was trying to be that clever.

Thanks,
Jay.


Re: Calculating instruction costs

2013-07-09 Thread Jay Foad
On 9 July 2013 11:02, David Given  wrote:
> Right now all the cost macros are left as the default, which is probably
> the root of the problem; but I'm having a lot of trouble getting my head
> around them. In the interest of actually getting something to work, are
> there any ways of using a simplified cost model where the cost of each
> instruction is specified manually in the instruction pattern alongside
> the length? (Or even just *using* the length as the cost...)

Hi David!

Does -Os achieve this?

Jay.

P.S. Sorry if you got two copies of this.