[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2024-08-06 Thread sjames at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566

Sam James  changed:

   What|Removed |Added

 CC||radek at podgorny dot cz

--- Comment #11 from Sam James  ---
*** Bug 21319 has been marked as a duplicate of this bug. ***

[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2019-07-07 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566

Eric Gallager  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org,
   ||mark at codesourcery dot com,
   ||steven at gcc dot gnu.org

--- Comment #10 from Eric Gallager  ---
(In reply to Jorn Wolfgang Rennecke from comment #7)
> The patches have been tested & posted to gcc-patches:
> http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02492.html
> http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02452.html
> http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02495.html
> http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02618.html
> http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02645.html
> http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02649.html

cc-ing some people from these threads

[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2018-07-08 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566

Eric Gallager  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-07-08
 CC||egallager at gcc dot gnu.org
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=44431,
   ||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=44362
 Depends on||44512
 Ever confirmed|0   |1

--- Comment #9 from Eric Gallager  ---
(In reply to Jorn Wolfgang Rennecke from comment #1)
> (In reply to comment #0)
> > multi-target configurations, thus PR44362 doesn't actually block.
> 
> Sorry, I meant PR44431.  But then, the remaining part of PR44362 also
> doesn't block PR44566 (and not PR44433 either).

Sounds related enough for "See Also" at least. Anyways, confirmed.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44512
[Bug 44512] --enable-build-with-cxx bootstrap fails in revision 160669

[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-30 Thread amylaar at gcc dot gnu dot org


--- Comment #8 from amylaar at gcc dot gnu dot org  2010-06-30 18:48 ---
Subject: Bug 44566

Author: amylaar
Date: Wed Jun 30 18:47:43 2010
New Revision: 161633

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161633
Log:
PR other/44566
* coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
* target.def (struct gcc_target): Replace enum reg_class with
reg_class_t in hook argument / return types.
* doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
(TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
(TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
* targhooks.h (default_branch_target_register_class): Likewise.
(default_ira_cover_classes, default_secondary_reload): Likewise.
(default_memory_move_cost, default_register_move_cost): Likewise.
* targhooks.c (default_branch_target_register_class): Likewise.
(default_ira_cover_classes, default_secondary_reload): Likewise.
(default_memory_move_cost, default_register_move_cost): Likewise.
* reload.c (push_secondary_reload, secondary_reload_class): Likewise.
* bt-load.c (branch_target_load_optimize): Likewise.
* ira.c (setup_cover_and_important_classes): Likewise.
* ira-costs.c (copy_cost): Likewise.
* reload1.c (emit_input_reload_insns): Likewise.
* config/alpha/alpha.c (alpha_secondary_reload): Likewise.
* config/frv/frv.c (frv_secondary_reload): Likewise.
* config/s390/s390.c (s390_secondary_reload): Likewise.
* config/i386/i386.c (i386_ira_cover_classes): Likewise.
(ix86_secondary_reload, ix86_memory_move_cost): Likewise.
(ix86_register_move_cost): Likewise.
* config/sh/sh-protos.h (sh_secondary_reload): Likewise.
* config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
* config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
* config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
* config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
(rs6000_ira_cover_classes): Likewise.
* config/picochip/picochip.c (picochip_secondary_reload): Likewise.
* config/picochip/picochip-protos.h (picochip_secondary_reload):
Likewise.
* config/pa/pa.c (pa_secondary_reload): Likewise.
* config/mips/mips.c (mips_ira_cover_classes): Likewise.
* config/bfin/bfin.c (bfin_secondary_reload): Likewise.
* config/ia64/ia64.c (ia64_register_move_cost): Likewise.
* doc/tm.texi: Regenerate.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/bt-load.c
trunk/gcc/config/alpha/alpha.c
trunk/gcc/config/bfin/bfin.c
trunk/gcc/config/frv/frv.c
trunk/gcc/config/i386/i386.c
trunk/gcc/config/ia64/ia64.c
trunk/gcc/config/mips/mips.c
trunk/gcc/config/pa/pa.c
trunk/gcc/config/picochip/picochip-protos.h
trunk/gcc/config/picochip/picochip.c
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/config/s390/s390.c
trunk/gcc/config/sh/sh-protos.h
trunk/gcc/config/sh/sh.c
trunk/gcc/config/xtensa/xtensa-protos.h
trunk/gcc/config/xtensa/xtensa.c
trunk/gcc/coretypes.h
trunk/gcc/doc/tm.texi
trunk/gcc/ira-costs.c
trunk/gcc/ira.c
trunk/gcc/reload.c
trunk/gcc/reload1.c
trunk/gcc/target.def
trunk/gcc/targhooks.c
trunk/gcc/targhooks.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566



[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-26 Thread amylaar at gcc dot gnu dot org


--- Comment #7 from amylaar at gcc dot gnu dot org  2010-06-26 10:22 ---
The patches have been tested & posted to gcc-patches:
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02492.html
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02452.html
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02495.html
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02618.html
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02645.html
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02649.html


-- 

amylaar at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||patch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566



[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-25 Thread amylaar at gcc dot gnu dot org


--- 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): Lik

[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-25 Thread amylaar at gcc dot gnu dot org


--- Comment #5 from amylaar at gcc dot gnu dot org  2010-06-25 19:13 ---
Subject: Bug 44566

Author: amylaar
Date: Fri Jun 25 19:12:37 2010
New Revision: 161408

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161408
Log:
PR other/44566
* coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
* target.h (struct gcc_target): Replace enum reg_class with
reg_class_t in hook argument / return types.
* doc/tm.texi (TARGET_SECONDARY_RELOAD): Likewise.
(TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
(TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
* targhooks.h (default_branch_target_register_class): Likewise.
(default_ira_cover_classes, default_secondary_reload): Likewise.
(default_memory_move_cost): Likewise.
* targhooks.c (default_branch_target_register_class): Likewise.
(default_ira_cover_classes, default_secondary_reload): Likewise.
(default_memory_move_cost): Likewise.
* reload.c (push_secondary_reload, secondary_reload_class): Likewise.
* bt-load.c (branch_target_load_optimize): Likewise.
* ira.c (setup_cover_and_important_classes): Likewise.
* ira-costs.c (copy_cost): Likewise.
* reload1.c (emit_input_reload_insns): Likewise.
* config/alpha/alpha.c (alpha_secondary_reload): Likewise.
* config/frv/frv.c (frv_secondary_reload): Likewise.
* config/s390/s390.c (s390_secondary_reload): Likewise.
* config/i386/i386.c (i386_ira_cover_classes): Likewise.
(ix86_secondary_reload, ix86_memory_move_cost): Likewise.
* config/sh/sh-protos.h (sh_secondary_reload): Likewise.
* config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
* config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
* config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
* config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
(rs6000_ira_cover_classes): Likewise.
* config/picochip/picochip.c (picochip_secondary_reload): Likewise.
* config/picochip/picochip-protos.h (picochip_secondary_reload):
Likewise.
* config/pa/pa.c (pa_secondary_reload): Likewise.
* config/mips/mips.c (mips_ira_cover_classes): Likewise.
* config/bfin/bfin.c (bfin_secondary_reload): Likewise.

Modified:
branches/multi-target-20100625-branch/gcc/ChangeLog
branches/multi-target-20100625-branch/gcc/bt-load.c
branches/multi-target-20100625-branch/gcc/config/alpha/alpha.c
branches/multi-target-20100625-branch/gcc/config/bfin/bfin.c
branches/multi-target-20100625-branch/gcc/config/frv/frv.c
branches/multi-target-20100625-branch/gcc/config/i386/i386.c
branches/multi-target-20100625-branch/gcc/config/mips/mips.c
branches/multi-target-20100625-branch/gcc/config/pa/pa.c
branches/multi-target-20100625-branch/gcc/config/picochip/picochip-protos.h
branches/multi-target-20100625-branch/gcc/config/picochip/picochip.c
branches/multi-target-20100625-branch/gcc/config/rs6000/rs6000.c
branches/multi-target-20100625-branch/gcc/config/s390/s390.c
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/xtensa/xtensa-protos.h
branches/multi-target-20100625-branch/gcc/config/xtensa/xtensa.c
branches/multi-target-20100625-branch/gcc/coretypes.h
branches/multi-target-20100625-branch/gcc/doc/tm.texi
branches/multi-target-20100625-branch/gcc/ira-costs.c
branches/multi-target-20100625-branch/gcc/ira.c
branches/multi-target-20100625-branch/gcc/reload.c
branches/multi-target-20100625-branch/gcc/reload1.c
branches/multi-target-20100625-branch/gcc/target.h
branches/multi-target-20100625-branch/gcc/targhooks.c
branches/multi-target-20100625-branch/gcc/targhooks.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566



[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-25 Thread amylaar at gcc dot gnu dot org


--- Comment #4 from amylaar at gcc dot gnu dot org  2010-06-25 19:00 ---
Subject: Bug 44566

Author: amylaar
Date: Fri Jun 25 19:00:34 2010
New Revision: 161404

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161404
Log:
PR other/44566
* function.h (MACHINE_FUNCTION): Define.
* Makefile.in (target-gtypes.h): Add machine_function_u definition.

* function.h (struct function): Use machine_function_u for member
machine.
* function.c (free_after_compilation): Use MACHINE_FUNCTION.
(allocate_struct_function): Likewise.
* doc/tm.texi: Adjust struct machine_function documentation.

* config/alpha/alpha.c (entire file): Replace cfun->machine with
MACHINE_FUNCTION (*cfun).
* config/xtensa/xtensa.c: Likewise.
* config/pa/pa.c: Likewise.
* config/mmix/mmix.md: Likewise.
* config/mmix/mmix.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/moxie/moxie.c: Likewise.
* config/ia64/ia64.md: Likewise.
* config/ia64/ia64.c: Likewise.
* config/mep/mep.c: Likewise.
* config/m32c/m32c.c: Likewise.
* config/cris/cris.c: Likewise.
* config/avr/avr.c: Likewise.
* config/avr/avr.md: Likewise.
* config/iq2000/iq2000.c: Likewise.
* config/frv/frv.c: Likewise.
* config/mips/mips.h: Likewise.
* config/mips/sde.h: Likewise.
* config/mips/mips.c: Likewise.
* config/s390/s390.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/arm/arm.c: Likewise.
* config/arm/arm.md: Likewise.
* config/arm/arm.h: Likewise.
* config/i386/i386.h: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/cygming.h: Likewise.

Modified:
branches/multi-target-20100625-branch/gcc/ChangeLog
branches/multi-target-20100625-branch/gcc/Makefile.in
branches/multi-target-20100625-branch/gcc/config/alpha/alpha.c
branches/multi-target-20100625-branch/gcc/config/arm/arm.c
branches/multi-target-20100625-branch/gcc/config/arm/arm.h
branches/multi-target-20100625-branch/gcc/config/arm/arm.md
branches/multi-target-20100625-branch/gcc/config/avr/avr.c
branches/multi-target-20100625-branch/gcc/config/avr/avr.md
branches/multi-target-20100625-branch/gcc/config/bfin/bfin.c
branches/multi-target-20100625-branch/gcc/config/cris/cris.c
branches/multi-target-20100625-branch/gcc/config/frv/frv.c
branches/multi-target-20100625-branch/gcc/config/i386/cygming.h
branches/multi-target-20100625-branch/gcc/config/i386/i386.c
branches/multi-target-20100625-branch/gcc/config/i386/i386.h
branches/multi-target-20100625-branch/gcc/config/ia64/ia64.c
branches/multi-target-20100625-branch/gcc/config/ia64/ia64.md
branches/multi-target-20100625-branch/gcc/config/iq2000/iq2000.c
branches/multi-target-20100625-branch/gcc/config/m32c/m32c.c
branches/multi-target-20100625-branch/gcc/config/mep/mep.c
branches/multi-target-20100625-branch/gcc/config/mips/mips.c
branches/multi-target-20100625-branch/gcc/config/mips/mips.h
branches/multi-target-20100625-branch/gcc/config/mips/sde.h
branches/multi-target-20100625-branch/gcc/config/mmix/mmix.c
branches/multi-target-20100625-branch/gcc/config/mmix/mmix.md
branches/multi-target-20100625-branch/gcc/config/moxie/moxie.c
branches/multi-target-20100625-branch/gcc/config/pa/pa.c
branches/multi-target-20100625-branch/gcc/config/rs6000/rs6000.c
branches/multi-target-20100625-branch/gcc/config/s390/s390.c
branches/multi-target-20100625-branch/gcc/config/sparc/sparc.c
branches/multi-target-20100625-branch/gcc/config/xtensa/xtensa.c
branches/multi-target-20100625-branch/gcc/doc/tm.texi
branches/multi-target-20100625-branch/gcc/function.c
branches/multi-target-20100625-branch/gcc/function.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566



[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-25 Thread amylaar at gcc dot gnu dot org


--- Comment #3 from amylaar at gcc dot gnu dot org  2010-06-25 18:44 ---
Subject: Bug 44566

Author: amylaar
Date: Fri Jun 25 18:44:18 2010
New Revision: 161401

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161401
Log:
PR other/44566
* function.h (target-gtypes.h): Include.
(struct function): New member target_arch.
* Makefile.in (TARGET_NUM): New Makefile variable.
(cs-tm.h): Add TARGET_NUM to DEFINES.
(GTFILES): Add target-gtypes.h.

* function.h (struct incoming_args): Use type cumulative_args_u for
member info.
(INCOMING_ARGS_INFO): Define.
* Makefile.in (target-gtypes.h, s-target-gtypes): New rules.

* function.c (assign_parms): Use INCOMING_ARGS_INFO.

* config/alpha/alpha.c (entire file): Replace crtl->args.info with
INCOMING_ARGS_INFO (crtl->args).
* config/xtensa/xtensa.c: Likewise.
* config/sh/sh.md: Likewise.
* config/sh/sh.c: Likewise.
* config/arc/arc.c: Likewise.
* config/mmix/mmix.c: Likewise.
* config/m68hc11/m68hc11.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/avr/avr.c: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/iq2000/iq2000.c: Likewise.
* config/frv/frv.c: Likewise.
* config/mips/mips.c: Likewise.
* config/spu/spu.c: Likewise.
* config/v850/v850.c: Likewise.
* config/s390/s390.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/arm/arm.c: Likewise.
* config/i386/i386.c: Likewise.

Modified:
branches/multi-target-20100625-branch/gcc/ChangeLog
branches/multi-target-20100625-branch/gcc/Makefile.in
branches/multi-target-20100625-branch/gcc/config/alpha/alpha.c
branches/multi-target-20100625-branch/gcc/config/arc/arc.c
branches/multi-target-20100625-branch/gcc/config/arm/arm.c
branches/multi-target-20100625-branch/gcc/config/avr/avr.c
branches/multi-target-20100625-branch/gcc/config/frv/frv.c
branches/multi-target-20100625-branch/gcc/config/i386/i386.c
branches/multi-target-20100625-branch/gcc/config/ia64/ia64.c
branches/multi-target-20100625-branch/gcc/config/iq2000/iq2000.c
branches/multi-target-20100625-branch/gcc/config/m68hc11/m68hc11.c
branches/multi-target-20100625-branch/gcc/config/mips/mips.c
branches/multi-target-20100625-branch/gcc/config/mmix/mmix.c
branches/multi-target-20100625-branch/gcc/config/rs6000/rs6000.c
branches/multi-target-20100625-branch/gcc/config/s390/s390.c
branches/multi-target-20100625-branch/gcc/config/sh/sh.c
branches/multi-target-20100625-branch/gcc/config/sh/sh.md
branches/multi-target-20100625-branch/gcc/config/sparc/sparc.c
branches/multi-target-20100625-branch/gcc/config/spu/spu.c
branches/multi-target-20100625-branch/gcc/config/stormy16/stormy16.c
branches/multi-target-20100625-branch/gcc/config/v850/v850.c
branches/multi-target-20100625-branch/gcc/config/xtensa/xtensa.c
branches/multi-target-20100625-branch/gcc/function.c
branches/multi-target-20100625-branch/gcc/function.h
branches/multi-target-20100625-branch/gcc/target.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566



[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-17 Thread joseph at codesourcery dot com


--- Comment #2 from joseph at codesourcery dot com  2010-06-17 14:28 ---
Subject: Re:   New: configuration with multiple targets
 / backends is not supported.

On Thu, 17 Jun 2010, amylaar at gcc dot gnu dot org wrote:

> To a first order of approximation, we can say trees and their passes are
> target-independent, while rtl and its passes are target-dependent.

There are many target macros used outside of the RTL passes, including in 
front ends, GIMPLE code, the driver, collect2 and libgcc, and all of these 
would need to become hooks (or in the case of libgcc, target macros in a 
separate set of headers under the toplevel libgcc/ directory so that 
different headers can be used in the libgcc builds for different targets).  
You'll need to figure out how to identify every macro used in those parts 
of the compiler and convert it to a hook [*] (at least to the intermediate 
stage of a default definition in targhooks.c that uses the macro, if you 
build targhooks.c multiple times in your scheme).  I'm not sure there's 
much real benefit in distinguishing target macros by where they are used; 
every one of them should end up being converted to a hook anyway (with 
appropriate LTO work to ensure effective devirtualization is possible in a 
single-target compiler).  If you have a good way to identify target macros 
(including those set at configure time rather than in tm.h headers) and 
macros defined indirectly depending on target macros, then you can work 
out exactly what does use them.

[*] The correct conversion is not always a one-to-one conversion where a 
single hook replaces a single macro.

Work will also be needed outside the compiler, e.g. in the assembler which 
entirely uses macros rather than hook at present, unless you arrange for 
separately built assemblers for different targets to be called for the 
code for each target.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566



[Bug middle-end/44566] configuration with multiple targets / backends is not supported.

2010-06-17 Thread amylaar at gcc dot gnu dot org


--- Comment #1 from amylaar at gcc dot gnu dot org  2010-06-17 11:40 ---
(In reply to comment #0)
> multi-target configurations, thus PR44362 doesn't actually block.

Sorry, I meant PR44431.  But then, the remaining part of PR44362 also
doesn't block PR44566 (and not PR44433 either).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44566