aboutsummaryrefslogtreecommitdiff
path: root/gcc/Makefile.in
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2006-01-23 15:15:05 +0000
committerZack Weinberg <zack@gcc.gnu.org>2006-01-23 15:15:05 +0000
commit1c7352cde8a759e414b61d3aeaf40eda67f8dd75 (patch)
tree4239faf09e39683b3cf8286950be3b1832fd451b /gcc/Makefile.in
parent245fc6392879dd2493d4be97cbd01c64d0a61adf (diff)
downloadgcc-1c7352cde8a759e414b61d3aeaf40eda67f8dd75.zip
gcc-1c7352cde8a759e414b61d3aeaf40eda67f8dd75.tar.gz
gcc-1c7352cde8a759e414b61d3aeaf40eda67f8dd75.tar.bz2
r110123@banpei: zack | 2006-01-22 14:44:34 -0800
r110123@banpei: zack | 2006-01-22 14:44:34 -0800 * genconditions.c (condition_table, add_condition): Delete. (write_conditions): Don't emit n_insn_conditions nor insn_elision_unavailable. Issue the gcc version #ifdef here, inside the table, with no #else clause ... (write_header): ...not here. (write_writer): New function. (main): Don't initialize condition_table. Use add_c_test. Call write_writer. * gensupport.c (init_md_reader_args_cb): Handle multiple input files on the command line. (maybe_eval_c_test): Don't check insn_elision_unavailable. Return -1 if there is no entry in the table, don't abort. (add_c_test, traverse_c_tests): New functions. * gensupport.h (insn_elision_unavailable, insn_conditions) (n_insn_conditions): Delete declarations. (add_c_test, traverse_c_tests): Declare. * read-rtl.c: Include gensupport.h. (read_conditions): New function. (read_rtx): If read_rtx_1 returns 0, treat as EOF. (read_rtx_1): If we get EOF when we were looking for an initial open paren, return 0. Call read_conditions when appropriate. * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to dummy-conditions.o. Eliminate references to insn-conditions.o, or change them to build/gencondmd.o, as appropriate. Remove insn-constants.h from $(simple_generated_h) and insn-conditions.c from $(simple_generated_c). For all files remaining in those two lists, add insn-conditions.md to the generator command line. Give insn-constants.h/s-constants their own rules. Add rules for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd. (build/read-rtl.o): Depend on gensupport.h. (genprognormal): Include preds. (genprogearly): Rename genprognoprint; only difference is now that they don't link with $(BUILD_PRINT). * dummy-conditions.c: Delete. From-SVN: r110119
Diffstat (limited to 'gcc/Makefile.in')
-rw-r--r--gcc/Makefile.in74
1 files changed, 49 insertions, 25 deletions
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 68bbb69..c6eec98 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -198,7 +198,7 @@ GCC_WARN_CFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn)
# These files are to have -Werror bypassed in stage2:
# These are very hard to completely clean due to target complexities.
gcc.o-warn = -Wno-error
-build/insn-conditions.o-warn = -Wno-error
+build/gencondmd.o-warn = -Wno-error
# Bison-1.75 output often yields (harmless) -Wtraditional warnings
build/gengtype-yacc.o-warn = -Wno-error
# flex output may yield harmless "no previous prototype" warnings
@@ -840,9 +840,7 @@ BUILD_LIBS = $(BUILD_LIBIBERTY)
BUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o \
build/min-insn-modes.o
-BUILD_SUPPORT = build/gensupport.o build/insn-conditions.o
-BUILD_EARLY_SUPPORT = build/gensupport.o build/dummy-conditions.o
-
+BUILD_SUPPORT = build/gensupport.o
BUILD_PRINT = build/print-rtl.o
BUILD_ERRORS = build/errors.o
BUILD_VARRAY = build/varray.o
@@ -1019,7 +1017,7 @@ STAGECOPYSTUFF = insn-flags.h insn-config.h insn-codes.h \
insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \
insn-attr.h insn-attrtab.c insn-opinit.c insn-preds.c insn-constants.h \
tm-preds.h \
- tree-check.h insn-conditions.c min-insn-modes.c insn-modes.c insn-modes.h \
+ tree-check.h min-insn-modes.c insn-modes.c insn-modes.h \
genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h
# Files to be moved away after each stage in building.
@@ -2678,26 +2676,38 @@ insn-recog.o : insn-recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
# The "; @true" construct forces Make to recheck the timestamp on the
# target file.
-simple_generated_h = insn-attr.h insn-codes.h insn-config.h \
- insn-constants.h insn-flags.h
+simple_generated_h = insn-attr.h insn-codes.h insn-config.h insn-flags.h
-simple_generated_c = insn-attrtab.c insn-conditions.c insn-emit.c \
- insn-extract.c insn-opinit.c insn-output.c \
- insn-peep.c insn-recog.c
+simple_generated_c = insn-attrtab.c insn-emit.c insn-extract.c \
+ insn-opinit.c insn-output.c insn-peep.c \
+ insn-recog.c
$(simple_generated_h): insn-%.h: s-%; @true
-$(simple_generated_h:insn-%.h=s-%): s-%: $(MD_DEPS) build/gen%$(build_exeext)
- $(RUN_GEN) build/gen$*$(build_exeext) $(md_file) > tmp-$*.h
+$(simple_generated_h:insn-%.h=s-%): s-%: build/gen%$(build_exeext) \
+ $(MD_DEPS) insn-conditions.md
+ $(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \
+ insn-conditions.md > tmp-$*.h
$(SHELL) $(srcdir)/../move-if-change tmp-$*.h insn-$*.h
$(STAMP) s-$*
$(simple_generated_c): insn-%.c: s-%; @true
-$(simple_generated_c:insn-%.c=s-%): s-%: $(MD_DEPS) build/gen%$(build_exeext)
- $(RUN_GEN) build/gen$*$(build_exeext) $(md_file) > tmp-$*.c
+$(simple_generated_c:insn-%.c=s-%): s-%: build/gen%$(build_exeext) \
+ $(MD_DEPS) insn-conditions.md
+ $(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \
+ insn-conditions.md > tmp-$*.c
$(SHELL) $(srcdir)/../move-if-change tmp-$*.c insn-$*.c
$(STAMP) s-$*
+# genconstants needs to run before insn-conditions.md is available
+# (because the constants may be used in the conditions).
+insn-constants.h: s-constants; @true
+s-constants: build/genconstants$(build_exeext) $(MD_DEPS)
+ $(RUN_GEN) build/genconstants$(build_exeext) $(md_file) \
+ > tmp-constants.h
+ $(SHELL) $(srcdir)/../move-if-change tmp-constants.h insn-constants.h
+ $(STAMP) s-constants
+
# gencheck doesn't read the machine description, and the file produced
# doesn't use the insn-* convention.
tree-check.h: s-check ; @true
@@ -2706,6 +2716,20 @@ s-check : build/gencheck$(build_exeext)
$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
$(STAMP) s-check
+# gencondmd doesn't use the standard naming convention.
+build/gencondmd.c: s-conditions; @true
+s-conditions: $(MD_DEPS) build/genconditions$(build_exeext)
+ $(RUN_GEN) build/genconditions$(build_exeext) $(md_file) > tmp-condmd.c
+ $(SHELL) $(srcdir)/../move-if-change tmp-condmd.c build/gencondmd.c
+ $(STAMP) s-conditions
+
+insn-conditions.md: s-condmd; @true
+s-condmd: build/gencondmd$(build_exeext)
+ $(RUN_GEN) build/gencondmd$(build_exeext) > tmp-cond.md
+ $(SHELL) $(srcdir)/../move-if-change tmp-cond.md insn-conditions.md
+ $(STAMP) s-condmd
+
+
# These files are generated by running the same generator more than
# once with different options, so they have custom rules. The
# stampfile idiom is the same.
@@ -2859,7 +2883,6 @@ build/%.o : # dependencies provided by explicit rule later
# Header dependencies for the programs that generate source code.
# These are library modules...
-build/dummy-conditions.o : dummy-conditions.c
build/errors.o : errors.c $(BCONFIG_H) $(SYSTEM_H) errors.h
build/gensupport.o: gensupport.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h \
$(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) errors.h $(HASHTAB_H) \
@@ -2871,16 +2894,16 @@ build/min-insn-modes.o : min-insn-modes.c $(BCONFIG_H) $(SYSTEM_H) \
build/print-rtl.o: print-rtl.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h \
$(GTM_H) $(RTL_BASE_H)
build/read-rtl.o: read-rtl.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h \
- $(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) $(HASHTAB_H)
+ $(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) $(HASHTAB_H) gensupport.h
build/rtl.o: rtl.c $(BCONFIG_H) coretypes.h $(GTM_H) $(SYSTEM_H) \
$(RTL_H) real.h $(GGC_H) errors.h
build/varray.o: varray.c $(BCONFIG_H) coretypes.h $(GTM_H) $(SYSTEM_H) \
$(VARRAY_H) $(RTL_BASE_H) $(GGC_H) $(TREE_H) bitmap.h errors.h
build/vec.o : vec.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) coretypes.h vec.h \
$(GGC_H) toplev.h
-build/insn-conditions.o : insn-conditions.c $(CONFIG_H) $(SYSTEM_H) \
- $(GTM_H) $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) $(RECOG_H) real.h \
- output.h $(FLAGS_H) hard-reg-set.h $(RESOURCE_H) toplev.h reload.h \
+build/gencondmd.o : build/gencondmd.c $(CONFIG_H) $(SYSTEM_H) $(GTM_H) \
+ $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) $(RECOG_H) real.h output.h \
+ $(FLAGS_H) hard-reg-set.h $(RESOURCE_H) toplev.h reload.h \
gensupport.h insn-constants.h coretypes.h
# ...these are the programs themselves.
@@ -2942,15 +2965,16 @@ build/gen%$(build_exeext): build/gen%.o $(BUILD_LIBDEPS)
$(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS)
# All these programs have the same additional dependency set.
-genprognormal = attr codes config emit extract flags opinit output peep recog
+genprognormal = attr codes config emit extract flags opinit output peep recog \
+ preds
$(genprognormal:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_SUPPORT) \
$(BUILD_PRINT) $(BUILD_ERRORS)
-# And all of these, but it's a different set.
-genprogearly = mddeps constants conditions preds
-$(genprogearly:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS) \
- $(BUILD_EARLY_SUPPORT)
-build/genpreds$(build_exeext) : $(BUILD_PRINT)
+# These don't have the glue to link with print-rtl.o.
+genprognoprint = mddeps constants conditions
+$(genprognoprint:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_SUPPORT) \
+ $(BUILD_ERRORS)
+
build/gengenrtl$(build_exeext) : $(BUILD_ERRORS)
build/genmodes$(build_exeext) : $(BUILD_ERRORS)