> On Wed, Jan 25, 2006 at 01:01:17PM -0800, Steve Ellcey wrote:
> > 
> > I took Zack's advice and put all the includes from insn-attrtab.c into
> > insn-automata.c.  My current problem is that I get:
> > 
> > | insn-automata.c: In function 'print_reservation':
> > | insn-automata.c:22466: warning: string length '669' is greater than the 
> > length '
> > | 509' ISO C89 compilers are required to support
> > | make[3]: *** [insn-automata.o] Error 1
> > | make[3]: Target `all' not remade because of errors.
> 
> Odd.  I don't see how my changes could possibly have triggered that.

It seems to be coming from the reservation_names array set up in
print_reservation.  One of the entries is:

"(1_0m_bs,1_m_cont)|(1_0mi_bs,1_mi_cont|nothing)|(1_0mm_bs,1_mm_cont)|(1_0mf_bs,1_mf_cont|nothing)|(1_0b_bs,1_b_cont|nothing)|(1_0bb_bs,1_bb_cont|nothing)|(1_0mb_bs,1_mb_cont|nothing)|(1_1m_bs,1_m_cont)|(1_1mi_bs,1_mi_cont|nothing)|(1_1mm_bs,1_mm_cont)|(1_1mf_bs,1_mf_cont|nothing)|(1_1b_bs,1_b_cont|nothing)|(1_1bb_bs,1_bb_cont|nothing)|(1_1mb_bs,1_mb_cont|nothing)|(1_m_cont_only,1_m_cont|nothing)|(1_b_cont_only,1_b_cont|nothing)|(1_mi_cont_only,1_mi_cont|nothing)|(1_mm_cont_only,1_mm_cont|nothing)|(1_mf_cont_only,1_mf_cont|nothing)|(1_mb_cont_only,1_mb_cont|nothing)|(1_bb_cont_only,1_bb_cont|nothing)|(1_m_stop,1_0mmi_cont|nothing)|(1_mi_stop,1_0mii_cont|nothing)"

This in turn seems to be coming from config/ia64/itanium1.md:

(define_insn_reservation "1_pre_cycle" 0
   (and (and (eq_attr "cpu" "itanium")
             (eq_attr "itanium_class" "pre_cycle"))
        (eq (symbol_ref "bundling_p") (const_int 0)))
                         "(1_0m_bs, 1_m_cont)                     \
                          | (1_0mi_bs, (1_mi_cont|nothing))       \
                          | (1_0mm_bs, 1_mm_cont)                 \
                          | (1_0mf_bs, (1_mf_cont|nothing))       \
                          | (1_0b_bs, (1_b_cont|nothing))         \
                          | (1_0bb_bs, (1_bb_cont|nothing))       \
                          | (1_0mb_bs, (1_mb_cont|nothing))       \
                          | (1_1m_bs, 1_m_cont)                   \
                          | (1_1mi_bs, (1_mi_cont|nothing))       \
                          | (1_1mm_bs, 1_mm_cont)                 \
                          | (1_1mf_bs, (1_mf_cont|nothing))       \
                          | (1_1b_bs, (1_b_cont|nothing))         \
                          | (1_1bb_bs, (1_bb_cont|nothing))       \
                          | (1_1mb_bs, (1_mb_cont|nothing))       \
                          | (1_m_cont_only, (1_m_cont|nothing))   \
                          | (1_b_cont_only,  (1_b_cont|nothing))  \
                          | (1_mi_cont_only, (1_mi_cont|nothing)) \
                          | (1_mm_cont_only, (1_mm_cont|nothing)) \
                          | (1_mf_cont_only, (1_mf_cont|nothing)) \
                          | (1_mb_cont_only, (1_mb_cont|nothing)) \
                          | (1_bb_cont_only, (1_bb_cont|nothing)) \
                          | (1_m_stop, (1_0mmi_cont|nothing))     \
                          | (1_mi_stop, (1_0mii_cont|nothing))")

I am not sure why this long string was not a problem before but is now.

> > Here is the patch I used:
> 
> Um. I think you sent the wrong patch.

Woops, I meant to include:

Index: Makefile.in
===================================================================
--- Makefile.in (revision 110226)
+++ Makefile.in (working copy)
@@ -2640,7 +2640,8 @@ insn-attrtab.o : insn-attrtab.c $(CONFIG
   $(TM_H) $(RTL_H) $(REGS_H) real.h output.h $(INSN_ATTR_H)            \
   insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H)
 insn-automata.o : insn-automata.c $(CONFIG_H) $(SYSTEM_H) coretypes.h  \
-  $(TM_H) $(RTL_H) $(INSN_ATTR_H)
+  $(TM_H) $(RTL_H) $(REGS_H) real.h output.h $(INSN_ATTR_H)            \
+  insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H)
 insn-emit.o : insn-emit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)  \
   $(RTL_H) $(EXPR_H) real.h output.h insn-config.h $(OPTABS_H)         \
   reload.h $(RECOG_H) toplev.h $(FUNCTION_H) $(FLAGS_H) hard-reg-set.h \

Index: genautomata.c
===================================================================
--- genautomata.c       (revision 110226)
+++ genautomata.c       (working copy)
@@ -9255,7 +9257,16 @@ main (int argc, char **argv)
        "#include \"coretypes.h\"\n"
        "#include \"tm.h\"\n"
        "#include \"rtl.h\"\n"
-       "#include \"insn-attr.h\"\n");
+       "#include \"tm_p.h\"\n"
+       "#include \"insn-config.h\"\n"
+       "#include \"recog.h\"\n"
+       "#include \"regs.h\"\n"
+       "#include \"real.h\"\n"
+       "#include \"output.h\"\n"
+       "#include \"insn-attr.h\"\n"
+       "#include \"toplev.h\"\n"
+       "#include \"flags.h\"\n"
+       "#include \"function.h\"\n");
 
   if (VEC_length (decl_t, decls) > 0)
     {

Reply via email to