David Edelsohn
859b9c1dcf
reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno, against FIRST_PSEUDO_REGISTER.
...
* reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
against FIRST_PSEUDO_REGISTER.
From-SVN: r77276
2004-02-04 17:35:46 -05:00
Jan Hubicka
66fd46b6c6
alias.c (record_set): Use hard_regno_nregs.
...
* 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
2004-02-02 00:17:18 +00:00
Jan Hubicka
98e5e08701
reload.c (get_secondary_mem): Fix updating of secondary_memlocs_elim_used.
...
* reload.c (get_secondary_mem): Fix updating of
secondary_memlocs_elim_used.
From-SVN: r76989
2004-01-30 20:42:24 +00:00
Jan Hubicka
048b0d2ef9
reload.c (secondary_memlocs_elim_used): New static variable.
...
* reload.c (secondary_memlocs_elim_used): New static variable.
(get_secondary_mem): Update it.
(find_reloads): Use it.
From-SVN: r76950
2004-01-30 11:28:37 +00:00
Ian Lance Taylor
7e3aa04196
re PR inline-asm/6162 (i386 asm reloader ice in reload_cse_simplify_operands)
...
PR inline-asm/6162
* reload.c (find_reloads): Only support one pair of commutative
operands.
From-SVN: r76886
2004-01-29 18:40:01 +00:00
Kazu Hirata
d9221e016b
alias.c, [...]: Update copyright.
...
* alias.c, basic-block.h, c-common.c, c-common.h,
c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
genautomata.c, genconditions.c, genemit.c, genflags.c,
gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
unwind.h, varray.c, varray.h: Update copyright.
From-SVN: r76302
2004-01-21 20:40:04 +00:00
Jan Hubicka
0bcf8261f4
Partial fix for PR opt/10776
...
Partial fix for PR opt/10776
* Makefile.in (reload.o): Include param.h
* params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
* reload.c: Include params.h.
(find_equiv_reg): Work limiting check.
* invoke.texi: Document.
From-SVN: r75679
2004-01-11 15:56:26 +00:00
J"orn Rennecke
69f38ab9fd
reload.c (reg_overlap_mentioned_for_reload_p): When looking at a PLUS in X...
...
* reload.c (reg_overlap_mentioned_for_reload_p):
When looking at a PLUS in X, avoid spuriously returning nonzero
when IN is a REG or another simple PLUS, or a MEM containing one.
* loop.c (loop_invariant_p): Amend comment about where new registers
might come from.
From-SVN: r74638
2003-12-15 17:42:43 +00:00
Richard Sandiford
8a89dbd242
re PR target/13186 ([PPC] Internal compiler error in reload.c)
...
PR target/13186
Revert all of the following patch, except the addition of
hook_bool_machine_mode_true:
2003-11-02 Richard Sandiford <rsandifo@redhat.com>
* Makefile.in (targhooks.o, reload.o): Update dependencies.
(GTFILES): Add targhooks.c.
(gt-targhooks.h): New rule; depend on s-gtype.
* target.h (direct_pool_load_p): New hook.
* target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
(TARGET_INITIALIZER): Include it.
* targhooks.h (default_direct_pool_load_p): Declare.
(hook_bool_machine_mode_true): Declare.
* targhooks.c: Include insn-config.h, recog.h, ggc.h and
gt-targhooks.h.
(pool_symbol): New variable.
(default_direct_pool_load_p): New function.
(hook_bool_machine_mode_true): New function.
* reload.c: Include target.h.
(find_reloads): If an alternative will force a constant into memory,
count an extra reload if constant pool symbols are not valid
addresses. If an alternative uses memory to move values between
registers, count the move as two reloads rather than one.
* config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
* doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
From-SVN: r74275
2003-12-04 09:11:19 +00:00
Ulrich Weigand
0422e94065
reload.c (find_reloads_address): Split addresses of type (plus (plus (reg) (reg)) (const_int)) only if...
...
* reload.c (find_reloads_address): Split addresses of type
(plus (plus (reg) (reg)) (const_int)) only if one register
is either a valid base register or else one of the stack
frame related registers (sp/fp/ap).
From-SVN: r74107
2003-12-01 16:17:32 +00:00
Andreas Krebbel
b04a1b3b0c
reload.c (find_reloads): Added missing type casts.
...
2003-11-19 Andreas Krebbel <krebbel1@de.ibm.com>
* reload.c (find_reloads): Added missing type casts.
From-SVN: r73748
2003-11-20 00:18:46 +00:00
Richard Sandiford
0938c9e8fb
Makefile.in (targhooks.o, reload.o): Update dependencies.
...
* Makefile.in (targhooks.o, reload.o): Update dependencies.
(GTFILES): Add targhooks.c.
(gt-targhooks.h): New rule; depend on s-gtype.
* target.h (direct_pool_load_p): New hook.
* target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
(TARGET_INITIALIZER): Include it.
* targhooks.h (default_direct_pool_load_p): Declare.
(hook_bool_machine_mode_true): Declare.
* targhooks.c: Include insn-config.h, recog.h, ggc.h and
gt-targhooks.h.
(pool_symbol): New variable.
(default_direct_pool_load_p): New function.
(hook_bool_machine_mode_true): New function.
* reload.c: Include target.h.
(find_reloads): If an alternative will force a constant into memory,
count an extra reload if constant pool symbols are not valid
addresses. If an alternative uses memory to move values between
registers, count the move as two reloads rather than one.
* config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
* doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
From-SVN: r73196
2003-11-02 09:34:54 +00:00
Richard Earnshaw
b1f9e3147f
re PR rtl-optimization/11271 ([arm-elf] regex.c ICEs for thumb multilib)
...
PR target/11271
* reload.c (find_reloads_address): Handle any register in
(PLUS (PLUS (REG) (REG)) (CONST_INT).
From-SVN: r73136
2003-10-31 11:37:20 +00:00
James E Wilson
3b6c3bb05d
Fix problem noticed by Dale Johannesen on the gcc list.
...
* recog.c (asm_operand_ok): Add missing break after case 'X'.
Change if statements to else if statements in default case.
(extract_constrain_insn_cached): Fix misspelling of constrain_operands
in comment.
(constrain_operands_cached): Likewise.
(constrain_operands): Change if statements to else if statements in
default case.
* reload.c (find_reloads): Likewise.
From-SVN: r73074
2003-10-29 17:40:48 -08:00
Ulrich Weigand
6357135a0e
reload.c (find_reloads_subreg_address): Use correct offset for paradoxical MEM subregs on big-endian targets.
...
* reload.c (find_reloads_subreg_address): Use correct offset for
paradoxical MEM subregs on big-endian targets.
From-SVN: r72153
2003-10-06 15:56:07 +00:00
Kaveh R. Ghazi
703ad42b4b
alias.c [...]: Remove unnecessary casts.
...
* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c
c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in
c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c
collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c
cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c
cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c
dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c
fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c
gcse.c genattr.c genattrtab.c genautomata.c genconditions.c
genemit.c genextract.c genoutput.c genrecog.c gensupport.c
ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c
integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c
loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c
postreload.c prefix.c print-tree.c protoize.c ra-build.c
ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c
regmove.c regrename.c reload.c reload1.c reorg.c resource.c
sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c
simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c
tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c
varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary
casts.
From-SVN: r69587
2003-07-19 14:47:15 +00:00
Andreas Jaeger
0c20a65f04
jump.c: Convert prototypes to ISO C90.
...
* 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
2003-07-06 11:56:09 +02:00
Kazu Hirata
e0bb17a83f
basic-block.h: Fix comment typos.
...
* basic-block.h: Fix comment typos.
* bb-reorder.c: Likewise.
* c-format.c: Likewise.
* cfgcleanup.c: Likewise.
* cfghooks.h: Likewise.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cfgrtl.c: Likewise.
* cgraph.h: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* convert.c: Likewise.
* dbxout.c: Likewise.
* df.c: Likewise.
* df.h: Likewise.
* diagnostic.c: Likewise.
* dwarf2out.c: Likewise.
* et-forest.h: Likewise.
* flow.c: Likewise.
* fold-const.c: Likewise.
* function.h: Likewise.
* gcov-io.h: Likewise.
* gcov.c: Likewise.
* gcse.c: Likewise.
* genautomata.c: Likewise.
* ggc-common.c: Likewise.
* ggc-page.c: Likewise.
* loop-unroll.c: Likewise.
* loop-unswitch.c: Likewise.
* loop.c: Likewise.
* mips-tfile.c: Likewise.
* optabs.c: Likewise.
* ra-build.c: Likewise.
* ra-colorize.c: Likewise.
* ra-rewrite.c: Likewise.
* ra.h: Likewise.
* regmove.c: Likewise.
* reload.c: Likewise.
* rtlanal.c: Likewise.
* sched-ebb.c: Likewise.
* sched-int.h: Likewise.
* sched-vis.c: Likewise.
* sreal.c: Likewise.
* ssa-ccp.c: Likewise.
* ssa.c: Likewise.
* toplev.c: Likewise.
* tree-inline.c: Likewise.
* value-prof.c: Likewise.
* value-prof.h: Likewise.
From-SVN: r68770
2003-07-01 12:18:01 +00:00
James E Wilson
bd235d86cd
reload.c (find_reloads): Change push_reloads to push_reload in comment.
...
* reload.c (find_reloads): Change push_reloads to push_reload in
comment.
* reload1.c (eliminate_regs): Likewise.
(dump_needs): Delete prototype for deleted function.
From-SVN: r68691
2003-06-29 20:11:48 -07:00
Hans-Peter Nilsson
37706dd19d
defaults.h (REGISTER_MOVE_COST): Define default here.
...
* defaults.h (REGISTER_MOVE_COST): Define default here.
* regclass.c: Don't define default REGISTER_MOVE_COST here.
* reload.c, reload1.c: Ditto.
From-SVN: r68567
2003-06-27 12:40:13 +00:00
J"orn Rennecke
35d6034bcb
reload.c (can_reload_into): New function.
...
* reload.c (can_reload_into): New function.
(push_reload): Use it.
From-SVN: r68542
2003-06-26 21:07:23 +01:00
Kazu Hirata
6356f89288
ChangeLog: Follow spelling conventions.
...
* ChangeLog: Follow spelling conventions.
* ChangeLog.2: Likewise.
* c-decl.c: Likewise.
* cfgloop.h: Likewise.
* cgraph.c: Likewise.
* coverage.c: Likewise.
* cppcharset.c: Likewise.
* cpphash.h: Likewise.
* cpplex.c: Likewise.
* cpplib.c: Likewise.
* dbxout.c: Likewise.
* df.c: Likewise.
* dwarf2out.c: Likewise.
* dwarfout.c: Likewise.
* emit-rtl.c: Likewise.
* explow.c: Likewise.
* gcov-io.c: Likewise.
* gcov-io.h: Likewise.
* gcov.c: Likewise.
* gengtype.c: Likewise.
* ggc.h: Likewise.
* opts.c: Likewise.
* real.c: Likewise.
* reload.c: Likewise.
* stmt.c: Likewise.
From-SVN: r67849
2003-06-12 19:01:08 +00:00
DJ Delorie
57458e8a15
reload.c (find_reloads): Also check that all of a multi-reg value is in the class.
...
* reload.c (find_reloads): Also check that all of a multi-reg
value is in the class.
From-SVN: r66366
2003-05-01 20:53:45 -04:00
Jan Hubicka
04c5580f37
emit-rtl.c (subreg_hard_regno): Check that register is representable.
...
* emit-rtl.c (subreg_hard_regno): Check that register is representable.
* reload.c (reload_inner_reg_of_subreg): When register is not
representable, reload the whole thing.
(find_reloads): Likewsie.
* rtlanal.c (subreg_representable_p): New function.
* profile.c (compute_branch_probabilities): Cleanup sanity checking;
allow negative probabilities for edges from the call to exit.
(branch_prob): Do not add fake edges for functions that may return twice
From-SVN: r65757
2003-04-17 23:31:41 +00:00
Eric Botcazou
27e484bc57
re PR target/7784 ([Sparc] ICE in extract_insn, at recog.c:2148)
...
PR target/7784
* reload.c (find_reloads_address): Handle
(PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
all base registers.
From-SVN: r64887
2003-03-26 07:48:15 +00:00
Alexandre Oliva
f12448c818
reload.c (reload_adjust_reg_for_mode): New function.
...
* reload.c (reload_adjust_reg_for_mode): New function.
(subst_reloads): Call it.
(operands_match_p): Adjust registers using HARD_REGNO_NREGS.
* reload.h (reload_adjust_reg_for_mode): Declare.
* reload1.c (emit_input_reload_insns, emit_output_reload_insns):
Call it.
From-SVN: r63766
2003-03-04 05:54:39 +00:00
Ulrich Weigand
9537511bfa
reload.c (find_reloads): Do not use the mode specified in the insn pattern as reload mode for address...
...
* reload.c (find_reloads): Do not use the mode specified in the insn
pattern as reload mode for address operands. Do not generate optional
reloads for operands where a mandatory reload was already pushed.
From-SVN: r62410
2003-02-04 22:47:23 +00:00
Ulrich Weigand
112f7223d1
* reload.c: Revert 2003-01-31 change.
...
From-SVN: r62249
2003-02-01 17:14:32 +00:00
Ulrich Weigand
2f278625ee
reload.c (find_reloads): Do not use the mode specified in the insn pattern as reload mode for address...
...
gcc/
* reload.c (find_reloads): Do not use the mode specified in the insn
pattern as reload mode for address operands. Do not generate optional
reloads for operands where a mandatory reload was already pushed.
Generate optional reloads only in the final pass though find_reloads.
(have_replacement_p): New function.
gcc/testsuite/
* gcc.dg/20030129-1.c: New test.
From-SVN: r62225
2003-02-01 01:01:38 +00:00
Jan Hubicka
b0c42aed31
loop.c (emit_prefetch_instructions): Do conversion at right place in RTL chain.
...
* loop.c (emit_prefetch_instructions): Do conversion at right place in
RTL chain.
* combine.c (simplify_set): Reverse order of ragumetns to
REG_CANNOT_CHANGE_MODE_P
* df.c (df_def_record_1): Likewise.
* recog.c (register_operand): Likewise.
* simplify-rtx.c (simplify_subreg): Likewise.
* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
CANNOT_CHANGE_MODE_CLASS.
* regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
Likewise.
* reload.c (push_reload): Likewise.
* alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* mips-protos.h (mips_cannot_change_mode_class): Update prototype.
* mips.c (mips_cannot_change_mode_class): Update.
* pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
* sh-protos.h (sh_cannot_change_mode_class): Update prototype.
* sh.c (sh_cannot_change_mode_class): Update.
* i386.h (CANNOT_CHANGE_MODE_CLASS): New.
* tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
From-SVN: r62212
2003-01-31 23:34:17 +00:00
Ulrich Weigand
acf9fa5f14
reload.c (maybe_memory_address_p): New function.
...
gcc/
* reload.c (maybe_memory_address_p): New function.
(find_reloads_address): Use it instead of memory_address_p.
gcc/testsuite/
* gcc.dg/20030123-1.c: New test.
From-SVN: r61805
2003-01-25 23:57:30 +00:00
Kaveh R. Ghazi
fc55537052
arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned warning.
...
* arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
warning.
* emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
init_emit_once): Likewise.
* flow.c (mark_regs_live_at_end, calculate_global_regs_live):
Likewise.
* function.c (assign_stack_temp_for_type): Likewise.
* loop.c (loop_invariant_p): Likewise.
* recog.c (push_operand): Likewise.
* regclass.c (init_reg_sets_1): Likewise.
* reload.c (update_auto_inc_notes): Likewise.
* reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
* stmt.c (expand_asm_operands): Likewise.
* stor-layout.c (start_record_layout): Likewise.
cp:
* class.c (layout_virtual_bases): Avoid signed/unsigned warning.
java:
* jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
warning.
From-SVN: r61389
2003-01-16 15:13:33 +00:00
Joern Rennecke
58b23af855
Add 2003 copyright notices for constraints string patch, also 2002 notice
...
for genoutput.c .
From-SVN: r61258
2003-01-13 21:37:13 +00:00
J"orn Rennecke
9748887028
defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
...
* defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
(EXTRA_ADDRESS_CONSTRAINT): Likewise.
(CONSTRAINT_LEN): Provide default definition.
(CONST_OK_FOR_CONSTRAINT_P): Likewise.
(CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
(EXTRA_CONSTRAINT_STR): Likewise.
(REG_CLASS_FROM_CONSTRAINT): Define.
* genoutput.c (check_constraint_len, constraint_len): New functions.
(validate_insn_alternatives): Check CONSTRAINT_LEN for each
constraint / modifier.
(gen_insn): Call check_constraint_len.
* local-alloc.c (block_alloc): Update to use new macros / pass
second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
* ra-build.c (handle_asm_insn): Likewise.
* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
(constrain_operands, peep2_find_free_register): Likewise.
* regclass.c (record_operand_costs, record_reg_classes): Likewise.
* regmove.c (find_matches): Likewise.
* reload.c (push_secondary_reload, find_reloads): Likewise.
(alternative_allows_memconst): Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.
(reload_cse_simplify_operands): Likewise.
* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
* doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
(CONST_OK_FOR_CONSTRAINT_P): Likewise.
(CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
(EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
* config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
From-SVN: r61119
2003-01-09 17:28:49 +00:00
Kazu Hirata
14b493d64d
regmove.c: Fix comment typos.
...
* regmove.c: Fix comment typos.
* reload.c: Likewise.
* reload1.c: Likewise.
* resource.c: Likewise.
* rtl.def: Likewise.
* rtl.h: Likewise.
* rtlanal.c: Likewise.
* sched-deps.c: Likewise.
* sched-rgn.c: Likewise.
* sibcall.c: Likewise.
* simplify-rtx.c: Likewise.
* ssa-ccp.c: Likewise.
* ssa.c: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* system.h: Likewise.
* tlink.c: Likewise.
* toplev.c: Likewise.
* tracer.c: Likewise.
* tree-inline.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* unroll.c: Likewise.
* varasm.c: Likewise.
From-SVN: r60473
2002-12-24 08:30:34 +00:00
Zack Weinberg
4977bab6ed
Merge basic-improvements-branch to trunk
...
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Kazu Hirata
09da15320b
c-decl.c: Fix a comment typo.
...
* c-decl.c: Fix a comment typo.
* cfg.c: Likewise.
* cfgcleanup.c: Likewise.
* cfglayout.c: Likewise.
* cfgrtl.c: Likewise.
* c-typeck.c: Likewise.
* dominance.c: Likewise.
* dwarf2asm.c: Likewise.
* dwarfout.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* flow.c: Likewise.
* function.c: Likewise.
* gcc.c: Likewise.
* genautomata.c: Likewise.
* integrate.c: Likewise.
* loop.c: Likewise.
* loop.h: Likewise.
* output.h: Likewise.
* profile.c: Likewise.
* ra.h: Likewise.
* reload1.c: Likewise.
* reload.c: Likewise.
* sched-rgn.c: Likewise.
* stmt.c: Likewise.
* tree.h: Likewise.
* vmsdbgout.c: Likewise.
From-SVN: r60085
2002-12-13 00:17:22 +00:00
Ulrich Weigand
3ba2436a67
recog.c (constrain_operands): Prefer exact match over reloadable EXTRA_MEMORY_CONSTRAINT or...
...
* recog.c (constrain_operands): Prefer exact match over reloadable
EXTRA_MEMORY_CONSTRAINT or EXTRA_ADDRESS_CONSTRAINT.
* reload.c (find_reloads): Always reload EXTRA_ADDRESS_CONSTRAINT
operands in Pmode.
From-SVN: r59308
2002-11-20 17:05:08 +00:00
Aldy Hernandez
cff9f8d509
hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.
...
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
2002-11-04 16:58:39 +00:00
Kazu Hirata
3eae4643be
combine.c: Fix comment formatting.
...
* combine.c: Fix comment formatting.
* loop.c: Likewise.
* real.c: Likewise.
* regclass.c: Likewise.
* regmove.c: Likewise.
* regrename.c: Likewise.
* reg-stack.c: Likewise.
* reload1.c: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* unroll.c: Likewise.
From-SVN: r58583
2002-10-27 14:47:55 +00:00
Richard Henderson
3bd216f201
reload.c (find_reloads_toplev): Mode of X is not important when simplifying subregs of constants.
...
* reload.c (find_reloads_toplev): Mode of X is not important
when simplifying subregs of constants.
* g++.dg/opt/reload1.C: New.
From-SVN: r58490
2002-10-24 02:02:24 -07:00
Jan Hubicka
4bf1d92ee0
re PR rtl-optimization/7630 (gcc 3.2 breaks on Mozilla 1.0's JS sources with -march=pentium4)
...
PR opt/7630
* reload.c (reload_inner_reg_of_subreg): New argument output;
(push_reload): Update call.
From-SVN: r58248
2002-10-17 15:13:10 +00:00
Jan Hubicka
344b78b848
reload.c (push_reload): Handle subregs and secondary memory.
...
* reload.c (push_reload): Handle subregs and secondary memory.
* reload1.c (gen_reload): Likewise.
* jump.c (reg_or_subregno): New function.
* rtl.h (reg_or_subregno): Declare
* unroll.c (find_splittable_givs): Handle subregs.
From-SVN: r57663
2002-09-30 19:35:17 +00:00
Kazu Hirata
40f0365880
c-common.h: Follow spelling conventions.
...
* c-common.h: Follow spelling conventions.
* cpplex.c: Likewise.
* cpplib.h: Likewise.
* gthr-dce.h: Likewise.
* gthr-posix.h: Likewise.
* optabs.c: Likewise.
* output.h: Likewise.
* profile.c: Likewise.
* protoize.c: Likewise.
* ra-rewrite.c: Likewise.
* real.c: Likewise.
* recog.c: Likewise.
* reg-stack.c: Likewise.
* regclass.c: Likewise.
* regmove.c: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* reload1.c: Likewise.
* reorg.c: Likewise.
* resource.c: Likewise.
* rtl.h: Likewise.
* rtlanal.c: Likewise.
From-SVN: r57555
2002-09-26 22:25:14 +00:00
Ulrich Weigand
6cabe79eab
reload.c (dup_replacements): New function.
...
* reload.c (dup_replacements): New function.
(find_reloads): Use it to duplicate replacements at the top level
of match_dup operands.
From-SVN: r57542
2002-09-26 18:21:10 +00:00
Alan Modra
32ff9c742f
reload.c (find_reloads <p constraint>): Pass operand_mode to find_reloads_address.
...
* reload.c (find_reloads <p constraint>): Pass operand_mode to
find_reloads_address.
From-SVN: r56946
2002-09-08 18:27:24 +09:30
Kaveh R. Ghazi
f7043461db
loop.c (scan_loop, [...]): Cast to avoid signed/unsigned warnings.
...
* loop.c (scan_loop, move_movables, count_one_set): Cast to avoid
signed/unsigned warnings.
* regclass.c (init_reg_sets_1, choose_hard_reg_mode,
record_reg_classes): Likewise.
* reload.c (reload_inner_reg_of_subreg, push_reload,
find_reloads_address_1): Likewise.
From-SVN: r56350
2002-08-15 17:44:10 +00:00
Ulrich Weigand
ccfc6cc8fa
reload.c (find_reloads): Handle constraint letters marked by EXTRA_ADDRESS_CONSTRAINT and...
...
* reload.c (find_reloads): Handle constraint letters marked by
EXTRA_ADDRESS_CONSTRAINT and EXTRA_MEMORY_CONSTRAINT.
(alternative_allows_memconst): Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.
* recog.c (asm_operand_ok, preprocess_constraints,
constrain_operands): Likewise.
* regclass.c (record_operand_costs, record_reg_classes): Likewise.
* local-alloc.c (block_alloc, requires_inout): Likewise.
* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
* defaults.h (EXTRA_MEMORY_CONSTRAINT): Provide a default.
(EXTRA_ADDRESS_CONSTRAINT): Likewise.
* doc/tm.texi: Document these two new target macros.
* config/s390/s390.c (s390_expand_plus_operand): Accept already
valid operands.
(q_constraint): New function.
config/s390/s390-protos.h (q_constraint): Declare it.
config/s390/s390.h (EXTRA_CONSTRAINT): Use it.
(EXTRA_MEMORY_CONSTRAINT): New macro.
* config/s390/s390.md: Throughout the machine description,
replace all instances of the constraint combinations 'Qo'
or 'oQ' with simply 'Q'.
From-SVN: r56291
2002-08-14 10:04:51 +00:00
J"orn Rennecke
bf7cd75401
recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
...
* recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
(constrain_operands): Likewise.
* regclass.c (record_reg_classes): Likewise.
* reload.c (find_reloads): Likewise.
* doc/md.texi: Likewise.
From-SVN: r55689
2002-07-23 21:51:00 +01:00
J"orn Rennecke
451f86fdbc
reload.c (find_reloads_toplev): Use simplify_gen_subreg.
...
gcc:
* reload.c (find_reloads_toplev): Use simplify_gen_subreg.
* simplify-rtx.c (simplify_subreg): When converting to a non-int
mode, try to convert to an integer mode of matching size first.
gcc/testsuite:
* gcc.c-torture/compile/simd-4.c: New test.
From-SVN: r55687
2002-07-23 21:06:46 +01:00