1. 03 Jan, 2011 1 commit
  2. 02 Sep, 2010 1 commit
    • target.def (class_likely_spilled_p): New hook. · 07b8f0a8
      	* target.def (class_likely_spilled_p): New hook.
      	* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
      	* doc/tm.texi: Regenerate.
      	* targhooks.c (default_class_likely_spilled_p): New function.
      	* targhooks.h (default_class_likely_spilled_p): Declare.
      	* regs.h (CLASS_LIKELY_SPILLED_P): Remove.
      	* combine.c: (cant_combine_insn_p, likely_spilled_retval_p): Use
      	TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
      	Use fixed_reg_set instead of fixed_regs.
      	* cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
      	* calls.c (avoid_likely_spilled_reg): Ditto.
      	* ira-conflicts.c: (ira_build_conflicts): Ditto.
      	* ira.c (update_equiv_regs): Ditto.
      	* mode-switching.c (create_pre_exit): Ditto.
      	* regmove.c (find_matches): Ditto.
      	(regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target
      	hook.
      	* reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
      	(small_register_class_p): New inline function.
      	(push_secondary_reload, find_reusable_reload, find_reloads): Use
      	small_register_class_p instead of SMALL_REGISTER_CLASS_P.
      
      	* config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
      	* config/i386/i386.c (ix86_class_likely_spilled_p): New.
      	(TARGET_CLASS_LIKELY_SPILLED_P): Define.
      
      From-SVN: r163779
      Anatoly Sokolov committed
  3. 12 Jul, 2010 3 commits
    • regs.h (target_regs): Add x_direct_load, x_direct_store and x_float_extend_from_mem. · 9d86796b
      gcc/
      	* regs.h (target_regs): Add x_direct_load, x_direct_store and
      	x_float_extend_from_mem.
      	(direct_load, direct_store, float_extend_from_mem): New macros.
      	* expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
      
      From-SVN: r162100
      Richard Sandiford committed
    • regs.h (target_regs): Add x_hard_regs_of_mode... · 55e78c8c
      gcc/
      	* regs.h (target_regs): Add x_hard_regs_of_mode, x_contains_reg_of_mode,
      	x_move_cost, x_may_move_in_cost, x_may_move_out_cost and
      	x_last_mode_for_init_move_cost.
      	(have_regs_of_mode, contains_reg_of_mode, move_cost)
      	(may_move_in_cost, may_move_out_cost): Redefine as macros.
      	* reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
      	(may_move_in_cost, may_move_out_cost): Delete.
      	(last_mode_for_init_move_cost): Redefine as a macro.
      
      From-SVN: r162090
      Richard Sandiford committed
    • Makefile.in (target-globals.o): Depend on $(REGS_H). · 939dcd0d
      gcc/
      	* Makefile.in (target-globals.o): Depend on $(REGS_H).
      	* regs.h (target_reg_modes): New structure.
      	(default_target_reg_modes): Declare.
      	(this_target_reg_modes): Declare as a variable or define as a macro.
      	(hard_regno_nregs, reg_raw_mode): Redefine as macros.
      	* reginfo.c (default_target_reg_modes): New variable.
      	(this_target_reg_modes): New conditional variable.
      	(hard_regno_nregs, reg_raw_mode): Delete.
      	* target-globals.h (this_target_regs): Declare.
      	(target_globals): Add a regs field.
      	(restore_target_globals): Copy the regs field to this_target_regs.
      	* target-globals.c: Include regs.h.
      	(default_target_globals): Initialize the regs field.
      	(save_target_globals): Likewise.
      
      From-SVN: r162087
      Richard Sandiford committed
  4. 23 May, 2010 1 commit
    • regs.h: Do not include obstack.h, basic-block.h. · 2d1a4cc1
      	* regs.h: Do not include obstack.h, basic-block.h.
      	Include machmode.h.
      	* jump.c: Include basic-block.h.
      	* profile.c: Likewise.
      	* tree-profile.c: Likewise.
      	* coverage.c: Likewise.
      	* basic-block.h (optimize_function_for_size_p): Move to function.h.
      	(optimize_function_for_speed_p): Likewise.
      	* function.h (optimize_function_for_size_p,
      	optimize_function_for_speed_p): Moved here from basic-block.h.
      
      From-SVN: r159761
      Steven Bosscher committed
  5. 03 May, 2010 1 commit
    • tm.texi (defmac SMALL_REGISTER_CLASSES): Remove. · 42db504c
      	* doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
      	(TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
      	based on the above, for new target hook.
      
      	* hooks.c (hook_bool_mode_true): New generic hook.
      	* hooks.h (hook_bool_mode_true): Add prototype.
      
      	* target.h (struct gcc_target): Add small_register_classes_for_mode_p
      	target hook.
      	* target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
      	target hook, set to hook_bool_mode_false.
      	* regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
      	* reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
      	with targetm.small_register_classes_for_mode_p.
      	(find_reusable_reload): Likewise.
      	(combine_reloads): Likewise.
      	* reload1.c (reload_as_needed): Likewise.
      	* cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
      	* ifcvt.c (noce_process_if_block, check_cond_move_block,
      	dead_or_predicable): Likewise.
      	* regmove.c (optimize_reg_copy_1): Likewise.
      	* calls.c (prepare_call_address): Likewise.
      	(precompute_register_parameters): Likewise.
      
      	* config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small except for SH64.
      	(sh_override_options): Use the new hook.
      	* config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small for THUMB1.
      	* config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small for MIPS16.
      	* config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/m32c/m32c.h: Likewise.
      	* config/pdp11/pdp11.h: Likewise.
      	* config/avr/avr.h: Likewise.
      	* config/xtensa/xtensa.h: Likewise.
      	* config/m68hc11/m68hc11.h: Likewise.
      	* config/mn10300/mn10300.h: Likewise.
      	* config/mcore/mcore.h: Likewise.
      	* config/h8300/h8300.h: Likewise.
      	* config/bfin/bfin.h: Likewise.
      
      	* config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
      	* config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
      
      From-SVN: r158997
      Steven Bosscher committed
  6. 30 Apr, 2010 1 commit
    • toplev.c: Include varray.h for statistics dumping. · 9aae8d16
      gcc/ChangeLog:
      	* toplev.c: Include varray.h for statistics dumping.
      	* tree.h: Do not declare varray_head_tag.
      	* tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
      	regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
      	c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
      	gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
      	lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
      	tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
      	c-common.c, c-common.h, reg-stack.c, basic-block.h,
      	tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
      	include varray.h.
      	* Makefile.in: Update for abovementioned changes.
      
      objc/ChangeLog:
      	* objc-act.c: Do not include varray.h.
      
      objcp/ChangeLog:
      	* objcp-decl.c: Do not include varray.h.
      
      cp/ChangeLog:
      	* optimize.c, parser.c,mangle.c, cp-tree.h: DO not include varray.h.
      	* Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
      
      From-SVN: r158933
      Steven Bosscher committed
  7. 25 Nov, 2009 1 commit
    • Remove trailing white spaces. · b8698a0f
      2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* alias.c: Remove trailing white spaces.
      	* alloc-pool.c: Likewise.
      	* alloc-pool.h: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.def: Likewise.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-format.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-tree.h: Likewise.
      	* c-typeck.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cif-code.def: Likewise.
      	* collect2.c: Likewise.
      	* combine.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* crtstuff.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbgcnt.def: Likewise.
      	* dbgcnt.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* ddg.h: Likewise.
      	* defaults.h: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* df.h: Likewise.
      	* dfp.c: Likewise.
      	* diagnostic.c: Likewise.
      	* diagnostic.h: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* double-int.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2asm.h: Likewise.
      	* dwarf2out.c: Likewise.
      	* ebitmap.c: Likewise.
      	* ebitmap.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* flags.h: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcov-dump.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov-io.h: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genchecksum.c: Likewise.
      	* genconfig.c: Likewise.
      	* genflags.c: Likewise.
      	* gengtype-parse.c: Likewise.
      	* gengtype.c: Likewise.
      	* gengtype.h: Likewise.
      	* genmddeps.c: Likewise.
      	* genmodes.c: Likewise.
      	* genopinit.c: Likewise.
      	* genpreds.c: Likewise.
      	* gensupport.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.def: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graphds.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* gthr-nks.h: Likewise.
      	* gthr-posix.c: Likewise.
      	* gthr-posix.h: Likewise.
      	* gthr-posix95.h: Likewise.
      	* gthr-single.h: Likewise.
      	* gthr-tpf.h: Likewise.
      	* gthr-vxworks.h: Likewise.
      	* gthr.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* hooks.c: Likewise.
      	* hooks.h: Likewise.
      	* hosthooks.h: Likewise.
      	* hwint.h: Likewise.
      	* ifcvt.c: Likewise.
      	* incpath.c: Likewise.
      	* init-regs.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* lambda-code.c: Likewise.
      	* lambda-mat.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* lambda.h: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* libgcov.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto-wpa-fixup.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omega.c: Likewise.
      	* omega.h: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts-common.c: Likewise.
      	* opts.c: Likewise.
      	* params.def: Likewise.
      	* params.h: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* predict.def: Likewise.
      	* pretty-print.c: Likewise.
      	* pretty-print.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sbitmap.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-int.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* sched-vis.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-dump.h: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sel-sched.h: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* stub-objc.c: Likewise.
      	* sync-builtins.def: Likewise.
      	* target-def.h: Likewise.
      	* target.h: Likewise.
      	* targhooks.c: Likewise.
      	* targhooks.h: Likewise.
      	* timevar.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* toplev.h: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-affine.h: Likewise.
      	* tree-browser.def: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-dump.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-operands.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* treestruct.def: Likewise.
      	* unwind-compat.c: Likewise.
      	* unwind-dw2-fde-glibc.c: Likewise.
      	* unwind-dw2.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vec.c: Likewise.
      	* vec.h: Likewise.
      	* vmsdbgout.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r154645
      H.J. Lu committed
  8. 26 Aug, 2008 1 commit
    • [multiple changes] · 058e97ec
      2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
      	ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
      
      	* doc/passes.texi: Describe IRA.
      
      	* doc/tm.texi (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
      
      	* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
      	(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
      	-fira-propagate-cost, -fno-ira-share-save-slots,
      	-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
      
      	* flags.h (ira_algorithm): New enumeration.
      	(flag_ira_algorithm, flag_ira_verbose): New external variable
      	declarations.
      
      	* postreload.c (gate_handle_postreload): Don't do post reload
      	optimizations unless the reload is completed.
      
      	* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
      	IRA.
      
      	* tree-pass.h (pass_ira): New external variable declaration.
      
      	* reload.h: Add 2008 to the Copyright.
          
      	* cfgloopanal.c: Include params.h.
      	(estimate_reg_pressure_cost): Decrease cost for IRA optimization
      	mode.
          
      	* params.h (IRA_MAX_LOOPS_NUM): New macro.
      
      	* toplev.c (ira.h): New include.
      	(flag_ira_algorithm, flag_ira_verbose): New external variables.
      	(backend_init_target): Call ira_init.
      	(backend_init): Call ira_init_once.
      	(finalize): Call finish_ira_once.
      
      	* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
      	flag_ira_share_save_slots, flag_ira_share_spill_slots): New
      	external variables.
      
      	* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
      	may_move_out_cost): New external variable declarations.
      	(move_table): New typedef.
          
      	* caller-save.c: Include headers output.h and ira.h.
      	(no_caller_save_reg_set): New global variable.
      	(save_slots_num, save_slots): New variables.
      	(reg_save_code, reg_restore_code, add_stored_regs): Add
      	prototypes.
      	(init_caller_save): Set up no_caller_save_reg_set.
      	(init_save_areas): Reset save_slots_num.
      	(saved_hard_reg): New structure.
      	(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
      	(initiate_saved_hard_regs, new_saved_hard_reg,
      	finish_saved_hard_regs, saved_hard_reg_compare_func): New
      	functions.
      	(setup_save_areas): Add code for sharing stack slots.
      	(all_blocks): New variable.
      	(save_call_clobbered_regs): Process pseudo-register too.
      	(mark_set_regs): Process pseudo-register too.
      	(insert_one_insn): Put the insn after bb note in a empty basic
      	block.  Add insn check.
          
      	* global.c (eliminable_regset): Make it external.
      	(mark_elimination): Use DF_LR_IN for IRA.
      	(pseudo_for_reload_consideration_p): New.
      	(build_insn_chain): Make it external.  Don't ignore spilled
      	pseudos for IRA.  Use pseudo_for_reload_consideration_p.
      	(gate_handle_global_alloc): New function.
      	(pass_global_alloc): Add the gate function.
      
      	* opts.c (decode_options): Set up flag_ira.  Print the warning for
      	-fira.
      	(common_handle_option): Process -fira-algorithm and -fira-verbose.
      
      	* timevar.def (TV_IRA, TV_RELOAD): New passes.
      
      	* regmove.c (regmove_optimize): Don't do replacement of output for
      	IRA.
      
      	* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
      	New external variable declarations.
      
      	* local-alloc.c (update_equiv_regs): Make it external.  Return
      	true if jump label rebuilding should be done.  Rescan new_insn for
      	notes.
      	(gate_handle_local_alloc): New function.
      	(pass_local_alloc): Add the gate function.
      
      	* alias.c (value_addr_p, stack_addr_p): New functions.
      	(nonoverlapping_memrefs_p): Use them for IRA.
      
      	* common.opt (fira, fira-algorithm, fira-coalesce,
      	fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
      	fira-verbose): New options.
      
      	* regclass.c (reg_class_subclasses, contains_reg_of_mode,
      	move_cost, may_move_in_cost, may_move_out_cost): Make the
      	variables external.
      	(move_table): Remove typedef.
      	(init_move_cost): Make it external.
      	(allocate_reg_info, resize_reg_info, setup_reg_classes): New
      	functions.
      
      	* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
      	setup_reg_classes): New function prototypes.
      	(eliminable_regset): New external variable declaration.
      	(build_insn_chain, update_equiv_regs): New function prototypes.
          
      	* Makefile.in (IRA_INT_H): New definition.
      	(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
      	ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
      	(reload1.o, toplev.o): Add dependence on ira.h.
      	(cfgloopanal.o): Add PARAMS_H.
      	(caller-save.o): Add dependence on output.h and ira.h.
      	(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
      	ira-emit.o, ira-lives.o): New entries.
      
      	* passes.c (pass_ira): New pass.
      
      	* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
      
      	* reload1.c (ira.h): Include the header.
      	(changed_allocation_pseudos): New bitmap.
      	(init_reload): Initiate the bitmap.
      	(compute_use_by_pseudos): Permits spilled registers in FROM.
      	(temp_pseudo_reg_arr): New variable.
      	(reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
      	IRA.  Call alter_reg with the additional parameter.  Don't clear
      	spilled_pseudos for IRA.  Restore original insn chain for IRA.
      	Clear changed_allocation_pseudos at the end of reload.
      	(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
      	(hard_regno_to_pseudo_regno): New variable.
      	(count_pseudo): Check spilled pseudos.  Set up
      	hard_regno_to_pseudo_regno.
      	(count_spilled_pseudo): Check spilled pseudos. Update
      	hard_regno_to_pseudo_regno.
      	(find_reg): Use better_spill_reload_regno_p.  Check
      	hard_regno_to_pseudo_regno.
      	(alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
      	code for IRA.
      	(eliminate_regs_1): Use additional parameter for alter_reg.
      	(finish_spills): Set up pseudo_previous_regs only for spilled
      	pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
      	more arguments.  Don't clear live_throughout and dead_or_set for
      	spilled pseudos.  Use additional parameter for alter_reg.  Call
      	mark_allocation_change.  Set up changed_allocation_pseudos.
      	Remove sanity check.
      	(emit_input_reload_insns, delete_output_reload): Use additional
      	parameter for alter_reg.  Call mark_allocation_change.
      	(substitute, gen_reload_chain_without_interm_reg_p): New
      	functions.
      	(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
          
      	* testsuite/gcc.dg/20080410-1.c: New file.
      	
      	* config/s390/s390.h (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
      
      	* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
          
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
          
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira.c (setup_reg_class_intersect_union): Prefer smallest class
      	when ignoring unavailable registers.
      
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
      	FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
      	* ira.c (setup_eliminable_regset): Check stack_realign_needed.
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
      
      	2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
      	* ira-build.c (allocno_range_compare_func): Stabilize sort.
      
      	2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
      	* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
      	* reload1.c (find_reg): Process registers in register allocation order.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* toplev.c (backend_init_target): Move ira_init call from
      	here...
      	(lang_dependent_init_target): ...to here.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* ira.c (setup_class_subset_and_memory_move_costs): Don't
      	calculate memory move costs for NO_REGS.
      
      	2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
      	* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
      	STACK_REGS is defined.
      
      	2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
      	* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
      	* config/sh/sh.h (IRA_COVER_CLASSES): Define.
      	* config/sh/sh.md (movsicc_true+3): Check if emit returns a
      	barrier.
      
      From-SVN: r139590
      Vladimir Makarov committed
  9. 06 Jun, 2008 1 commit
    • cgraph.c: Fix typos in comments. · fa10beec
      gcc/
      	* cgraph.c: Fix typos in comments.
      	(cgraph_availability_names): Fix string typo.
      	* fold-const.c: Fix typos in comments.
      	(fold_binary): Fix typo in warning.
      	* genautomata.c: Fix typos in comments.
      	(check_presence_pattern_sets): Fix typo in local variable.
      	(output_description): Fix typo in output.
      	* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
      	* hwint.h: Likewise.
      	* matrix-reorg.c (check_allocation_function): Likewise.
      	* omega.c (smooth_weird_equations): Likewise.
      	* auto-inc-dec.c: Fix typos in comments.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* coverage.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* dse.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* gcc.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimplify.c: Likewise.
      	* gthr-lynx.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* mips-tfile.c: Likewise.
      	* mkmap-flat.awk: Likewise.
      	* mkmap-symver.awk: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts.c: Likewise.
      	* passes.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* pretty-print.h: Likewise.
      	* profile.c: Likewise.
      	* protoize.c: Likewise.
      	* ra-conflict.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* regclass.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* rtl-error.c: Likewise.
      	* rtlanal.c: Likewise.
      	* scan.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* see.c: Likewise.
      	* stmt.c: Likewise.
      	* target.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vn.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* unwind-dw2-fde.c: Likewise.
      	* unwind.inc: Likewise.
      	* value-prof.c: Likewise.
      	* vmsdbgout.c: Likewise.
      
      From-SVN: r136425
      Ralf Wildenhues committed
  10. 16 Jan, 2008 1 commit
    • re PR rtl-optimization/31396 (Inline code performance much worse than out-of-line) · a03c6d64
      	PR rtl-optimization/31396
      	* regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
      	* cfg.c (dump_reg_info): Print it.
      	* regs.h (struct reg_info_t): add freq_calls_crossed.
      	(REG_FREQ_CALLS_CROSSED): New macro.
      	* global.c (global_alloc): Compute freq_calls_crossed for allocno.
      	(find_reg): Update call of CALLER_SAVE_PROFITABLE.
      	* regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
      	regmove_optimize): Update call crossed frequencies.
      	* local-alloc.c (struct qty): Add freq_calls_crossed.
      	(alloc_qty): Copute freq_calls_crossed.
      	(update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
      	(find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
      	* ra.h (struct allocno): Add freq_calls_crossed.
      
      From-SVN: r131576
      Jan Hubicka committed
  11. 26 Jul, 2007 1 commit
  12. 11 Jun, 2007 1 commit
  13. 22 May, 2007 1 commit
    • regs.h (end_hard_regno): New function. · 09e18274
      gcc/
      	* regs.h (end_hard_regno): New function.
      	(END_HARD_REGNO, END_REGNO): New macros.
      	(add_to_hard_reg_set): New function.
      	(remove_from_hard_reg_set): Likewise.
      	(in_hard_reg_set_p): Likewise.
      	(overlaps_hard_reg_set_p): Likewise.
      	* bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
      	(note_btr_set): Use END_HARD_REGNO.
      	* caller-save.c (setup_save_areas): Use end_hard_regno.
      	(mark_set_regs): Use END_HARD_REGNO.
      	(add_stored_regs): Use end_hard_regno.
      	(mark_referenced_regs): Use add_to_hard_reg_set.
      	* combine.c (update_table_tick): Use END_REGNO.
      	(record_value_for_reg): Likewise.
      	(record_dead_and_set_regs): Likewise.
      	(get_last_value_validate): Likewise.
      	(use_crosses_set_p): Likewise.
      	(reg_dead_at_p_1): Likewise.
      	(reg_dead_at_p): Likewise.
      	(mark_used_regs_combine): Use add_to_hard_reg_set.
      	(move_deaths): Use END_HARD_REGNO.
      	(reg_bitfield_target_p): Use end_hard_regno.
      	(distribute_notes): Use END_HARD_REGNO.
      	* cse.c (mention_regs): Use END_REGNO.
      	(insert): Use add_to_hard_reg_set.
      	(invalidate): Use END_HARD_REGNO.
      	(invalidate_for_call): Likewise.
      	(exp_equiv_p): Use END_REGNO.
      	(cse_insn): Likewise.
      	* cselib.c (cselib_invalidate_regno): Use end_hard_regno.
      	* df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
      	* df-scan.c (df_ref_record): Use END_HARD_REGNO.
      	* function.c (keep_stack_depressed): Use end_hard_regno.
      	* global.c (global_alloc): Use end_hard_regno.
      	(global_conflicts): Use add_to_hard_reg_set instead of
      	mark_reg_live_nc.
      	(find_reg): Likewise.
      	(mark_reg_store): Likewise.
      	(mark_reg_conflicts): Likewise.
      	(mark_reg_death): Use remove_from_hard_reg_set.
      	(mark_reg_live_nc): Delete.
      	(set_preference): Use end_hard_regno.
      	* local-alloc.c (mark_life): Use add_to_hard_reg_set and
      	remove_from_hard_reg_set.
      	(post_mark_life): Use add_to_hard_reg_set.
      	* mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
      	(reg_becomes_live): Use add_to_hard_reg_set.
      	* recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
      	(peep2_find_free_register): Use add_to_hard_reg_set.
      	* reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
      	* regclass.c (record_reg_classes): Use in_hard_reg_set_p.
      	* regrename.c (note_sets): Use add_to_hard_reg_set.
      	(clear_dead_regs): Use remove_from_hard_reg_set.
      	(regrename_optimize): Use add_to_hard_reg_set.
      	(find_oldest_value_reg): Use in_hard_reg_set_p.
      	* reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
      	(hard_reg_set_here_p): Use end_hard_regno.
      	(decompose): Likewise.
      	(reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
      	(find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
      	* reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
      	(mark_home_live): Use end_hard_regno.
      	(spill_hard_reg): Likewise.
      	(clear_reload_reg_in_use): Likewise.
      	* reorg.c (delete_prior_computation): Use END_REGNO.
      	* resource.c (update_live_status): Use END_HARD_REGNO.
      	(mark_referenced_resources): Use add_to_hard_reg_set.
      	(mark_set_resources): Likewise.
      	(mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
      	* rtlanal.c (refers_to_regno_p): Use END_REGNO.
      	(reg_overlap_mentioned_p): Likewise.
      	(dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
      	(covers_regno_no_parallel_p): Use END_REGNO.
      	(find_regno_note): Likewise.
      	(find_reg_fusage): Use END_HARD_REGNO.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
      	* var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
      
      From-SVN: r124961
      Richard Sandiford committed
  14. 01 Feb, 2007 1 commit
    • lower-subreg.c: New file. · e53a16e7
      gcc/:
      	* lower-subreg.c: New file.
      	* rtl.def (CONCATN): Define.
      	* passes.c (init_optimization_passes): Add pass_lower_subreg and
      	pass_lower_subreg2.
      	* emit-rtl.c (update_reg_offset): New static function, broken out
      	of gen_rtx_REG_offset.
      	(gen_rtx_REG_offset): Call update_reg_offset.
      	(gen_reg_rtx_offset): New function.
      	* regclass.c: Revert patch of 2006-03-05, restoring
      	reg_scan_update.
      	(clear_reg_info_regno): New function.
      	* dwarf2out.c (concatn_loc_descriptor): New static function.
      	(loc_descriptor): Handle CONCATN.
      	* common.opt (fsplit_wide_types): New option.
      	* opts.c (decode_options): Set flag_split_wide_types when
      	optimizing.
      	* timevar.def (TV_LOWER_SUBREG): Define.
      	* rtl.h (gen_reg_rtx_offset): Declare.
      	(reg_scan_update): Declare.
      	* regs.h (clear_reg_info_regno): Declare.
      	* tree-pass.h (pass_lower_subreg): Declare.
      	(pass_lower_subreg2): Declare.
      	* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
      	(Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
      	-fsplit-wide-types.
      	* doc/rtl.texi (Regs and Memory): Document concat and concatn.
      	* Makefile.in (OBJS-common): Add lower-subreg.o.
      	(lower-subreg.o): New target.
      gcc/testsuite/:
      	* gcc.dg/lower-subreg-1.c (test): New test.
      
      From-SVN: r121453
      Ian Lance Taylor committed
  15. 14 Apr, 2006 1 commit
    • basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY. · 1935e8a8
      	* basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
      	* flow.c (reg_n_info): Change the type to
      	VEC(reg_info_p,heap) *.
      	* regclass.c (allocate_reg_info, free_reg_info): Use VEC
      	instead of VARRAY.
      	* regs.h (reg_info_p): New.
      	(REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
      	REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
      	REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
      	instead of VARRAY.
      
      From-SVN: r112942
      Kazu Hirata committed
  16. 22 Aug, 2005 1 commit
  17. 25 Jun, 2005 1 commit
  18. 22 Nov, 2004 1 commit
    • bitmap.h (struct bitmap_obstack): New obstack type. · 7932a3db
      	* bitmap.h (struct bitmap_obstack): New obstack type.
      	(struct bitmap_head_def): Replace using_obstack with obstack
      	pointer.
      	(bitmap_default_obstack): New.
      	(bitmap_initialize): Make inline, does not do allocation.
      	(bitmap_release_memory): Remove.
      	(bitmap_obstack_initialize, bitmap_obstack_release): Declare.
      	(bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
      	bitmap_obstack_free, bitmap_malloc_free): Declare.
      	(BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
      	(BITMAP_FREE): Replace with ...
      	(BITMAP_OBSTACK_FREE): ... this.
      	(BITMAP_XFREE): Adjust.
      	(BITMAP_INIT_ONCE): Remove.
      	* bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
      	(bitmap_default_obstack): New.
      	(bitmap_elem_to_freelist): Adjust.
      	(bitmap_element_allocate): Adjust. Break initialization into ...
      	(bitmap_obstack_initialize): ... here.
      	(bitmap_release_memory): Replace with ...
      	(bitmap_obstack_release): ... this.
      	(bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
      	bitmap_obstack_free, bitmap_malloc_free): New.
      	(bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
      	bitmap_initialize.
      	(bitmap_initialize): Move to bitmap.h.
      	* gengtype.c (open_base_files): Add obstack.h to ifiles.
      	* Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
      	* basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
      	(INITIALIZE_REG_SET): Remove.
      	(FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
      	(INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
      	(flow_obstack): Do not declare.
      	(reg_obstack): Declare.
      	* regs.h: Include obstack.h.
      	* tree-optimize.c (tree_rest_of_compilation): Initialize and
      	release bitmap obstack here.
      	* bb-reorder.c: #include regs, not basic-block.
      	(fix_crossing_conditional_branches): Allocate regsets from
      	reg_obstack.
      	* bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
      	obstack.h.
      	* caller-save.c: Include regs.h earlier.
      	* cfg.c: Do not include basic-block.h or obstack.h.
      	(reg_obstack): Define.
      	* cfganal.c: Include obstack.h
      	* cfgcleanyp.c: Do not include basic-block.h. Include regs.h
      	earlier.
      	* cfglayout.c: Do not include obstack.h.
      	(flow_obstack): Remove declaration.
      	(cfg_layout_duplicate_bb): Use reg_obstack.
      	* cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
      	* cfgrtl.c (rtl_split_block): Use reg_obstack.
      	(force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
      	(safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
      	(cfg_layout_split_edge): Use reg_obstack.
      	* cse.c: Include regs.h earlier.
      	* ddg.c: Do not include basic-block.h.
      	* dominance.c: Inlude obstack.h.
      	* flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
      	(calculate_global_regs_live): Likewise.
      	(allocate_bb_life_data): Use reg_obstack.
      	(init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
      	* global.c: Do not include basic-block.h.
      	(build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
      	* graph.c: Include obstack.h.
      	* haifa-sched.c: Do not include basic-block.h.
      	* ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
      	* local-alloc.c: Do not include basic-block.h.
      	* loop-init.c, loop-invariant.c: Include obstack.h.
      	* loop-iv.c: Likewise.
      	(simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
      	adjust.
      	* loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
      	* modulo-sched.c: Do not include basic-block.h.
      	* passes.c (rest_of_handle_final): Do not call
      	regset_release_memory.
      	* ra-debug.c: Include regs.h earlier. Do not include
      	basic-block.h.
      	* recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
      	* regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
      	(allocate_reg_info): Do not call MAX_REGNO_REG_SET.
      	(regset_release_memory): Remove.
      	* resource.c: Do not include basic-block.h.
      	* rtlanal.c: Do not include basic-block.h.
      	* sbitmap.c: Include obstack.h.
      	* sched-deps.c: Do not include basic-block.h.
      	(reg_pending_sets_head, reg_pending_clobbers_head,
      	reg_pending_uses_head): Remove.
      	(init_deps_global): Use OBSTACK_ALLOC_REG_SET.
      	* sched-ebb.c: Do not include basic-block.h.
      	* sched-rgn.c: Likewise.
      	* tree-if-conv.c (get_loop_body_in_if_conv_order): Use
      	BITMAP_XFREE.
      	* tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
      	* tree-sra.c (decide_instantiations): Adjust bitmap
      	initialization.
      	* tree-ssa-dce.c: Include obstack.h.
      	* tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
      	(value_insert_into_set_bitmap): Remove useless bitmap_clear.
      	(bitmap_set_new): Likewise.
      	(init_pre): Initialize bitmap obstack.
      	(fini_pre): Release bitmap obstack.
      	* tree-ssanames.c (ssa_names_to_rewrite): Make static.
      	(marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
      	(mark_for_rewrite, unmark_for_rewrite): Likewise.
      	(marked_ssa_names): Likewise.
      	(init_ssanames): Use BITMAP_XMALLOC.
      	(fini_ssanames): Use BITMAP_XFREE.
      	* web.c: Include obstack.h
      
      From-SVN: r91009
      Nathan Sidwell committed
  19. 09 Oct, 2004 1 commit
  20. 24 Sep, 2004 1 commit
    • re PR middle-end/17503 (quadratic behaviour in invalid_mode_change_p) · 41bf2a8b
              PR rtl-opt/17503
              * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
              (som_hash, som_eq): New.
              (init_subregs_of_mode, record_subregs_of_mode): New.
              (cannot_change_mode_set_regs): Rewrite for htab implementation.
              (invalid_mode_change_p): Likewise.
              * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
              * flow.c (mark_used_regs): Likewise.
              (life_analysis): Use init_subregs_of_mode.
              * regs.h (subregs_of_mode): Remove.
              * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
      
      From-SVN: r88067
      Richard Henderson committed
  21. 22 Jul, 2004 1 commit
    • tree-cfg.c (gimplify_val): Move from tree-complex.c. · 26277d41
      2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
      
      	* tree-cfg.c (gimplify_val): Move from tree-complex.c.
      	(gimplify_build1): Move from tree-complex.c do_unop.
      	(gimplify_build2): Move from tree-complex.c do_binop.
      	(gimplify_build3): New.
      	* tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
      	Adjust throughout to call the functions above.
      	* tree-flow.h: Declare the functions above.
      	* tree-nested.c (gimplify_val): Rename to...
      	(tsi_gimplify_val): ... this.
      
      	* Makefile.in (tree_complex.o): Update dependencies.
      	(stor-layout.o): Depend on regs.h.
      	* c-common.c (handle_vector_size_attribute): Update for
      	vector types without corresponding vector modes.
      	* expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
      	a corresponding vector mode is not available.
      	* print-tree.c (print_node): Print nunits for vector types
      	* regclass.c (have_regs_of_mode): New.
      	(init_reg_sets_1): Initialize it and use it instead
      	of allocatable_regs_of_mode.
      	* regs.h (have_regs_of_mode): Declare it.
      	* stor-layout.c (layout_type): Pick a mode for vector types.
      	* tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
      	build_replicated_const, do_unop, do_binop, do_plus_minus,
      	do_negate, expand_vector_piecewise, expand_vector_parallel,
      	expand_vector_addition, expand_vector_operations_1,
      	expand_vector_operations, tree_lower_operations,
      	pass_lower_vector_ssa, pass_pre_expand): New.
      	(expand_complex_operations, pass_lower_complex): Remove.
      	* tree-optimize.c (init_tree_optimization_passes): Adjust
      	pass ordering for changes in tree-complex.c.
      	* tree-pass.h: Declare new passes.
      	* tree.c (finish_vector_type): Remove.
      	(make_vector_type): New.
      	(build_vector_type_for_mode, build_vector_type): Rewritten.
      	* tree.def (VECTOR_TYPE): Document where the number of
      	subparts is stored.
      	* tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
      	(make_vector): Remove declaration.
      
      From-SVN: r85039
      Paolo Bonzini committed
  22. 13 May, 2004 1 commit
  23. 04 Feb, 2004 1 commit
    • alloc-pool.h, [...]: Update copyright. · e146f815
      	gcc/
      	* alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
      	caller-save.c, df.h, genconfig.c, global.c, lcm.c,
      	ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
      	sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
      	config/arm/fpa.md, config/arm/iwmmxt.md,
      	config/arm/netbsd-elf.h, config/arm/netbsd.h,
      	config/m68hc11/m68hc11.md, config/mips/iris5.h,
      	config/mn10300/mn10300.md, config/rs6000/altivec.md,
      	config/sparc/netbsd-elf.h: Update copyright.
      
      	cp/
      	* error.c, search.c: Update copyright.
      
      	java/
      	* typeck.c: Update copyright.
      
      From-SVN: r77265
      Kazu Hirata committed
  24. 02 Feb, 2004 1 commit
    • alias.c (record_set): Use hard_regno_nregs. · 66fd46b6
      	* alias.c (record_set): Use hard_regno_nregs.
      	* bt-load.c (find_btr_reference, note_btr_set): Likewise.
      	* builtins.c (apply_args_size): Likewise.
      	* caller-save.c (setup_save_areas, save_call_clobbered_regs,
      	mark_set_regs, add_stored_regs, mark_referenced_regs,
      	insert_restore, insert_save, insert_one_insn): Likewise.
      	* cfgcleanup.c: Include regs.h
      	(mark_effect, mentions_nonequal_regs): Likewise.
      	* cfgrtl.c (mark_killed_regs): Likewise
      	* combine.c (update_table_tick, record_value_for_reg,
      	record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
      	reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
      	reg_bitfield_target_p, distribute_notes): Likewise.
      	* cse.c (mention_regs, insert, invalidate, invalidate_for_call,
      	exp_equiv_p, cse_insn): Likewise.
      	* cselib.c (cselib_lookup): Likewise.
      	(cselib_invalidate_regno, cselib_record_set): Likewise.
      	* df.c (df_ref_record): Likewise.
      	* dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
      	Likewise.
      	* flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
      	count_or_remove_death_notes_bb): Likewise.
      	* function.c (aggregate_value_p, keep_stack_depressed): Likewise.
      	* gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
      	mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
      	* integrate.c (mark_stores): Likewise.
      	* jump.c (delete_prior_computation): Likewise.
      	* lcm.c (reg_dies, reg_becomes_live): Likewise.
      	* local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
      	* loop.c (LOOP_REGNO_NREGS): Likewise.
      	* postreload.c (reload_combine, reload_combine_note_store,
      	reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
      	* ra-colorize.c (combine, color_usable_p, get_free_reg,
      	calculate_dont_begin, calculate_dont_begin, colorize_one_web,
      	try_recolor_web, insert_coalesced_conflicts, check_colors,
      	break_precolored_alias): Likewise.
      	* ra-debug.c: Include regs.h
      	(ra_print_rtx_object): Likewise.
      	* ra-rewrite (choose_spill_colors): Likewise.
      	(spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
      	* ra.c (init_ra): Likewise.
      	* recog.c (reg_fits_class_p, peep2_reg_dead_p,
      	peep2_find_free_register): Likewise.
      	* reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
      	* regclass.c (hard_regno_nregs): New array.
      	(init_reg_modes_once): Initialize it.
      	(choose_hard_reg_mode): Use it.
      	(record_reg_classes): Likewise.
      	* regmove.c (mark_flags_life_zones): Likewise.
      	* regrename.c (note_sets, clear_dead_regs, regrename_optimize,
      	scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
      	copy_value, maybe_mode_change, find_oldest_value_reg,
      	copyprop_hardreg_forward_1):
      	* regs.h (hard_regno_nregs): Declare.
      	* realod.c (reload_inner_reg_of_subreg): Use it.
      	(push_reload, combine_reloads, find_dummy_reload,
      	hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
      	refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
      	reload_adjust_reg_for_mode): Likewise.
      	* reload1.c (compute_use_by_pseudos, count_pseudo,
      	count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
      	spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
      	clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
      	allocate_reload_reg, choose_reload_regs, emit_reload_insns,
      	delete_output_reload): Likewise.
      	* resource.c (update_live_status, mark_referenced_resources,
      	mark_set_resources, mark_target_live_regs): Likewise.
      	* rtlanal.c:  Include regs.h
      	(refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
      	dead_or_set_regno_p, find_regno_note, find_reg_fusage,
      	subreg_regno_offset, subreg_offset_representable_p,
      	hoist_test_store): Likewise.
      	* sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
      	* sched-rgn.c (check_live_1, update_live_1): Likewise.
      	* stmt.c: Include regs.h
      	(decl_conflicts_with_clobbers_p): Likewise.
      	* varasm.c (make_decl_rtl): Likewise.
      	* Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
      
      From-SVN: r77088
      Jan Hubicka committed
  25. 06 Dec, 2003 1 commit
  26. 11 Jul, 2003 1 commit
  27. 06 Jul, 2003 1 commit
    • jump.c: Convert prototypes to ISO C90. · 0c20a65f
      	* jump.c: Convert prototypes to ISO C90.
      	* langhooks-def.h: Likewise.  Add extern to prototypes.
      	* langhooks.c: Likewise.
      	* langhooks.h: Likewise.
      	* lcm.c: Likewise.
      	* local-alloc.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* loop-unswitch.c: Likewise.
      	* loop.c: Likewise.
      	* loop.h: Likewise. Add extern to prototypes.
      	* machmode.h: Likewise.
      	* main.c: Likewise.
      	* mbchar.c: Likewise.
      	* mbchar.h: Likewise.
      	* mkdeps.c: Likewise.
      	* mkdeps.h: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* output.h: Likewise.
      	* gccspec.c: Likwise.
      	* postreload.c: Likewise.
      	* prefix.c: Likewise.
      	* prefix.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* real.h: Likewise.
      	* recog.c: Likewise.
      	* recog.h: Likewise.
      	* reg-stack.c: Likewise.
      	* regclass.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* reload.h: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* resource.h: Likewise.
      	* rtl-error.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      
      From-SVN: r68998
      Andreas Jaeger committed
  28. 19 Jun, 2003 1 commit
    • c-tree.h: Remove declaration of poplevel. · e295f317
      	* c-tree.h: Remove declaration of poplevel.
      
      	* tree.h: Remove declaration of approx_sqrt.
      
      	* c-lex.c: Remove redundant declaration of asm_out_file.
      
      	* flags.h: Remove declaration of warn_unknown_pragma and
      	main_input_filename.
      
      	* rtl.h: Remove functions from fold-const.c since they're already
      	declared in tree.h.
      
      	* regs.h: Remove redundant declaration of reg_names.
      
      cp:
      
      	* cp-tree.h: Remove duplicated declarations.
      
      From-SVN: r68193
      Andreas Jaeger committed
  29. 28 Feb, 2003 1 commit
  30. 04 Nov, 2002 1 commit
    • hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New. · cff9f8d5
      2002-11-04  Aldy Hernandez  <aldyh@redhat.com>
      
      	* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.
      
      	* config/rs6000/rs6000.h (CLASS_CANNOT_CHANGE_MODE_P): Remove.
      	(CLASS_CANNOT_CHANGE_MODE): Remove.
      	(CANNOT_CHANGE_MODE_CLASS): New.
      
      	* config/alpha/alpha.h: Same.
      
      	* config/ia64/ia64.h: Same.
      
      	* config/mips/mips.h: Same.
      
      	* config/s390/s390.h: Same.
      
      	* config/sh/sh.h: Same.
      
      	* config/pa/pa64-regs.h: Same.
      
      	* config/sh/sh-protos.h (sh_cannot_change_mode_class): Add prototype.
      
      	* config/sh/sh.c (sh_cannot_change_mode_class): New.
      
      	* config/mips/mips-protos.h (mips_cannot_change_mode_class): Add
      	prototype.
      
      	* config/mips/mips.c (mips_cannot_change_mode_class): New.
      
      	* doc/tm.texi (Register Classes): Remove
      	CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P.
      	Document CANNOT_CHANGE_MODE_CLASS.
      
      	* reload.c (push_reload): Use CANNOT_CHANGE_MODE_CLASS.
      	(push_reload): Same.
      
      	* simplify-rtx.c (simplify_subreg): Same.
      
      	* reload1.c (choose_reload_regs): Same.
      
      	* recog.c (register_operand): Same.
      
      	* regrename.c (mode_change_ok): Change to use new
      	CANNOT_CHANGE_MODE_CLASS infrastructure.
      
      	* regclass.c (cannot_change_mode_set_regs): New.
      	Declare subregs_of_mode.
      	(regclass): Use subregs_of_mode.
      	Remove references to reg_changes_mode.
      	(init_reg_sets_1): Remove class_can_change_mode and
      	reg_changes_mode code.
      	(invalid_mode_change_p): New.
      	(dump_regclass): Use invalid_mode_change_p instead of
      	class_can_change_mode.
      	(regclass): Same.
      	(record_operand_costs): Do not set reg_changes_mode.
      
      	* local-alloc.c (struct qty): Remove changes_mode field.
      	(alloc_qty): Remove changes_mode initialization.
      	(update_qty_class): Remove set of changes_mode.
      	(find_free_reg): Use subregs_of_mode.
      
      	* global.c (find_reg): Use subregs_of_mode info.
      
      	* rtl.h (cannot_change_mode_set_regs): New prototype.
      	(invalid_mode_change_p): Same.
      	(REG_CANNOT_CHANGE_MODE_P): New macro.
      
      	* flow.c (mark_used_regs): Calculate subregs_of_mode.  Remove
      	REG_CHANGES_MODE.
      	(life_analysis): Clear subregs_of_mode.
      
      	* combine.c (subst): Pass class to CLASS_CANNOT_CHANGE_MODE_P.
      	Remove use of CLASS_CANNOT_CHANGE_MODE.
      	(simplify_set): Same.
      	(gen_lowpart_for_combine): Calculate subregs_of_mode.  Remove
      	REG_CHANGES_MODE.
      
      	* regs.h: Add extern for subregs_of_mode;
      	Include hard-reg-set and basic-block.
      	(REG_CHANGES_MODE): Delete.
      
      From-SVN: r58794
      Aldy Hernandez committed
  31. 27 Nov, 2001 1 commit
  32. 22 Aug, 2001 1 commit
    • Makefile.in, [...]: replace "GNU CC" with "GCC". · 1322177d
      	* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
      	bitmap.h, builtin-types.def, builtins.c, builtins.def,
      	c-aux-info.c, c-common.c, c-common.def, c-common.h,
      	c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
      	c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
      	c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
      	caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
      	conditions.h, config.gcc, configure.frag, configure.in,
      	conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
      	cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
      	dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
      	doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
      	dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
      	emit-rtl.c, errors.c, errors.h, except.c, except.h,
      	exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
      	fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
      	function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
      	gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
      	gencheck.c, gencodes.c, genconfig.c, genemit.c,
      	genextract.c, genflags.c, gengenrtl.c, genmultilib,
      	genopinit.c, genoutput.c, genpeep.c, genrecog.c,
      	gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
      	ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
      	graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
      	gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
      	gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
      	hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
      	integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
      	libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
      	machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
      	mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
      	mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
      	params.h, predict.c, predict.def, predict.h, prefix.c,
      	prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
      	read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
      	regclass.c, regmove.c, regrename.c, regs.h, reload.c,
      	reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
      	rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
      	sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
      	sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
      	ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
      	stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
      	tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
      	tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
      	unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
      	unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
      	xcoffout.h: replace "GNU CC" with "GCC".
      
      From-SVN: r45105
      Lars Brinkhoff committed
  33. 30 Jul, 2001 1 commit
    • flow.c (mark_set_1): Use REG_FREQ_FROM_BB. · a08b2604
      	* flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
      	(attempt_auto_inc): LIkewise.
      	(mark_used_reg): Likewise.
      	(try_pre_increment_1): Likewise.
      	* regclass.c (regclass): Likewise.
      	* global.c (allocno_compare): Update comment; change scaling factor.
      	* local-alloc.c (QTY_CMP_PRI): Likewise.
      	* regs.h (REG_FREQ_FROM_BB): New.
      	(REG_FREQ_MAX): Likewise.
      
      From-SVN: r44483
      Jan Hubicka committed
  34. 22 Jun, 2001 1 commit
    • regs.h (struct reg_info_def): Add freq field. · b2aec5c0
      	* regs.h (struct reg_info_def): Add freq field.
      	(REG_N_REFS): Update comment.
      	(REG_FREQ): New.
      	* regclass.c (scan_one_insn): Update REG_FREQ.
      	* flow.c (mark_set_1): Update REG_FREQ, make REG_N_SETS unweighted.
      	(attempt_auto_inc): Likewise.
      	(mark_used_reg): Likewise.
      	(try_pre_increment_1): Likewise.
      	* local-alloc.c (struct qty): Add freq field.
      	(alloc_qty): Set freq.
      	(update_equiv_regs): Set REG_FREQ.
      	(QTY_CMP_PRI): Use freq.
      	(combine_regs): Update qty->freq.
      	* global.c (struct allocno): Update comment for n_refs;
      	add freq field.
      	(local_reg_freq): New array.
      	(global_alloc): Update freq field;
      	allocate and initialize local_reg_freq.
      	(allocno_compare): Use freq field.
      	(find_reg): Likewise.
      	* reload1.c (count_pseudo): Use freq isntead of n_refs.
      	(count_spilled_pseudo): Likewise.
      
      	* tm.texi (GCOV_TYPE_SIZE): Document.
      	* basic-block.h (gcov_type): Define.
      	(struct edge_def): Use gcov_type for count field.
      	(struct basic_block_def): Likewise.
      	* defaults.h (GCOV_TYPE_SIZE): Define.
      	* final.c (end_final): Use GCOV_TYPE_SIZE.
      	* flow.c (dump_edge_info, dump_flow_info, dump_bb): Print count fields
      	using HOST_WIDEST_INT_PRINT_DEC.
      	* gcov-io.h (__fetch_gcov_type, __store_gcov_type, __read_gcov_type,
      	__write_gcov_type): New.
      	(store_long): Remove.
      	* gcov.c (gcov_type): Set default.
      	(struct adj_list): Use gcov_type for arc_count.
      	(bb_info): Use gcov_type for succ_count, pred_count and exec_count.
      	(create_program_flow_graph): Read arc_count properly.
      	(solve_program_flow_graph): 'total' is gcov_type.
      	(output_data): Line_counts is gcov_type, print it properly.
      	* libgcc2.c (struct bb): Counts is gcov_type.
      	(__bb_exit_func): Use __read_gcov_type and __write_gcov_type.
      	* profile.c (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set default.
      	(GCOV_TYPE_SIZE): Define.
      	(struct bb_info): succ_count and pred_count is gcov_type.
      	(compute_branch_probabilities): Use __read_gcov_type,
      	print read edges to the dump file.
      	(total): Is gcov_type.
      	(gen_edge_profiler): Use GCOV_TYPE_SIZE.
      
      From-SVN: r43505
      Jan Hubicka committed
  35. 03 Apr, 2001 1 commit
    • Use byte offsets in SUBREGs instead of words. · ddef6bc7
      2001-04-03  Jakub Jelinek  <jakub@redhat.com>
      	    David S. Miller  <davem@pierdol.cobaltmicro.com>
                  Andrew MacLeod  <amacleod@redhat.com>
      
      	Use byte offsets in SUBREGs instead of words.
      
      	* alias.c (nonlocal_mentioned_p): Use subreg_regno function.
      	* caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
      	to pass new argument.
      	(add_stored_regs): Use subreg_regno_offset function.
      	* calls.c (expand_call): For non-paradoxical SUBREG take endianess
      	into account.
      	(precompute_arguments): Use gen_lowpart_SUBREG.
      	* combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
      	(combine_simplify_rtx): Rework to use SUBREG_BYTE.
      	(simplify_set): Rework to use SUBREG_BYTE.
      	(expand_field_assignment): Use SUBREG_BYTE.
      	(make_extraction): Use SUBREG_BYTE.
      	(if_then_else_cond): Use SUBREG_BYTE.
      	(apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
      	(gen_lowpart_for_combine): Compute full byte offset.
      	* cse.c (mention_regs): Use SUBREG_BYTE.
      	(remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
      	(canon_hash): Use SUBREG_BYTE.
      	(fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
      	(gen_lowpart_if_possible): Formatting.
      	* dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
      	correctly.
      	* dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
      	(mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	(loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	* dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
      	(output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	(output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	* emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
      	certain invariants about SUBREGs the compiler creates.
      	(gen_lowpart_SUBREG): New function.
      	(subreg_hard_regno): New function to get the final register number.
      	(gen_lowpart_common): Use SUBREG_BYTE.
      	(gen_imagpart): Spacing nits.
      	(subreg_realpart_p): Use SUBREG_BYTE.
      	(gen_highpart): Use SUBREG_BYTE.
      	(subreg_lowpart_p): Always compute endian corrected goal offset,
      	even at the byte level, then compare against that.
      	(constant_subword): New function, pulled out all constant cases
      	from operand_subword and changed second argument name to offset.
      	(operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
      	and call constant_subword to do the work.  Return const0_rtx if
      	looking for a word outside of OP.
      	(operand_subword_force): Change second arg name to offset.
      	* expmed.c (store_bit_field): Use SUBREG_BYTE.
      	(store_split_bit_field): Use SUBREG_BYTE.
      	(extract_bit_field): Use SUBREG_BYTE.
      	(extract_split_bit_field): Use SUBREG_BYTE.
      	(expand_shift): Use SUBREG_BYTE.
      	* expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
      	* final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
      	* flow.c (set_noop_p): Use SUBREG_BYTE.
      	(mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
      	* function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
      	(fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
      	correction code.
      	(optimize_bit_field): Use SUBREG_BYTE.
      	(purge_addressof_1): Use SUBREG_BYTE.
      	(purge_single_hard_subreg_set): Use subreg_regno_offset function.
      	(assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
      	actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
      	* gengenrtl.c (special_rtx): Add SUBREG.
      	* global.c (mark_reg_store): Use SUBREG_BYTE.
      	(set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
      	* ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
      	* integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
      	final byte offset is congruent to subreg's mode size.
      	(subst_constants): Use SUBREG_BYTE.
      	(mark_stores): Use subreg_regno_offset function.
      	* jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
      	function and SUBREG_BYTE.
      	* local-alloc.c (combine_regs): Use subreg_regno_offset function.
      	(reg_is_born): Use subreg_hard_regno.
      	* recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
      	endian correction code.  Don't combine subregs unless resulting
      	offset aligns with type.  Fix subreg constant extraction for DImode.
      	Simplify SUBREG of VOIDmode CONST_DOUBLE.
      	(general_operand): Remove dead mode_altering_drug code.
      	(indirect_operand): Use SUBREG_BYTE.
      	(constrain_operands): Use subreg_regno_offset function.
      	* reg-stack.c (get_true_reg): Use subreg_regno_offset function.
      	* regmove.c (regmove_optimize): Use SUBREG_BYTE.
      	(optimize_reg_copy_3): Use gen_lowpart_SUBREG.
      	* regs.h (REG_SIZE): Allow target to override.
      	(REGMODE_NATURAL_SIZE): New macro which target can override.
      	* reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
      	on the entire subreg rtx.
      	(push_reload): Use SUBREG_BYTE in comments and code.
      	(find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
      	for hard registers inside subregs.
      	(operands_match_p): Use subreg_regno_offset.
      	(find_reloads): Use SUBREG_BYTE and only advance offset for subregs
      	containing hard regs.
      	(find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
      	corrections when fixing up MEM subregs.
      	(find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
      	subreg_regno_offset where appropriate.
      	(find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
      	byte endian corrections when fixing up MEM subregs.
      	(subst_reloads): When combining two subregs, make sure final
      	offset is congruent to subreg's mode size.
      	(find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
      	(refers_to_regno_for_reload_p): Use subreg_regno.
      	(reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
      	* reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
      	correction code for memory subreg fixups.
      	(forget_old_reload_1): Use subreg_regno_offset.
      	(choose_reload_regs): Use subreg_regno.
      	(emit_input_reload_insns): Use SUBREG_BYTE.
      	(reload_combine_note_store): Use subreg_regno_offset.
      	(move2add_note_store): Use subreg_regno_offset.
      	* resource.c (update_live_status, mark_referenced_resources): Use
      	subreg_regno function.
      	(mark_set_resources): Use subreg_regno function.
      	* rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
      	(subreg_regno_offset, subreg_regno): Define prototypes.
      	(subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
      	(gen_lowpart_SUBREG): Add prototype.
      	* rtl.texi (subreg): Update to reflect new byte offset representation.
      	Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
      	* rtlanal.c (refers_to_regno_p): Use subreg_regno.
      	(reg_overlap_mentioned_p): Use subreg_regno.
      	(replace_regs); Make sure final offset of combined subreg is
      	congruent to size of subreg's mode.
      	(subreg_regno_offset): New function.
      	(subreg_regno): New function.
      	* sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
      	* sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
      	* stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
      	* tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
      	(SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
      	* config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
      	(a29k_get_reloaded_address): Use SUBREG_BYTE.
      	(print_operand): Use SUBREG_BYTE.
      	* config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
      	* config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
      	(arm_reload_out_hi): Use SUBREG_BYTE.
      	* config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
      	instead of SUBREG_WORD.
      	(d30v_print_operand_memory_reference): Use subreg_regno_offset.
      	* config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
      	SUBREG creation to use byte offset.
      	* config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
      	inverted load insns): Fix explicit rtl subregs to use byte
      	offsets.
      	* config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
      	udivsi3, umodsi3): Generate SUBREGs with byte offsets.
      	* config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
      	* config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
      	to use byte offsets.
      	(unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
      	* config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
      	offsets, also make sure it is congruent to SUBREG's mode size.
      	(extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
      	unnamed ldob insn): Generate SUBREGs with byte offset.
      	(zero_extendqihi2): SUBREG's are byte offsets.
      	* config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
      	(m68hc11_gen_highpart): Use SUBREG_BYTE.
      	* config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
      	zero-extendqisi2): Generate SUBREGs with byte offset.
      	(umulsidi3, mulsidi3, subreghi1ashrdi_const32,
      	subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
      	subregs in rtl to use byte offsets.
      	* config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
      	* config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
      	(mips_move_2words): Use subreg_regno_offset.
      	(mips_secondary_reload_class): Use subreg_regno_offset.
      	* config/mips/mips.md (DImode plus, minus, move, and logical op
      	splits): Fixup explicit subregs in rtl to use byte offsets.
      	* config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
      	* config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
      	* config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
      	rtl to use byte offsets.
      	* config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
      	* config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
      	subregs to use byte offsets.
      	* config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
      	Fixup explicit subregs in rtl to use byte offsets.
      	* config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
      	and remove byte endian correction code.
      	* config/sh/sh.c (output_movedouble): Use subreg_regno.
      	(gen_ashift_hi): Use SUBREG_BYTE.
      	(regs_used): Use subreg_regno_offset.
      	(machine_dependent_reorg): Use subreg_regno_offset.
      	* config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
      	* config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
      	(movdf_i4): Subregs are byte offsets now.
      	* config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
      	* config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
      	(REGMODE_NATURAL_SIZE): Override.
      	(REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
      	* config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
      	with byte offsets.
      	(zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
      	extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
      	extendqidi2): Generate SUBREGs with byte offsets, also make sure
      	it is congruent to SUBREG's mode size.
      	(smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
      	offsets.
      	(cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
      	cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
      	lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
      	SUBREG_BYTE offset for non-paradoxical subregs in patterns.
      	* config/v850/v850.c (print_operand, output_move_double): Use
      	subreg_regno function.
      
      Co-Authored-By: Andrew MacLeod <amacleod@redhat.com>
      Co-Authored-By: David S. Miller <davem@pierdol.cobaltmicro.com>
      
      From-SVN: r41058
      Jakub Jelinek committed
  36. 28 Feb, 2001 1 commit
    • caller-save.c (reg_save_code, [...]): Index by mode, not NREGS. · 787dc842
      	* caller-save.c (reg_save_code, reg_restore_code):  Index by mode, not
      	NREGS.
      	(insert_save, insert_restore): New parameter save_mode.
      	(init_caller_save): Update initialization of reg_save_code
      	and reg_restore_code.
      	(save_call_clobbered_regs):  Compute save_modes and update calls to
      	reg_save_code and reg_restore_code.
      	(insert_restore):  Unsignetize numbers; use save_modes to choose mode
      	of spill; update use of reg_restore_code.
      	(insert_save):  Likewise.
      	* i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
      	* c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
      	* regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
      
      From-SVN: r40120
      Jan Hubicka committed
  37. 13 Jun, 2000 1 commit
    • combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P instead of... · 02188693
              * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
              CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
              and hard-coded tests.
              (simplify_set): Likewise.
              (gen_lowpart_for_combine): Likewise.
              * emit-rtl.c (gen_lowpart_common): Likewise.
              * global.c (find_reg): Likewise.
              * local-alloc.c (find_free_reg): Likewise.
              * recog.c (register_operand): Likewise.
              * regclass.c (init_reg_sets_1): Likewise.
              (record_operand_costs, regclass): Likewise.
              * reload.c (push_reload): Likewise.
              * reload1.c (choose_reload_regs): Likewise.
              * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
              * local-alloc.c (struct qty): Rename changes_size to changes_mode.
              Update all references.
              * regs.h (struct reg_info_def): Likewise.
              (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
              * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
              (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
      
              * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
              (CLASS_CANNOT_CHANGE_MODE_P): New.
              * config/mips/mips.h: Likewise.
              * config/pa/pa32-regs.h: Likewise.
              * config/pa/pa64-regs.h: Likewise.
              * config/rs6000/rs6000.h: Likewise.
              * config/sh/sh.h: Likewise.
              * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
              (CLASS_CANNOT_CHANGE_MODE_P): New.
              * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
              * config/d30v/d30v.h: Likewise.
      
      From-SVN: r34526
      Richard Henderson committed
  38. 28 May, 2000 1 commit