delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/07/30/04:48:51

From: sholden AT pgrad DOT cs DOT usyd DOT edu DOT au (Sam Holden)
Subject: Re: gcc 2.7-b19 on gnu-win32 b19 generating bad asm
30 Jul 1998 04:48:51 -0700 :
Message-ID: <199807290014.RAA23968.cygnus.gnu-win32@cygnus.com>
References: <19980728070132 DOT 40820 AT murlibobo DOT cs DOT mu DOT OZ DOT AU>
Mime-Version: 1.0
To: gnu-win32 AT cygnus DOT com

Fergus Henderson writes:
>GNU C version 2.7-b19 on gnu-win32 version b19.1 (intel x86)
>generates bad assembler for the following program.  The program
>(cut down from C code automatically generated by the Mercury compiler)
>is not strictly conforming, but even so, the generated assembler
>is pretty nonsensical.  This worked fine in b18.
>
>To reproduce the problem, compile the following program with `gcc -O2 -S'.

<snip code that was wrapped somewhere, so I couldn't test...>
>
>The generated code for the `goto' above is the assembler statement
>
>	jmp *%ecx
>
>but this is the *only* occurrence of %ecx in the generated code.
>%ecx is never initialized, and the reference to `mercury__compare_3_3'
>somehow gets optimized away entirely.

Of course if it really did work with b18 then I will be completely wrong.
Also if gcc has been patched on cygwin32 I'll be wrong. But anyway...

Using -O2 to me is a lot risky since my docs say :

Users of gcc 2.7.0 thru 2.7.2 should note that there is a bug in -O2 on
these. Specifically, strength reduction doesn't work. A patch can be
had to fix this if you feel like recompiling gcc, otherwise make sure
that you always compile with -fno-strength-reduce.

Now strength-reduction does loop-strength reduction and elimination of
iteration variables... Possibly not what is happening in your case, but you
could try with the extra option and see. 

It's probably not the reason, but I couldn't test it because I couldn't
be bothered reformatting yur wrapped code...

Sam

---
testing? What's that? If it compiles, it is good, if it boots up it
is perfect. --Linus Torvalds


-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019