public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: hjl@lucon.org (H.J. Lu)
To: jason@cygnus.com (Jason Merrill)
Cc: egcs@cygnus.com, rth@cygnus.com
Subject: Re: A new alpha bug
Date: Fri, 12 Sep 1997 22:03:00 -0000	[thread overview]
Message-ID: <m0x9kLx-0004ecC@ocean.lucon.org> (raw)
In-Reply-To: <u9iuw6arqi.fsf@yorick.cygnus.com>

> 
> Not quite.  More like
> 
> complex_double tmp (1.0, 0);
> complex_double one (tmp);
> 
> The '=' in a declaration does not indicate use of the assignment operator.
> 

Of course, you are right. After comparing the foo.cc.rtl files from
gcc 2.7.2.1 -O, egcs 970910 and egcs 970910 -O, I think either
TImode in alpha and/or aliase for TImode are broken. Here is
foo.cc.rtl generated by egcs 970910 -O. As you can see, TI 69
is used without setting first.


-- 
H.J. Lu (hjl@gnu.ai.mit.edu)
---foo.cc.rtl---
;; Function complex_double::complex_double(double = 0, double = 0)

(note 2 0 3 "" NOTE_INSN_DELETED)

(note 3 2 5 "" NOTE_INSN_DELETED)

(insn 5 3 7 (set (reg/v/u:DI 69)
        (reg:DI 16 $16)) -1 (nil)
    (nil))

(insn 7 5 9 (set (reg/v:DF 70)
        (reg:DF 49 $f17)) -1 (nil)
    (nil))

(insn 9 7 10 (set (reg/v:DF 71)
        (reg:DF 50 $f18)) -1 (nil)
    (nil))

(note 10 9 11 "" NOTE_INSN_FUNCTION_BEG)

(note 11 10 13 "" NOTE_INSN_DELETED)

(note 13 11 14 "" NOTE_INSN_DELETED)

(note 14 13 16 "" NOTE_INSN_DELETED)

(insn 16 14 17 (set (mem/s:DF (reg/v/u:DI 69))
        (reg/v:DF 70)) -1 (nil)
    (nil))

(note 17 16 19 "" NOTE_INSN_DELETED)

(insn 19 17 12 (set (mem/s:DF (plus:DI (reg/v/u:DI 69)
                (const_int 8)))
        (reg/v:DF 71)) -1 (nil)
    (nil))

(note 12 19 21 "" NOTE_INSN_DELETED)

(note 21 12 22 "" NOTE_INSN_BLOCK_BEG)

(note 22 21 23 "" NOTE_INSN_BLOCK_END)

(code_label 23 22 24 2 "")

(note 24 23 26 "" NOTE_INSN_DELETED)

(insn 26 24 27 (set (reg/i:DI 0 $0)
        (reg/v/u:DI 69)) -1 (nil)
    (nil))

(insn 27 26 28 (use (reg/i:DI 0 $0)) -1 (nil)
    (nil))

(jump_insn 28 27 29 (set (pc)
        (label_ref 32)) -1 (nil)
    (nil))

(barrier 29 28 30)

(note 30 29 32 "" NOTE_INSN_FUNCTION_END)

(code_label 32 30 0 1 "")

;; Function int main()

(note 2 0 3 "" NOTE_INSN_DELETED)

(note 3 2 4 "" NOTE_INSN_DELETED)

(note 4 3 5 "" NOTE_INSN_FUNCTION_BEG)

(note 5 4 7 "" NOTE_INSN_DELETED)

(note 7 5 8 "" NOTE_INSN_BLOCK_BEG)

(note 8 7 10 "" NOTE_INSN_DELETED)

(note 10 8 11 "" NOTE_INSN_BLOCK_BEG)

(insn 11 10 13 (clobber (mem/s:TI (reg:DI 66))) -1 (nil)
    (nil))

(insn 13 11 15 (set (mem/s:DI (reg:DI 66))
        (subreg:DI (reg/v:TI 69) 0)) -1 (nil)
    (nil))

(insn 15 13 17 (set (mem/s:DI (plus:DI (reg:DI 66)
                (const_int 8)))
        (subreg:DI (reg/v:TI 69) 1)) -1 (nil)
    (nil))

(insn 17 15 19 (set (reg/v:DI 70)
        (reg:DI 66)) -1 (nil)
    (nil))

(insn 19 17 21 (set (reg:DI 72)
        (symbol_ref/u:DI ("*$C32"))) -1 (nil)
    (expr_list:REG_EQUAL (symbol_ref/u:DI ("*$C32"))
        (nil)))

(insn 21 19 23 (set (reg/v:DF 71)
        (mem/u:DF (reg:DI 72))) -1 (nil)
    (nil))

(insn 23 21 24 (set (reg/v:DF 73)
        (const_double:DF (cc0) 0 0)) -1 (nil)
    (nil))

(insn/i 24 23 25 (set (mem/s:DF (reg/v:DI 70))
        (reg/v:DF 71)) -1 (nil)
    (nil))

(insn/i 25 24 26 (set (mem/s:DF (plus:DI (reg/v:DI 70)
                (const_int 8)))
        (const_double:DF (cc0) 0 0)) 243 {movsf-1} (nil)
    (nil))

(note/i 26 25 27 "" NOTE_INSN_BLOCK_BEG)

(note/i 27 26 28 "" NOTE_INSN_BLOCK_END)

(code_label/i 28 27 29 5 "")

(insn/i 29 28 30 (set (reg:DI 74)
        (reg/v:DI 70)) -1 (nil)
    (nil))

(jump_insn/i 30 29 31 (set (pc)
        (label_ref 32)) -1 (nil)
    (nil))

(barrier/i 31 30 32)

(code_label/i 32 31 33 4 "")

(note 33 32 35 "" NOTE_INSN_BLOCK_END)

(note 35 33 37 "" NOTE_INSN_DELETED)

(insn 37 35 39 (set (reg:DI 76)
        (symbol_ref/u:DI ("*$C32"))) -1 (nil)
    (expr_list:REG_EQUAL (symbol_ref/u:DI ("*$C32"))
        (nil)))

(insn 39 37 40 (set (reg:DF 75)
        (mem/u:DF (reg:DI 76))) -1 (nil)
    (nil))

(insn 40 39 41 (set (reg:DF 77)
        (eq:DF (subreg:DF (reg/v:TI 69) 0)
            (reg:DF 75))) -1 (nil)
    (nil))

(jump_insn 41 40 42 (set (pc)
        (if_then_else (eq (reg:DF 77)
                (const_double:DF (cc0) 0 0))
            (label_ref 46)
            (pc))) -1 (nil)
    (nil))

(insn 42 41 43 (set (reg:DF 78)
        (eq:DF (subreg:DF (reg/v:TI 69) 1)
            (const_double:DF (cc0) 0 0))) -1 (nil)
    (nil))

(jump_insn 43 42 44 (set (pc)
        (if_then_else (eq (reg:DF 78)
                (const_double:DF (cc0) 0 0))
            (label_ref 46)
            (pc))) -1 (nil)
    (nil))

(jump_insn 44 43 45 (set (pc)
        (label_ref 54)) -1 (nil)
    (nil))

(barrier 45 44 46)

(code_label 46 45 48 7 "")

(note 48 46 49 "" NOTE_INSN_DELETED)

(note 49 48 52 "" NOTE_INSN_DELETED)

(call_insn 52 49 53 (parallel[ 
            (call (mem:DI (symbol_ref:DI ("abort")))
                (const_int 0))
            (clobber (reg:DI 27 $27))
            (clobber (reg:DI 26 $26))
        ] ) -1 (nil)
    (nil)
    (nil))

(barrier 53 52 54)

(code_label 54 53 56 6 "")

(note 56 54 58 "" NOTE_INSN_DELETED)

(insn 58 56 59 (set (reg/i:DI 0 $0)
        (const_int 0)) -1 (nil)
    (nil))

(insn 59 58 60 (use (reg/i:DI 0 $0)) -1 (nil)
    (nil))

(jump_insn 60 59 61 (set (pc)
        (label_ref 71)) -1 (nil)
    (nil))

(barrier 61 60 62)

(note 62 61 63 "" NOTE_INSN_BLOCK_END)

(note 63 62 65 "" NOTE_INSN_DELETED)

(insn 65 63 66 (set (reg/i:DI 0 $0)
        (const_int 0)) -1 (nil)
    (nil))

(insn 66 65 67 (use (reg/i:DI 0 $0)) -1 (nil)
    (nil))

(jump_insn 67 66 68 (set (pc)
        (label_ref 71)) -1 (nil)
    (nil))

(barrier 68 67 69)

(note 69 68 71 "" NOTE_INSN_FUNCTION_END)

(code_label 71 69 0 3 "")

  reply	other threads:[~1997-09-12 22:03 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-09-12 15:31 H.J. Lu
1997-09-12 18:08 ` Richard Henderson
1997-09-12 18:25   ` H.J. Lu
     [not found]   ` <m0x9gxl-0004ecC.cygnus.egcs@ocean.lucon.org>
1997-09-12 19:10     ` Jason Merrill
1997-09-12 22:03       ` H.J. Lu [this message]
1997-09-14 11:40       ` H.J. Lu
1997-09-14 11:56       ` More info on the g++ " H.J. Lu
1997-09-13 14:44   ` A new " H.J. Lu
1997-09-15 20:26 ` Jim Wilson
1997-09-15 20:38   ` Jason Merrill
1997-09-16 10:11     ` H.J. Lu
1997-09-16 10:18       ` Jason Merrill
1997-09-16 11:09         ` H.J. Lu
1997-09-16 10:38           ` Jason Merrill
1997-09-16 11:39       ` Jim Wilson
1997-09-16 11:39     ` Jim Wilson
1997-09-12 19:59 Kaveh R. Ghazi
1997-09-16 14:53 Mike Stump

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m0x9kLx-0004ecC@ocean.lucon.org \
    --to=hjl@lucon.org \
    --cc=egcs@cygnus.com \
    --cc=jason@cygnus.com \
    --cc=rth@cygnus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).