no response to cfarm request
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
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?
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
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
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
> 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?
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?
> 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
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.