This is the mail archive of the gcc-patches@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]

Re: ICE compiling glibc on i686 with current CVS version


> 
> Since a week or so, I get an ICE running make check in the current
> glibc development version.
> 
> I've made a smaller testcase out of it.  Compiling the file gives:
> /opt/gcc-2.96/bin/gcc tester2.i -c -O2    -o tester.o -Wall
> tester2.i: In function `test_stpcpy':
> tester2.i:34: Unrecognizable insn:
> (insn 222 220 224 (parallel[ 
>             (set (reg:SI 92)
>                 (neg:SI (symbol_ref:SI ("one"))))
>             (clobber (reg:CC 17 flags))
>         ] ) -1 (nil)
>     (expr_list:REG_UNUSED (reg:CC 17 flags)
>         (nil)))
> tester2.i:34: Internal compiler error in `extract_insn', at recog.c:2043
> Please submit a full bug report.
> See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for instructions.
> 
<snip>
> 
> Jan, is this a problem of one of your ix86 patches?
Yes, it is. I've used wrong predicate for the unary operations expanders.
Hope that the those mechanical predicates releated changes will not change
more harm in future...
Thanks for the bugreport!

I've write simple testcase for passing symbolic address to unary operator, maybe it can
be installed to testsuite:

int a;
int b()
{
  return -(int)&a;
}


Wed Dec  8 14:33:06 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
	* i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand in expander.

*** i386.md.old5	Wed Dec  8 14:17:57 1999
--- i386.md	Wed Dec  8 14:31:31 1999
***************
*** 4724,4730 ****
  
  (define_expand "negdi2"
    [(parallel [(set (match_operand:DI 0 "nonimmediate_operand" "")
! 		   (neg:DI (match_operand:DI 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, DImode, operands); DONE;")
--- 4724,4730 ----
  
  (define_expand "negdi2"
    [(parallel [(set (match_operand:DI 0 "nonimmediate_operand" "")
! 		   (neg:DI (match_operand:DI 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, DImode, operands); DONE;")
***************
*** 4760,4766 ****
  
  (define_expand "negsi2"
    [(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "")
! 		   (neg:SI (match_operand:SI 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, SImode, operands); DONE;")
--- 4760,4766 ----
  
  (define_expand "negsi2"
    [(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "")
! 		   (neg:SI (match_operand:SI 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, SImode, operands); DONE;")
***************
*** 4795,4801 ****
  
  (define_expand "neghi2"
    [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
! 		   (neg:HI (match_operand:HI 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, HImode, operands); DONE;")
--- 4795,4801 ----
  
  (define_expand "neghi2"
    [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
! 		   (neg:HI (match_operand:HI 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, HImode, operands); DONE;")
***************
*** 4830,4836 ****
  
  (define_expand "negqi2"
    [(parallel [(set (match_operand:QI 0 "nonimmediate_operand" "")
! 		   (neg:QI (match_operand:QI 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, QImode, operands); DONE;")
--- 4830,4836 ----
  
  (define_expand "negqi2"
    [(parallel [(set (match_operand:QI 0 "nonimmediate_operand" "")
! 		   (neg:QI (match_operand:QI 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NEG, QImode, operands); DONE;")
***************
*** 4867,4873 ****
  
  (define_expand "negsf2"
    [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "")
! 		   (neg:SF (match_operand:SF 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (NEG, SFmode, operands); DONE;")
--- 4867,4873 ----
  
  (define_expand "negsf2"
    [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "")
! 		   (neg:SF (match_operand:SF 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (NEG, SFmode, operands); DONE;")
***************
*** 4922,4928 ****
  
  (define_expand "negdf2"
    [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "")
! 		   (neg:DF (match_operand:DF 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (NEG, DFmode, operands); DONE;")
--- 4922,4928 ----
  
  (define_expand "negdf2"
    [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "")
! 		   (neg:DF (match_operand:DF 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (NEG, DFmode, operands); DONE;")
***************
*** 4958,4964 ****
  
  (define_expand "negxf2"
    [(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
! 		   (neg:XF (match_operand:XF 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (NEG, XFmode, operands); DONE;")
--- 4958,4964 ----
  
  (define_expand "negxf2"
    [(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
! 		   (neg:XF (match_operand:XF 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (NEG, XFmode, operands); DONE;")
***************
*** 5050,5056 ****
  
  (define_expand "abssf2"
    [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "")
! 		   (neg:SF (match_operand:SF 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (ABS, SFmode, operands); DONE;")
--- 5050,5056 ----
  
  (define_expand "abssf2"
    [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "")
! 		   (neg:SF (match_operand:SF 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (ABS, SFmode, operands); DONE;")
***************
*** 5105,5111 ****
  
  (define_expand "absdf2"
    [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "")
! 		   (neg:DF (match_operand:DF 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (ABS, DFmode, operands); DONE;")
--- 5105,5111 ----
  
  (define_expand "absdf2"
    [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "")
! 		   (neg:DF (match_operand:DF 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (ABS, DFmode, operands); DONE;")
***************
*** 5141,5147 ****
  
  (define_expand "absxf2"
    [(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
! 		   (neg:XF (match_operand:XF 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (ABS, XFmode, operands); DONE;")
--- 5141,5147 ----
  
  (define_expand "absxf2"
    [(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
! 		   (neg:XF (match_operand:XF 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    "TARGET_80387"
    "ix86_expand_unary_operator (ABS, XFmode, operands); DONE;")
***************
*** 5224,5230 ****
  
  (define_expand "one_cmplsi2"
    [(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "")
! 		   (not:SI (match_operand:SI 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NOT, SImode, operands); DONE;")
--- 5224,5230 ----
  
  (define_expand "one_cmplsi2"
    [(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "")
! 		   (not:SI (match_operand:SI 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NOT, SImode, operands); DONE;")
***************
*** 5262,5268 ****
  
  (define_expand "one_cmplhi2"
    [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
! 		   (not:HI (match_operand:HI 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NOT, HImode, operands); DONE;")
--- 5262,5268 ----
  
  (define_expand "one_cmplhi2"
    [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
! 		   (not:HI (match_operand:HI 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NOT, HImode, operands); DONE;")
***************
*** 5311,5317 ****
  ;; %%% Potential partial reg stall on alternative 1.  What to do?
  (define_expand "one_cmplqi2"
    [(parallel [(set (match_operand:QI 0 "nonimmediate_operand" "")
! 		   (not:QI (match_operand:QI 1 "general_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NOT, QImode, operands); DONE;")
--- 5311,5317 ----
  ;; %%% Potential partial reg stall on alternative 1.  What to do?
  (define_expand "one_cmplqi2"
    [(parallel [(set (match_operand:QI 0 "nonimmediate_operand" "")
! 		   (not:QI (match_operand:QI 1 "nonimmediate_operand" "")))
  	      (clobber (reg:CC 17))])]
    ""
    "ix86_expand_unary_operator (NOT, QImode, operands); DONE;")


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