* [Bug middle-end/44566] configuration with multiple targets / backends is not supported.
2010-06-17 11:34 [Bug middle-end/44566] New: configuration with multiple targets / backends is not supported amylaar at gcc dot gnu dot org
` (4 preceding siblings ...)
2010-06-25 19:13 ` amylaar at gcc dot gnu dot org
@ 2010-06-25 21:34 ` amylaar at gcc dot gnu dot org
2010-06-26 10:22 ` amylaar at gcc dot gnu dot org
2010-06-30 18:49 ` amylaar at gcc dot gnu dot org
7 siblings, 0 replies; 9+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2010-06-25 21:34 UTC (permalink / raw)
To: gcc-bugs
------- 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 <DEFINES processing>: Handle defines with parameters.
<HEADERS processing>: 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
^ permalink raw reply [flat|nested] 9+ messages in thread