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