From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23444 invoked by alias); 25 Jun 2010 21:34:02 -0000 Received: (qmail 23050 invoked by alias); 25 Jun 2010 21:33:32 -0000 Date: Fri, 25 Jun 2010 21:34:00 -0000 Message-ID: <20100625213332.23049.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/44566] configuration with multiple targets / backends is not supported. In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "amylaar at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-06/txt/msg02525.txt.bz2 ------- Comment #6 from amylaar at gcc dot gnu dot org 2010-06-25 21:33 ------- Subject: Bug 44566 Author: amylaar Date: Fri Jun 25 21:33:02 2010 New Revision: 161417 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161417 Log: PR other/44566 gcc: * configure.ac: When --with-extra-target-list is given, ensure --enable-build-with-cxx is active. * configure: Regenerate. gcc/gcc: * multi-target.h, README-multi-target, any-lang.c: New files. * addresses.h: Include "multi-target.h" and add START_TARGET_SPECIFIC and END_TARGET_SPECIFC markers. * alias.c, alias.h, auto-inc-dec.c, basic-block.h: Likewise. * bb-reorder.c, bt-load.c, builtins.c, caller-save.c: Likewise. * calls.c, cfganal.c, cfgbuild.c, cfg.c, cfgcleanup.c: Likewise. * cfgexpand.c, cfghooks.c, cfghooks.h, cfglayout.c: Likewise. * cfglayout.h, cfgloopanal.c, cfgloop.h, cfgrtl.c, combine.c: Likewise. * combine-stack-adj.c, cse.c, cselib.c, cselib.h, dbxout.c: Likewise. * dbxout.h, dce.c, dce.h, ddg.c, ddg.h, df-byte-scan.c: Likewise. * df-core.c, df.h, df-problems.c, df-scan.c, dojump.c, dse.c: Likewise. * dwarf2asm.c, dwarf2asm.h, dwarf2out.c, dwarf2out.h: Likewise. * emit-rtl.c, except.c, except.h, explow.c, expmed.c, expr.c: Likewise. * expr.h, final.c, fixed-value.h, flags.h, function.c: Likewise. * function.h, fwprop.c, gcse.c, ggc.h, gimple.h, graph.c: Likewise. * haifa-sched.c, hard-reg-set.h, ifcvt.c, implicit-zee.c: Likewise. * init-regs.c, insn-addr.h, integrate.c, ira-build.c, ira.c: Likewise. * ira-color.c, ira-conflicts.c, ira-costs.c, ira-emit.c: Likewise. * ira.h, ira-int.h, ira-lives.c, jump.c, loop-doloop.c: Likewise. * loop-init.c, loop-invariant.c, loop-iv.c, loop-unroll.c: Likewise. * loop-unswitch.c, lower-subreg.c, machmode.h: Likewise. * mode-switching.c, modulo-sched.c, optabs.c, optabs.h: Likewise. * opts.c, output.h, passes.c, postreload.c: Likewise. * postreload-gcse.c, predict.c, predict.h, print-rtl.c: Likewise. * recog.c, recog.h, regcprop.c, reginfo.c, regmove.c: Likewise. * regrename.c, regset.h, regs.h, reg-stack.c, regstat.c: Likewise. * reload1.c, reload.c, reload.h, reorg.c, resource.c: Likewise. * resource.h, rtlanal.c, rtl.c, rtl.h, rtlhooks.c: Likewise. * rtlhooks-def.h, sched-deps.c, sched-ebb.c, sched-int.h: Likewise. * sched-rgn.c, sched-vis.c, sdbout.c, sel-sched.c: Likewise. * sel-sched-dump.c, sel-sched-dump.h, sel-sched-ir.c: Likewise. * sel-sched-ir.h, simplify-rtx.c, stack-ptr-mod.c, stmt.c: Likewise. * store-motion.c, stor-layout.c, target.h, targhooks.c: Likewise. * targhooks.h, toplev.c, toplev.h, tree-flow.h, tree.h: Likewise. * tree-pass.h, tree-ssa-address.c, tree-ssa-loop-manip.c: Likewise. * varasm.c, var-tracking.c, web.c, config/sh/sh.c: Likewise. * config/sh/sh.h, config/sh/sh-protos.h, config/spu/spu.c: Likewise. * config/spu/spu.h, config/rs6000/rs6000.h: Likewise. * config/rs6000/rs6000.c: Likewise. * calls.c: Add #ifndef EXTRA_TARGET / #endif directives. * cfgexpand.c, cfghooks.c, df-core.c, emit-rtl.c, explow.c: Likewise. * expr.c, function.c, gcse.c, gengtype-parse.c, optabs.c: Likewise. * opts.c, passes.c, reginfo.c, regstat.c, stor-layout.c: Likewise. * targhooks.c, toplev.c, tree-scalar-evolution.h: Likewise. * tree-ssa-address.c, varasm.c * T-extra.in: New file, broken out of: * Makefile.in. * T-extra.in: Use $(CURRENT_TARGET) prefix for names of variables that are set. * doc/extend.texi (target_arch): Document new attribute. * doc/tm.texi: Adjust struct machine_function documentation. * targhooks.c: Include diagnostic.h, tree-pass.h and tree-pretty-print.h. (default_branch_target_register_class): Remove enum reg_class from interface. (default_ira_cover_classes, default_secondary_reload): Likewise (default_override_options): New function. (default_task_ok_for_target): Likewise. (default_common_data_with_target): Likewise. (default_vectype_for_scalar_type): Likewise, using code from tree-vect-stmts.c:get_vectype_for_scalar_type. (default_addr_space_valid_pointer_mode): Use this_targetm. (default_addr_space_legitimate_address_p): Likewise. (default_target_option_valid_attribute_p): Look up name of target. (default_branch_target_register_class): Remove enum reg_class from interface. (default_ira_cover_classes, default_secondary_reload): Likewise. (default_override_options, default_vectype_for_scalar_type): Declare. (default_task_ok_for_target): Likewise. (default_common_data_with_target): Likewise. * regstat.c (setjmp_crosses): No longer static. Declare extern. * doc/install.texi (Target specification): Document --with-extra-target-list. * genrecog.c (write_header, main): Make generated file include "multi-target.h" and have START_TARGET_SPECIFIC and END_TARGET_SPECIFC markers. * gengenrtl.c (genheader): Likewise. * genopinit (main): Likewise. * genoutput.c (output_prologue, main): Likewise. * genextract.c (print_header, main): Likewise. * genautomata.c (main): Likewise. * genemit.c (main): Likewise. * genpeep.c (main): Likewise. * genattrtab.c (main): Likewise. * genattr (gen_attr, main): Likewise. * optc-gen.awk: Likewise. * genmodes.c (emit_insn_modes_c_header, emit_insn_modes_c): Likewise. (emit_min_insn_modes_c_header, emit_min_insn_modes_c): Likewise. * genflags.c (main): Likewise. * genpreds.c (write_tm_constrs_h): Likewise. (write_tm_preds_h): Likewise. (write_insn_preds_c): Likewise. * opth-gen.awk: Likewise. * gcc/gcc/c-family/c-common.c (handle_target_arch_attribute): New function. (handle_caller_arch_attribute): Likewise. (c_common_attribute_table): Add target_arch and caller_arch. (handle_target_attribute): Call the valid_attribute_p of the target architecture the function belongs to. * gengtype.c (IS_EXTRA_TARGET): Define. (struct type): Move potentially narrow enums together. Add type_specific field. (string_type, scalar_nonchar, scalar_char): Update initializers. (ttags_file): New file-scope static variable. (read_input_list): For IS_EXTRA_TARGET, anticipate a [target_files] delimiter, to put all the target-specific files into 'language' 0. (new_structure, find_structure): Initialize target_specific field. (create_file): Update copyright notice. (write_rtx_next, open_base_files): Emit START_TARGET_SPECIFIC / END_TARGET_SPECIFIC for gtype_desc_c. (open_base_files): Add include of "multi-target.h" to ifiles. For IS_EXTRA_TARGET, create gtype-ttags.h. (relevant_type_p): New function. (write_types_process_field, output_type_enum): For IS_EXTRA_TARGET, augment mangling with target name. (write_enum_defn, write_splay_tree_allocator_def): Likewise. (write_types, write_local): Only perform output for relevant types. (write_enum_defn, write_splay_tree_allocators): Likewise. (write_func_for_structure): Likewise. Remove FIXME kludge. (write_enum_defn): For IS_EXTRA_TARGET, place enumerators into separate file ttags_file, and include multi-target.h and ../gtype-desc.h in header_file. (main): For IS_EXTRA_TARGET, wrap declarations / defintions in START_TARGET_SPECIFIC / END_TARGET_SPECIFIC. * mkconfig.sh : Handle defines with parameters. : Wrap config/FOO/FOO-protos.h in START_TARGET_SPECIFIC / END_TARGET_SPECIFIC. * gengtype.h (pp_nest, no_extra_nest, target_specific): Declare. (get_output_file_name): Likewise. * optabs.c [!EXTRA_TARGET] (optab_for_tree_code_array): New array. (optab_for_tree_code): Rename to... (optab_for_tree_code_1) ... this. * tree-ssa-loop-manip.c: Include target.h. (rewrite_phi_with_iv): Use targetm.sizetype_tab. * optabs.h: Include target.h. Make types at start of file non-target- specific. (optab_for_tree_code_1, optab_for_tree_code_array): Declare. (optab_for_tree_code): Now a static inline function. * reload.c (push_secondary_reload): Remove enum reg_class from target hook interface. (secondary_reload_class): Likewise. * tree-pass.h (rtl_dispatch_pass): New struct. (TODO_arch_dispatch): New TODO flag. (pass_expand): Change type to rtl_dispatch_pass. * target.h (struct gimple_stmt_iterator_d): Add orward declaration. (enum task_type): New enum. (struct gcc_target): New members name, target_arch, sizetype_tab, optab_table, task_ok_for_target, common_data_with_target, copy_to_target, copy_from_target, alloc_task_on_target, build_call_on_target and override. Add new member new_arch to member asm_out. Add new member vectype_for_scalar_type to member vectorize. Remove enum reg_class from target hook interface. (targetm_pnt, targetm_array, this_targetm): Declare. (targetm): Now a macro. * cfghooks.c (cfg_hooks): No longer static; shared across targets. * toplev.c [!EXTRA_TARGET] (targetm_array, targetm_pnt): Define and inititialize. (init_random_seed, process_options, backend_init): No longer static. (general_init): Add ATTRIBUTE_UNUSED to argv0. (process_options) [!EXTRA_TARGET]: Disable target-independent option processing. Use target_option.override hook. (backend_init): Use EXTRA_TARGETS_CALL to backend_init on extra targets. (lang_dependent_init): No longer static. Make EXTRA_TARGETS_CALL on initialize_sizetypes lang_dependent_init. [EXTRA_TARGET]: Fix up sizetype if it has wrong mode. (target_reinit): Do EXTRA_TARGETS_CALL to self. (do_compile): Do EXTRA_TARGETS_CALL to process_options. * toplev.h (init_random_seed): Declare. * tree-ssa-loop-ivopts.c (computation_cost): Use tree_expand_expr. (force_expr_to_var_cost): Use targetm.sizetype. (rewrite_use_address): Use tree_create_mem_ref. * gengtype-lex.l: Use extra options stack and noyy_top_state. (pp_nest, no_extra_nest, target_specific): New variables. (in_struct_comment): Remove state. (start_pp_directive, in_pp_directive, pp_scanning): New states. (*): Allow to skip #ifndef EXTRA_TARGET sections. (INITIAL): Recognize START_TARGET_SPECIFIC / END_TARGET_SPECIFIC to turn target_specific on and off. (TARGET_SCOPE/{EOID}): New pattern. * machmode.def (EXTRA_MODES_FILE): Replace with: ("extra-modes.h") * expr.c (expand_expr_real_1): Use CRTL_ASM_CLOBBERS. [!EXTRA_TARGET] (tree_expand_expr): New function. (build_personality_function): Use a pointer type with the current targets mode. * expr.h (tree_expand_expr): Declare. * opts.c (decode_options): Use this_targetm for target-specific processing. Do an EXTRA_TARGETS_CALL of self. * optc-gen.awk: Add an extra pass to scan for Init. * tree-ssa-address.c (tree_create_mem_ref): New function. * configure.ac (all_outputs): Add T-extra. (with_extra_target_list): New AC_SUBST. * configure: Regenerate. * function.c (allocate_struct_function_1): New function, broken out of: (allocate_struct_function). (free_after_compilation): Use MACHINE_FUNCTION. (allocate_struct_function_1): Likewise. (assign_parms): Use INCOMING_ARGS_INFO. (set_cfun): Update target_pnt. [!EXTRA_TARGET] (allocate_struct_function_1_array): New const array. (lookup_attr_target): New function, broken out of: (allocate_struct_function). [EXTRA_TARGET] (allocate_struct_function): Don't define. (allocate_struct_function): Initialize cfun->target_arch and set targetm_pnt. (init_emit_array): Declare. [!EXTRA_TARGET] (init_emit_array): Define and initialize. (prepare_function_start): Call the init_emit function for cfun->target_arch. (init_function_start): Do an EXTRA_TARGETS_CALL to self. * function.h: Include target-types / target-gtypes.h. (incoming_args): Use cumulative_args_u for info member. (INCOMING_ARGS_INFO, MACHINE_FUNCTION, CRTL_ASM_CLOBBERS): Define. (rtl_data): Define asm_clobbers as hard_reg_set_u. (struct function): Use machine_function_u for member machine. New member target_arch. * tree-vectorizer.h (target.h): Include. (get_vectype_for_scalar_type) Now a static incline function. * stor-layout.c (vector_type_mode_array): Declare. (vector_type_mode): Dispatch through vector_type_mode_array. [!EXTRA_TARGET]: (vector_type_mode_array): Define. * tree-affine.c (target.h): Include. (add_elt_to_tree): Use targetm.sizetype. (aff_combination_to_tree): Likewise. * gentargtype.cc: New file. * genmodes.c (struct mode_data): New member target. (blank_mode): Add initializer for new member. (struct mode_adjust): New member target. (target): New variable. (find_mode): Set target field for to-be searched mode. (new_mode): Set target member. (eq_mode): Also consider target. (new_adjust): Set target member. (drop_mode, fixup_target_modes): New functions. (make_complex_modes, make_vector_modes): When processing target-specific input, don't make modes for other targets. (make_complex_modes): Tag new modes with the same target field as the modes that they are made from. (make_partial_integer_mode): Make error message clearer. (calc_wider_mode, emit_mode_wider): Don't include modes from extra targets in the wider mode chain. (emit_insn_modes_h): Skip other target's modes in search For minimum/maximum modes. (emit_real_format_for_mode): Skip modes of other targets. (emit_mode_adjustments): Skip adjustments for other targets. (main): Call fixup_target_modes. * config/sh/sh.c (struct save_entry_s): Change type of mode to int. * bt-load.c (branch_target_load_optimize): Remove enum reg_class from target hook interface. * ggc-common.c (tm.h): Include. (gt_ggc_rtab, gt_ggc_deletable_rtab): Apply EXTRA_TARGETS_DECL. (gt_pch_cache_rtab, gt_pch_scalar_rtab): Likewise. (gt_ggc_cache_rtab): Likewise. (gt_ggc_rtabs, gt_ggc_deletable_rtabs): New arrays. (gt_pch_cache_rtabs, gt_pch_scalar_rtabs): Likewise. (gt_ggc_cache_rtabs): Likewise. (ggc_mark_roots, gt_pch_save): Iterate through new arrays. (gt_pch_restore): Likewise. * emit-rtl.c (label_num): No longer static. (const_int_htab, const_double_htab): Likewise. (gen_reg_rtx): Add assert. * cfgexpand.c (pass_expand): Change type to rtl_dispatch_pass. Add TODO_arch_dispatch flag and initializer for target_variants field. * tree-ssa-pre.c (next_expression_id): Initialize to 1. (eliminate): Check that lhsexpr has id > 0. * explow.c (hard_libcall_value): Use this_targetm. * common.opt (align_functions, align_jumps): Mark with AllTarget. (align_loops, flag_data_sections, flag_delayed_branch): Likewise. (flag_no_function_cse, flag_function_sections): Likewise. (flag_leading_underscore, flag_omit_frame_pointer): Likewise. (flag_rename_registers, flag_schedule_insns): Likewise. (flag_schedule_insns_after_reload): Likewise. * varasm.c (last_arch): New variable. (default_target_new_arch): New function. (assemble_start_function): Use asm_out.new_arch hook, and update last_arch. * ira.c (setup_cover_and_important_classes): Remove enum reg_class from target hook interface. Use this_targetm and CRTL_ASM_CLOBBERS. * target-def.h (TARGET_ASM_NEW_ARCH): Define. (TARGET_VECTORIZE_VECTYPE_FOR_SCALAR_TYPE): Likewise. (TARGET_TASK_OK_FOR_TARGET, TARGET_COMMON_DATA_WITH_TARGET): Likewise. (TARGET_COPY_TO_TARGET, TARGET_COPY_FROM_TARGET): Likewise. (TARGET_ALLOC_TASK_ON_TARGET, TARGET_BUILD_CALL_ON_TARGET): Likewise. (TARGET_OVERRIDE_OPTIONS): Likewise. (TARGET_VECTORIZE): Add TARGET_VECTORIZE_VECTYPE_FOR_SCALAR_TYPE. (TARGET_OPTION_HOOKS): Include TARGET_OVERRIDE_OPTIONS. (TARGET_INITIALIZER): Initialize new members. * ira-costs.c (copy_cost): Remove enum reg_class from target hook interface. * rtl.h (struct function): Remove forward declaration. * tree-vect-stmts.c (vectorizable_store): Use targetm.optab_table. (vectorizable_load): Likewise. (get_vectype_for_scalar_type): Remove. * output.h (struct gcc_target): Add forward declaration. (default_target_new_arch): Declare. * reginfo.c (init_reg_sets): Do EXTRA_TARGETS_CALL to self. * Makefile.in (gcc_config_arguments, TA): New Makefile variables. (TARGET_NUM, OBJS-extra-target, EXTRA_TARGET_RULES): Likewise. (enumerate, empty, space, COMMON_ABI): Likewise. Include T-extra. (REGSET_H): Add multi-target.h. (OPTABS_H): Add $(TARGET_H). (GGC_H): Add s-extra-gty. (TREE_VECTORIZER_H): Remove duplicate. Add target.h. [EXTRA_TARGET] (ALL_COMPILERFLAGS): Add -DEXTRA_TARGET. [EXTRA_TARGET] $(TA)%.o : %.c: New rule. (OBJS-rtl): New Makefile variable, broken out of... (OBJS-common). Add $(OBJS-rtl). For each target, add members of $(OBJS-extra-target) and $($(TA)-out_object_file) with with target name prepended. (s-extra-gty, make-OBJS-rtl, $(TA)any-lang.o): New rules. (intl/config.intl, build/gentargtype.o): Likewise. (build/gentargtype$(build_exeext)): Likewise. [!EXTRA_TARGET]: For each extra target, evaluate EXTRA_TARGET_RULES, substituting the underscore-bearing / hyphened target name for any occurences of THIS_TARGET / THIS-TARGET, and an ordinal number corresponding to an index into targetm_array for any occurences of THIS-TARGET-NUM. (MOSTLYCLEANFILES): Add $(TA) prefix to source files the object files for which appear in OBJS-rtl, and to insn-constants.h. (cs-tm.h): Add NUM_TARGETS, TARGET_NUM, EXTRA_TARGETS_EXPAND and TARGET_SCOPE_ to DEFINES. (cs-tm_p.h): Add $(tm_p_include_list) to HEADERS. (graph.o, c-family/c-opts.o): Prepend $(TA) to rule target basename. (options.o, gtype-desc.o): Likewise. (stor-layout.o, tree-ssa-address.o, opts.o, targhooks.o): Likewise. (toplev.o, passes.o, rtl.o, print-rtl.o, rtlanal.o): Likewise. (varasm.o, function.o, stmt.o, except.o, expr.o, dojump.o): Likewise. (builtins.o, calls.o, expmed.o, explow.o, optabs.o) : Likewise. (dbxout.o, sdbout.o, dwarf2out.o, dwarf2asm.o, vmsdbgout.o): Likewise. (emit-rtl.o, integrate.o, jump.o, simplify-rtx.o, cselib.o): Likewise. (cse.o, dce.o, dse.o, fwprop.o, web.o, implicit-zee.o): Likewise. (gcse.o, store-motion.o, resource.o, mode-switching.o): Likewise. (df-core.o, df-problems.o, df-scan.o, df-byte-scan.o): Likewise. (regstat.o, var-tracking.o, loop-doloop.o, auto-inc-dec.o): Likewise. (cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o, cfganal.o): Likewise. (cfgbuild.o, cfgcleanup.o, cfgloopanal.o, loop-iv.o): Likewise. (loop-invariant.o, loop-init.o, loop-unswitch.o): Likewise. (loop-unroll.o, combine.o, reginfo.o, reload.o, reload1.o): Likewise. (rtlhooks.o, postreload.o, postreload-gcse.o, caller-save.o): Likewise. (bt-load.o, reorg.o, alias.o, stack-ptr-mod.o, init-regs.o): Likewise. (ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o): Likewise. (ira-emit.o, ira-lives.o, ira.o, regmove.o): Likewise. (combine-stack-adj.o, ddg.o, modulo-sched.o, haifa-sched.o): Likewise. (sched-deps.o, sched-rgn.o, sched-ebb.o, sched-vis.o): Likewise. (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o, final.o): Likewise. (recog.o, reg-stack.o, predict.o, bb-reorder.o, cfglayout.o): Likewise. (regcprop.o, regrename.o, ifcvt.o, lower-subreg.o): Likewise. ($(out_object_file)), insn-attrtab.o, insn-automata.o): Likewise. (insn-emit.o, insn-enums.o, insn-extract.o, insn-modes.o): Likewise. (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o): Likewise. (insn-recog.o, insn-modes.c, min-insn-modes.c, insn-preds.c): Likewise. (insn-emit.c, insn-recog.c, insn-extract.c, insn-output.c): Likewise. (insn-peep.c, insn-attrtab.c, insn-automata.c, insn-enums.c): Likewise. (insn-enums.c, insn-opinit.c): Likewise. ($(simple_generated_c:insn-%.c=s-%)): Likewise. ($(simple_rtl_generated_c:insn-%.c=s-%)): Likewise. ($(simple_generated_c:insn-%.c=s-%)): Likewise. (ggc-common.o): Depend on $(TM_H). (tree-affine.o): Depend on $(TARGET_H). ($(TA)targhooks.o): Depend on tree-pretty-print.h. ($(TA)$(out_object_file)): Add compiler flags -Dtargetm and -DTARGET_NAME. ($(simple_generated_c)): Add $(TA) prefix. (GTFILES-RAW): New makefile variable. Use it to compute... (GTFILES) so that extra targets don't see *.c files the object files of which are not in $(OBJS-extra-target). [EXTRA_TARGET] (GTFILES): Bracket $(out_file) between [target_files] and [extra_target]. (gtype-ttags.h): Depend on s-gtype. (build/%.o) [$(EXTRA_TARGET)]: Add -DEXTRA_TARGET to compiler flags. (build/gengtype.o): Add EXTRA_TARGETS_FILES and EXTRA_TARGET_STRING to BUILD_CPPFLAGS. Depend on extra-modes.h instead of $(extra_modes_file). [!TA] (extra-modes.h, target-types.h): New rules. [!TA] (EXTRA_OBJS): Include files from extra targets. * gimple.h (gimple_stmt_iterator_d): New struct tag. * passes.c (register_dump_files): No longer static. Declare. (init_optimization_passes) [!EXTRA_TARGET]: Make EXTRA_TARGETS_CALL to self. (init_optimization_passes) [EXTRA_TARGET]: Start new pass list with pass_expand at &pass_expand.target_variants[TARGET_NUM-1]; call register_dump_files for this pass list. [!EXTRA_TARGET] (execute_todo): Call df_finish_pass on target indicated by targetm. (execute_pass_list): Handle TODO_arch_dispatch. * reload1.c (emit_input_reload_insns): : Remove enum reg_class from target hook interface. * config/spu/spu-protos.h (spu_override_options): Don't declare. * config/spu/spu.c (spu_override_options): Now static. Change signature to fit target hook. (TARGET_OVERRIDE_OPTIONS): Redefine. * config/spu/spu.h (OVERRIDE_OPTIONS): Don't define. * config/sh/sh.h (OVERRIDE_OPTIONS): Delete. * config/sh/sh.c (sh_override_options): Change type to match hook. Make manipulation of global flags dependent on main_target. (TARGET_OVERRIDE_OPTIONS): Redefine. gcc/po: * EXCLUDES: Add gentargtype.cc. Added: branches/multi-target-20100625-branch/ChangeLog.multi-target - copied unchanged from r161408, branches/multi-target-20100622-branch/ChangeLog.multi-target branches/multi-target-20100625-branch/gcc/ChangeLog.multi-target - copied, changed from r161408, branches/multi-target-20100622-branch/gcc/ChangeLog.multi-target branches/multi-target-20100625-branch/gcc/README-multi-target - copied unchanged from r161408, branches/multi-target-20100622-branch/gcc/README-multi-target branches/multi-target-20100625-branch/gcc/T-extra.in - copied unchanged from r161408, branches/multi-target-20100622-branch/gcc/T-extra.in branches/multi-target-20100625-branch/gcc/any-lang.c - copied unchanged from r161408, branches/multi-target-20100622-branch/gcc/any-lang.c branches/multi-target-20100625-branch/gcc/gentargtype.cc - copied unchanged from r161408, branches/multi-target-20100622-branch/gcc/gentargtype.cc branches/multi-target-20100625-branch/gcc/multi-target.h - copied unchanged from r161408, branches/multi-target-20100622-branch/gcc/multi-target.h Modified: branches/multi-target-20100625-branch/ (props changed) branches/multi-target-20100625-branch/configure branches/multi-target-20100625-branch/configure.ac branches/multi-target-20100625-branch/gcc/Makefile.in branches/multi-target-20100625-branch/gcc/addresses.h branches/multi-target-20100625-branch/gcc/alias.c branches/multi-target-20100625-branch/gcc/alias.h branches/multi-target-20100625-branch/gcc/auto-inc-dec.c branches/multi-target-20100625-branch/gcc/basic-block.h branches/multi-target-20100625-branch/gcc/bb-reorder.c branches/multi-target-20100625-branch/gcc/bt-load.c branches/multi-target-20100625-branch/gcc/builtins.c branches/multi-target-20100625-branch/gcc/c-family/c-ada-spec.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-ada-spec.h (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-common.c (contents, props changed) branches/multi-target-20100625-branch/gcc/c-family/c-common.def (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-common.h (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-cppbuiltin.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-dump.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-format.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-format.h (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-gimplify.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-lex.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-omp.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-opts.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-pch.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-ppoutput.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-pragma.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-pragma.h (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-pretty-print.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-pretty-print.h (props changed) branches/multi-target-20100625-branch/gcc/c-family/c-semantics.c (props changed) branches/multi-target-20100625-branch/gcc/c-family/c.opt (props changed) branches/multi-target-20100625-branch/gcc/c-family/stub-objc.c (props changed) branches/multi-target-20100625-branch/gcc/caller-save.c branches/multi-target-20100625-branch/gcc/calls.c branches/multi-target-20100625-branch/gcc/cfg.c branches/multi-target-20100625-branch/gcc/cfganal.c branches/multi-target-20100625-branch/gcc/cfgbuild.c branches/multi-target-20100625-branch/gcc/cfgcleanup.c branches/multi-target-20100625-branch/gcc/cfgexpand.c branches/multi-target-20100625-branch/gcc/cfghooks.c branches/multi-target-20100625-branch/gcc/cfghooks.h branches/multi-target-20100625-branch/gcc/cfglayout.c branches/multi-target-20100625-branch/gcc/cfglayout.h branches/multi-target-20100625-branch/gcc/cfgloop.h branches/multi-target-20100625-branch/gcc/cfgloopanal.c branches/multi-target-20100625-branch/gcc/cfgrtl.c branches/multi-target-20100625-branch/gcc/combine-stack-adj.c branches/multi-target-20100625-branch/gcc/combine.c branches/multi-target-20100625-branch/gcc/common.opt branches/multi-target-20100625-branch/gcc/config/rs6000/rs6000.c branches/multi-target-20100625-branch/gcc/config/rs6000/rs6000.h branches/multi-target-20100625-branch/gcc/config/sh/sh-protos.h branches/multi-target-20100625-branch/gcc/config/sh/sh.c branches/multi-target-20100625-branch/gcc/config/sh/sh.h branches/multi-target-20100625-branch/gcc/config/spu/spu-protos.h branches/multi-target-20100625-branch/gcc/config/spu/spu.c branches/multi-target-20100625-branch/gcc/config/spu/spu.h branches/multi-target-20100625-branch/gcc/configure branches/multi-target-20100625-branch/gcc/configure.ac branches/multi-target-20100625-branch/gcc/cse.c branches/multi-target-20100625-branch/gcc/cselib.c branches/multi-target-20100625-branch/gcc/cselib.h branches/multi-target-20100625-branch/gcc/dbxout.c branches/multi-target-20100625-branch/gcc/dbxout.h branches/multi-target-20100625-branch/gcc/dce.c branches/multi-target-20100625-branch/gcc/dce.h branches/multi-target-20100625-branch/gcc/ddg.c branches/multi-target-20100625-branch/gcc/ddg.h branches/multi-target-20100625-branch/gcc/df-byte-scan.c branches/multi-target-20100625-branch/gcc/df-core.c branches/multi-target-20100625-branch/gcc/df-problems.c branches/multi-target-20100625-branch/gcc/df-scan.c branches/multi-target-20100625-branch/gcc/df.h branches/multi-target-20100625-branch/gcc/doc/extend.texi branches/multi-target-20100625-branch/gcc/doc/install.texi branches/multi-target-20100625-branch/gcc/dojump.c branches/multi-target-20100625-branch/gcc/dse.c branches/multi-target-20100625-branch/gcc/dwarf2asm.c branches/multi-target-20100625-branch/gcc/dwarf2asm.h branches/multi-target-20100625-branch/gcc/dwarf2out.c branches/multi-target-20100625-branch/gcc/dwarf2out.h branches/multi-target-20100625-branch/gcc/emit-rtl.c branches/multi-target-20100625-branch/gcc/emit-rtl.h branches/multi-target-20100625-branch/gcc/except.c branches/multi-target-20100625-branch/gcc/except.h branches/multi-target-20100625-branch/gcc/explow.c branches/multi-target-20100625-branch/gcc/expmed.c branches/multi-target-20100625-branch/gcc/expr.c branches/multi-target-20100625-branch/gcc/expr.h branches/multi-target-20100625-branch/gcc/final.c branches/multi-target-20100625-branch/gcc/fixed-value.h branches/multi-target-20100625-branch/gcc/flags.h branches/multi-target-20100625-branch/gcc/function.c branches/multi-target-20100625-branch/gcc/function.h branches/multi-target-20100625-branch/gcc/fwprop.c branches/multi-target-20100625-branch/gcc/gcse.c branches/multi-target-20100625-branch/gcc/genattr.c branches/multi-target-20100625-branch/gcc/genattrtab.c branches/multi-target-20100625-branch/gcc/genautomata.c branches/multi-target-20100625-branch/gcc/genemit.c branches/multi-target-20100625-branch/gcc/genextract.c branches/multi-target-20100625-branch/gcc/genflags.c branches/multi-target-20100625-branch/gcc/gengenrtl.c branches/multi-target-20100625-branch/gcc/gengtype-lex.l branches/multi-target-20100625-branch/gcc/gengtype.c branches/multi-target-20100625-branch/gcc/gengtype.h branches/multi-target-20100625-branch/gcc/genmodes.c branches/multi-target-20100625-branch/gcc/genopinit.c branches/multi-target-20100625-branch/gcc/genoutput.c branches/multi-target-20100625-branch/gcc/genpeep.c branches/multi-target-20100625-branch/gcc/genpreds.c branches/multi-target-20100625-branch/gcc/genrecog.c branches/multi-target-20100625-branch/gcc/ggc-common.c branches/multi-target-20100625-branch/gcc/ggc-internal.h branches/multi-target-20100625-branch/gcc/ggc.h branches/multi-target-20100625-branch/gcc/gimple.h branches/multi-target-20100625-branch/gcc/graph.c branches/multi-target-20100625-branch/gcc/haifa-sched.c branches/multi-target-20100625-branch/gcc/hard-reg-set.h branches/multi-target-20100625-branch/gcc/ifcvt.c branches/multi-target-20100625-branch/gcc/implicit-zee.c branches/multi-target-20100625-branch/gcc/init-regs.c branches/multi-target-20100625-branch/gcc/insn-addr.h branches/multi-target-20100625-branch/gcc/integrate.c branches/multi-target-20100625-branch/gcc/ira-build.c branches/multi-target-20100625-branch/gcc/ira-color.c branches/multi-target-20100625-branch/gcc/ira-conflicts.c branches/multi-target-20100625-branch/gcc/ira-costs.c branches/multi-target-20100625-branch/gcc/ira-emit.c branches/multi-target-20100625-branch/gcc/ira-int.h branches/multi-target-20100625-branch/gcc/ira-lives.c branches/multi-target-20100625-branch/gcc/ira.c branches/multi-target-20100625-branch/gcc/ira.h branches/multi-target-20100625-branch/gcc/jump.c branches/multi-target-20100625-branch/gcc/loop-doloop.c branches/multi-target-20100625-branch/gcc/loop-init.c branches/multi-target-20100625-branch/gcc/loop-invariant.c branches/multi-target-20100625-branch/gcc/loop-iv.c branches/multi-target-20100625-branch/gcc/loop-unroll.c branches/multi-target-20100625-branch/gcc/loop-unswitch.c branches/multi-target-20100625-branch/gcc/lower-subreg.c branches/multi-target-20100625-branch/gcc/machmode.def branches/multi-target-20100625-branch/gcc/machmode.h branches/multi-target-20100625-branch/gcc/mkconfig.sh branches/multi-target-20100625-branch/gcc/mode-switching.c branches/multi-target-20100625-branch/gcc/modulo-sched.c branches/multi-target-20100625-branch/gcc/optabs.c branches/multi-target-20100625-branch/gcc/optabs.h branches/multi-target-20100625-branch/gcc/optc-gen.awk branches/multi-target-20100625-branch/gcc/opth-gen.awk branches/multi-target-20100625-branch/gcc/opts.c branches/multi-target-20100625-branch/gcc/output.h branches/multi-target-20100625-branch/gcc/passes.c branches/multi-target-20100625-branch/gcc/po/EXCLUDES branches/multi-target-20100625-branch/gcc/postreload-gcse.c branches/multi-target-20100625-branch/gcc/postreload.c branches/multi-target-20100625-branch/gcc/predict.c branches/multi-target-20100625-branch/gcc/predict.h branches/multi-target-20100625-branch/gcc/print-rtl.c branches/multi-target-20100625-branch/gcc/recog.c branches/multi-target-20100625-branch/gcc/recog.h branches/multi-target-20100625-branch/gcc/reg-stack.c branches/multi-target-20100625-branch/gcc/regcprop.c branches/multi-target-20100625-branch/gcc/reginfo.c branches/multi-target-20100625-branch/gcc/regmove.c branches/multi-target-20100625-branch/gcc/regrename.c branches/multi-target-20100625-branch/gcc/regs.h branches/multi-target-20100625-branch/gcc/regset.h branches/multi-target-20100625-branch/gcc/regstat.c branches/multi-target-20100625-branch/gcc/reload.c branches/multi-target-20100625-branch/gcc/reload.h branches/multi-target-20100625-branch/gcc/reload1.c branches/multi-target-20100625-branch/gcc/reorg.c branches/multi-target-20100625-branch/gcc/resource.c branches/multi-target-20100625-branch/gcc/resource.h branches/multi-target-20100625-branch/gcc/rtl.c branches/multi-target-20100625-branch/gcc/rtl.h branches/multi-target-20100625-branch/gcc/rtlanal.c branches/multi-target-20100625-branch/gcc/rtlhooks-def.h branches/multi-target-20100625-branch/gcc/rtlhooks.c branches/multi-target-20100625-branch/gcc/sched-deps.c branches/multi-target-20100625-branch/gcc/sched-ebb.c branches/multi-target-20100625-branch/gcc/sched-int.h branches/multi-target-20100625-branch/gcc/sched-rgn.c branches/multi-target-20100625-branch/gcc/sched-vis.c branches/multi-target-20100625-branch/gcc/sdbout.c branches/multi-target-20100625-branch/gcc/sel-sched-dump.c branches/multi-target-20100625-branch/gcc/sel-sched-dump.h branches/multi-target-20100625-branch/gcc/sel-sched-ir.c branches/multi-target-20100625-branch/gcc/sel-sched-ir.h branches/multi-target-20100625-branch/gcc/sel-sched.c branches/multi-target-20100625-branch/gcc/simplify-rtx.c branches/multi-target-20100625-branch/gcc/stack-ptr-mod.c branches/multi-target-20100625-branch/gcc/stmt.c branches/multi-target-20100625-branch/gcc/stor-layout.c branches/multi-target-20100625-branch/gcc/store-motion.c branches/multi-target-20100625-branch/gcc/target-def.h branches/multi-target-20100625-branch/gcc/target.h branches/multi-target-20100625-branch/gcc/targhooks.c branches/multi-target-20100625-branch/gcc/targhooks.h branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-1.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-2.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/normalize-3.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-1.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-2.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-3.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-4.c (props changed) branches/multi-target-20100625-branch/gcc/testsuite/g++.dg/warn/Wconversion-null-2.C (props changed) branches/multi-target-20100625-branch/gcc/toplev.c branches/multi-target-20100625-branch/gcc/toplev.h branches/multi-target-20100625-branch/gcc/tree-affine.c branches/multi-target-20100625-branch/gcc/tree-chrec.h branches/multi-target-20100625-branch/gcc/tree-flow.h branches/multi-target-20100625-branch/gcc/tree-pass.h branches/multi-target-20100625-branch/gcc/tree-scalar-evolution.h branches/multi-target-20100625-branch/gcc/tree-ssa-address.c branches/multi-target-20100625-branch/gcc/tree-ssa-loop-ivopts.c branches/multi-target-20100625-branch/gcc/tree-ssa-loop-manip.c branches/multi-target-20100625-branch/gcc/tree-ssa-pre.c branches/multi-target-20100625-branch/gcc/tree-vect-stmts.c branches/multi-target-20100625-branch/gcc/tree-vectorizer.h branches/multi-target-20100625-branch/gcc/tree.h branches/multi-target-20100625-branch/gcc/var-tracking.c branches/multi-target-20100625-branch/gcc/varasm.c branches/multi-target-20100625-branch/gcc/web.c Propchange: branches/multi-target-20100625-branch/ ('svn:mergeinfo' added) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-ada-spec.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-ada-spec.h ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-common.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-common.def ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-common.h ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-cppbuiltin.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-dump.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-format.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-format.h ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-gimplify.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-lex.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-omp.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-opts.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-pch.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-ppoutput.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-pragma.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-pragma.h ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-pretty-print.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-pretty-print.h ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c-semantics.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/c.opt ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/c-family/stub-objc.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-1.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-2.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/normalize-3.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-1.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-2.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-3.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/c-c++-common/cpp/warning-directive-4.c ('svn:mergeinfo' removed) Propchange: branches/multi-target-20100625-branch/gcc/testsuite/g++.dg/warn/Wconversion-null-2.C ('svn:mergeinfo' removed) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566