This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Getting past gcc-3.2 20000611 breakage.


On Sun, Jun 16, 2002 at 11:26:24AM -0700, Matt Thomas wrote:
> <stdin>: In function `x':
> <stdin>:9: error: missing barrier after block 0
> <stdin>:9: internal compiler error: verify_flow_info failed

The problem is that the vax casesi expander was using 
emit_insn instead of emit_jump_insn.

Fixed thus, with a tad extra cleanup.


r~


	* vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.

Index: config/vax/vax.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/vax/vax.md,v
retrieving revision 1.21
diff -c -p -d -r1.21 vax.md
*** config/vax/vax.md	15 Jan 2002 22:37:00 -0000	1.21
--- config/vax/vax.md	16 Jun 2002 19:36:56 -0000
***************
*** 1931,1954 ****
  ;; This is here to accept 5 arguments (as passed by expand_end_case)
  ;; and pass the first 4 along to the casesi1 pattern that really does the work.
  (define_expand "casesi"
!   [(set (pc)
! 	(if_then_else
! 	 (leu (minus:SI (match_operand:SI 0 "general_operand" "g")
! 			(match_operand:SI 1 "general_operand" "g"))
! 	      (match_operand:SI 2 "general_operand" "g"))
! 	 (plus:SI (sign_extend:SI
! 		   (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0)
! 						       (match_dup 1))
! 					     (const_int 2))
! 				    (pc))))
! 		  (label_ref:SI (match_operand 3 "" "")))
! 	 (pc)))
!    (match_operand 4 "" "")]
    ""
!   "
!   emit_insn (gen_casesi1 (operands[0], operands[1], operands[2], operands[3]));
    DONE;
! ")
  
  (define_insn "casesi1"
    [(set (pc)
--- 1931,1947 ----
  ;; This is here to accept 5 arguments (as passed by expand_end_case)
  ;; and pass the first 4 along to the casesi1 pattern that really does the work.
  (define_expand "casesi"
!   [(match_operand:SI 0 "general_operand" "")	; index
!    (match_operand:SI 1 "general_operand" "")	; lower
!    (match_operand:SI 2 "general_operand" "")	; upper-lower
!    (match_operand 3 "" "")			; table label
!    (match_operand 4 "" "")]			; default label
    ""
! {
!   emit_jump_insn (gen_casesi1 (operands[0], operands[1],
! 			       operands[2], operands[3]));
    DONE;
! })
  
  (define_insn "casesi1"
    [(set (pc)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]