public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/6025: linux m68k-elf-gcc cross compiler segfault
@ 2002-03-22  4:46 Anders Blomdell
  0 siblings, 0 replies; 4+ messages in thread
From: Anders Blomdell @ 2002-03-22  4:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/6025; it has been noted by GNATS.

From: Anders Blomdell <anders.blomdell@control.lth.se>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, anders.blomdell@control.lth.se,
   gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org
Cc:  
Subject: Re: optimization/6025: linux m68k-elf-gcc cross compiler segfault
Date: Fri, 22 Mar 2002 13:39:49 +0100

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6025
 
 OK, I have looked a little furter into this. The problem seems to be 
 in bb-reorder.c:415:
 
 	next = (taken ? e_taken : e_fall)->dest;
 
 the segfault occurs when we get here with:
 
    taken = 0, e_taken = 842a0b0, e_fall = 0
 
 (since (0 ? 842a0b0 : 0)->dest == (0)->dest, which is clearly illegal).
 
 Now, how do I do to find out why there is a block without a valid 
 fall-through path (mapping *.ce2 dump to basic block layout is beyond 
 my capacity).
 
 
 
 -- 
 ------------------------------------------------------------------------------
   Anders Blomdell
   Department of Automatic Control        Email: anders.blomdell@control.lth.se
   Lund Institute of Technology           Phone: +46 46 222 4625
   Box 118, S-221 00 Lund, Sweden         Fax:   +46 46 138118
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/6025: linux m68k-elf-gcc cross compiler segfault
@ 2002-04-23  0:47 rth
  0 siblings, 0 replies; 4+ messages in thread
From: rth @ 2002-04-23  0:47 UTC (permalink / raw)
  To: anders.blomdell, gcc-bugs, gcc-prs, rth

Synopsis: linux m68k-elf-gcc cross compiler segfault

State-Changed-From-To: feedback->closed
State-Changed-By: rth
State-Changed-When: Tue Apr 23 00:47:41 2002
State-Changed-Why:
    Presume fixed.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6025


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/6025: linux m68k-elf-gcc cross compiler segfault
@ 2002-03-27  1:54 rth
  0 siblings, 0 replies; 4+ messages in thread
From: rth @ 2002-03-27  1:54 UTC (permalink / raw)
  To: anders.blomdell, gcc-bugs, gcc-prs, nobody, rth

Synopsis: linux m68k-elf-gcc cross compiler segfault

Responsible-Changed-From-To: unassigned->rth
Responsible-Changed-By: rth
Responsible-Changed-When: Wed Mar 27 01:54:45 2002
Responsible-Changed-Why:
    .
State-Changed-From-To: open->feedback
State-Changed-By: rth
State-Changed-When: Wed Mar 27 01:54:45 2002
State-Changed-Why:
    Appears to be fixed for 3.1 prerelease.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6025


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/6025: linux m68k-elf-gcc cross compiler segfault
@ 2002-03-22  7:46 Anders Blomdell
  0 siblings, 0 replies; 4+ messages in thread
From: Anders Blomdell @ 2002-03-22  7:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/6025; it has been noted by GNATS.

From: Anders Blomdell <anders.blomdell@control.lth.se>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, anders.blomdell@control.lth.se,
   gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org
Cc: Jonas Skeppstedt <js@cs.lth.se>
Subject: Re: optimization/6025: linux m68k-elf-gcc cross compiler segfault
Date: Fri, 22 Mar 2002 16:43:10 +0100

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6025
 
 OK this is probably what's wrong (the correct fix eludes me though):
 
      find_if_case_1
 
    finds that it has a conversion to do and calls
 
      make_edge (NULL, test_bb, then_succ->dest, 0);
      flow_delete_block (then_bb);
      tidy_fallthru_edge (else_edge, test_bb, else_bb);
 
    but tidy_fallthru_edge finds the following expression true
 
      if (next_real_insn (b->end) != next_real_insn (PREV_INSN (c->head)))
 
    and thereby fails to set
 
      e->flags |= EDGE_FALLTHRU;
 
 i.e. we wind up with a newly created edge with no fall_through. The 
 question is if we
 
    1. should always set EDGE_FALLTHRU in tidy_fallthru_edge()
    2. should do it separately after each call to tidy_fallthru_edge()
    3. backtrack the edge creation if to tidy_fallthru_edge failed
    4. do something else
 
 
 ###################################################################
 
 here is segfault.c.24.rnreg which I think is a dump of the program 
 before the call to if_convert(1).
 
 ;; Function SegFaultWhenCompiling
 
 
 Basic block 0:
 
 Basic block 1:
 Closing chain %d0 at insn 102 (terminate_dead)
 Register %d0 (1): 138 [DATA_REGS] 102 [GENERAL_REGS]
 Register %d0 in insn 102; no available registers
 
 Basic block 2:
 
 Basic block 3:
 
 (note 2 0 122 NOTE_INSN_DELETED -1347440721)
 
 ;; Start of basic block 0, registers live: 14 [%a6] 15 [%sp]
 (note 122 2 4 [bb 0] NOTE_INSN_BASIC_BLOCK -1347440721)
 
 (insn 4 122 5 (set (reg/v:SI 1 %d1 [29])
          (mem/f:SI (plus:SI (reg/f:SI 14 %a6)
                  (const_int 8 [0x8])) 1)) 29 {*m68k.md:976} (nil)
      (expr_list:REG_DEAD (reg/f:SI 14 %a6)
          (expr_list:REG_EQUIV (mem/f:SI (plus:SI (reg/f:SI 14 %a6)
                      (const_int 8 [0x8])) 1)
              (nil))))
 ;; End of basic block 0, registers live:
   1 [%d1] 15 [%sp]
 
 (note 5 4 10 NOTE_INSN_FUNCTION_BEG -1347440721)
 
 (note 10 5 11 NOTE_INSN_LOOP_BEG -1347440721)
 
 ;; Start of basic block 1, registers live: 1 [%d1] 15 [%sp]
 (code_label 11 10 123 3 "" "" [7 uses])
 
 (note 123 11 138 [bb 1] NOTE_INSN_BASIC_BLOCK -1347440721)
 
 (insn 138 123 102 (set (reg:SI 0 %d0)
          (const_int 4 [0x4])) 29 {*m68k.md:976} (nil)
      (nil))
 
 (insn:QI 102 138 103 (set (cc0)
          (compare (reg/v:SI 1 %d1 [29])
              (reg:SI 0 %d0))) 11 {*m68k.md:518} (insn_list 138 (nil))
      (expr_list:REG_DEAD (reg:SI 0 %d0)
          (nil)))
 
 (jump_insn 103 102 124 (set (pc)
          (if_then_else (gtu (cc0)
                  (const_int 0 [0x0]))
              (label_ref 87)
              (pc))) 319 {bgtu} (nil)
      (expr_list:REG_BR_PROB (const_int 9001 [0x2329])
          (nil)))
 ;; End of basic block 1, registers live:
   1 [%d1] 15 [%sp]
 
 ;; Start of basic block 2, registers live: 1 [%d1] 15 [%sp]
 (note 124 103 107 [bb 2] NOTE_INSN_BASIC_BLOCK -1347440721)
 
 (jump_insn 107 124 108 (set (pc)
          (label_ref 11)) 336 {jump} (insn_list 106 (nil))
      (nil))
 ;; End of basic block 2, registers live:
   1 [%d1] 15 [%sp]
 
 ;; Insn is not within a basic block
 (code_label 108 107 109 19 "" "" [0 uses])
 
 ;; Insn is not within a basic block
 (jump_insn 109 108 110 (addr_diff_vec:HI (label_ref:SI 108)
          [
              (label_ref:SI 11)
              (label_ref:SI 11)
              (label_ref:SI 11)
              (label_ref:SI 11)
              (label_ref:SI 11)
          ]
          (const_int 0 [0x0])
          (const_int 0 [0x0])) -1 (nil)
      (nil))
 
 (barrier 110 109 18)
 
 (note 18 110 23 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 15 
 -1347440721)
 
 (note 23 18 25 0x4019c100 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 25 23 27 NOTE_INSN_DELETED 0)
 
 (note 27 25 28 0x4019c100 NOTE_INSN_BLOCK_END -1347440721)
 
 (note 28 27 32 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 16 
 -1347440721)
 
 (note 32 28 37 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 18 
 -1347440721)
 
 (note 37 32 39 0x4019c380 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 39 37 41 NOTE_INSN_DELETED 0)
 
 (note 41 39 42 0x4019c380 NOTE_INSN_BLOCK_END -1347440721)
 
 (note 42 41 46 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 19 
 -1347440721)
 
 (note 46 42 51 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 21 
 -1347440721)
 
 (note 51 46 53 0x4019c4e0 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 53 51 55 NOTE_INSN_DELETED 0)
 
 (note 55 53 56 0x4019c4e0 NOTE_INSN_BLOCK_END -1347440721)
 
 (note 56 55 60 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 22 
 -1347440721)
 
 (note 60 56 65 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 24 
 -1347440721)
 
 (note 65 60 67 0x4019c6e0 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 67 65 69 NOTE_INSN_DELETED 0)
 
 (note 69 67 70 0x4019c6e0 NOTE_INSN_BLOCK_END -1347440721)
 
 (note 70 69 74 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 25 
 -1347440721)
 
 (note 74 70 79 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 27 
 -1347440721)
 
 (note 79 74 81 0x40197ea0 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 81 79 83 NOTE_INSN_DELETED 0)
 
 (note 83 81 84 0x40197ea0 NOTE_INSN_BLOCK_END -1347440721)
 
 (note 84 83 87 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 28 
 -1347440721)
 
 ;; Start of basic block 3, registers live: 1 [%d1] 15 [%sp]
 (code_label 87 84 125 17 "" "" [1 uses])
 
 (note 125 87 88 [bb 3] NOTE_INSN_BASIC_BLOCK -1347440721)
 
 (note 88 125 93 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 30 
 -1347440721)
 
 (note 93 88 95 0x401ab0c0 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (insn/i 95 93 97 (set (mem:SI (const_int 4194304 [0x400000]) 1)
          (mem:SI (const_int 1 [0x1]) 1)) 29 {*m68k.md:976} (nil)
      (nil))
 
 (note 97 95 98 0x401ab0c0 NOTE_INSN_BLOCK_END -1347440721)
 
 (note 98 97 99 
 ("/home/andersb/bugs/m68k-elf-gcc-segfault/segfault.c") 31 
 -1347440721)
 
 (jump_insn 99 98 100 (set (pc)
          (label_ref 11)) 336 {jump} (nil)
      (nil))
 ;; End of basic block 3, registers live:
   1 [%d1] 15 [%sp]
 
 (barrier 100 99 113)
 
 (note 113 100 117 NOTE_INSN_LOOP_CONT -1347440721)
 
 (note 117 113 135 NOTE_INSN_LOOP_END -1347440721)
 
 (note 135 117 0 NOTE_INSN_DELETED -1347440721)
 
 
 ;; Function f
 
 
 Basic block 0:
 
 (note 2 0 3 NOTE_INSN_DELETED -1347440721)
 
 (note 3 2 10 NOTE_INSN_FUNCTION_BEG -1347440721)
 
 (note 10 3 12 0x401ab580 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 12 10 13 NOTE_INSN_LOOP_BEG -1347440721)
 
 ;; Start of basic block 0, registers live: 15 [%sp]
 (code_label/i 13 12 101 21 "" "" [1 uses])
 
 (note 101 13 26 [bb 0] NOTE_INSN_BASIC_BLOCK -1347440721)
 
 (note/i 26 101 27 0x401ab5a0 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 27 26 29 NOTE_INSN_DELETED 0)
 
 (note/i 29 27 31 0x401ab5a0 NOTE_INSN_BLOCK_END -1347440721)
 
 (jump_insn/i 31 29 32 (set (pc)
          (label_ref 13)) 336 {jump} (nil)
      (nil))
 ;; End of basic block 0, registers live:
   15 [%sp]
 
 (barrier/i 32 31 37)
 
 (note/i 37 32 40 0x401ab5c0 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 40 37 48 0x401ab5c0 NOTE_INSN_BLOCK_END -1347440721)
 
 (note/i 48 40 51 0x401ab5e0 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 51 48 59 0x401ab5e0 NOTE_INSN_BLOCK_END -1347440721)
 
 (note/i 59 51 62 0x401ab600 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 62 59 70 0x401ab600 NOTE_INSN_BLOCK_END -1347440721)
 
 (note/i 70 62 73 0x401ab620 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 73 70 81 0x401ab620 NOTE_INSN_BLOCK_END -1347440721)
 
 (note/i 81 73 84 0x401ab640 NOTE_INSN_BLOCK_BEG -1347440721)
 
 (note/i 84 81 89 0x401ab640 NOTE_INSN_BLOCK_END -1347440721)
 
 (note/i 89 84 93 NOTE_INSN_LOOP_CONT -1347440721)
 
 (note/i 93 89 96 NOTE_INSN_LOOP_END -1347440721)
 
 (note 96 93 110 0x401ab580 NOTE_INSN_BLOCK_END -1347440721)
 
 (note 110 96 0 NOTE_INSN_DELETED -1347440721)
 
 -- 
 ------------------------------------------------------------------------------
   Anders Blomdell
   Department of Automatic Control        Email: anders.blomdell@control.lth.se
   Lund Institute of Technology           Phone: +46 46 222 4625
   Box 118, S-221 00 Lund, Sweden         Fax:   +46 46 138118
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-04-23  7:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-22  4:46 optimization/6025: linux m68k-elf-gcc cross compiler segfault Anders Blomdell
2002-03-22  7:46 Anders Blomdell
2002-03-27  1:54 rth
2002-04-23  0:47 rth

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).