aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
AgeCommit message (Collapse)AuthorFilesLines
2003-12-15reload.c (reg_overlap_mentioned_for_reload_p): When looking at a PLUS in X...J"orn Rennecke1-2/+16
* 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-04re PR target/13186 ([PPC] Internal compiler error in reload.c)Richard Sandiford1-21/+0
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-01reload.c (find_reloads_address): Split addresses of type (plus (plus (reg) ↵Ulrich Weigand1-0/+18
(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-11-20reload.c (find_reloads): Added missing type casts.Andreas Krebbel1-2/+2
2003-11-19 Andreas Krebbel <krebbel1@de.ibm.com> * reload.c (find_reloads): Added missing type casts. From-SVN: r73748
2003-11-02Makefile.in (targhooks.o, reload.o): Update dependencies.Richard Sandiford1-0/+21
* 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-10-31re PR rtl-optimization/11271 ([arm-elf] regex.c ICEs for thumb multilib)Richard Earnshaw1-2/+0
PR target/11271 * reload.c (find_reloads_address): Handle any register in (PLUS (PLUS (REG) (REG)) (CONST_INT). From-SVN: r73136
2003-10-29Fix problem noticed by Dale Johannesen on the gcc list.James E Wilson1-7/+8
* 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-06reload.c (find_reloads_subreg_address): Use correct offset for paradoxical ↵Ulrich Weigand1-1/+8
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-07-19alias.c [...]: Remove unnecessary casts.Kaveh R. Ghazi1-2/+2
* 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-06jump.c: Convert prototypes to ISO C90.Andreas Jaeger1-232/+115
* 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-01basic-block.h: Fix comment typos.Kazu Hirata1-1/+1
* 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-06-29reload.c (find_reloads): Change push_reloads to push_reload in comment.James E Wilson1-1/+1
* 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-27defaults.h (REGISTER_MOVE_COST): Define default here.Hans-Peter Nilsson1-4/+0
* 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-26reload.c (can_reload_into): New function.J"orn Rennecke1-1/+55
* reload.c (can_reload_into): New function. (push_reload): Use it. From-SVN: r68542
2003-06-12ChangeLog: Follow spelling conventions.Kazu Hirata1-1/+1
* 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-05-01reload.c (find_reloads): Also check that all of a multi-reg value is in the ↵DJ Delorie1-1/+11
class. * reload.c (find_reloads): Also check that all of a multi-reg value is in the class. From-SVN: r66366
2003-04-17emit-rtl.c (subreg_hard_regno): Check that register is representable.Jan Hubicka1-20/+19
* 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-03-26re PR target/7784 ([Sparc] ICE in extract_insn, at recog.c:2148)Eric Botcazou1-21/+14
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-04reload.c (reload_adjust_reg_for_mode): New function.Alexandre Oliva1-3/+23
* 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-02-04reload.c (find_reloads): Do not use the mode specified in the insn pattern ↵Ulrich Weigand1-8/+13
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-01* reload.c: Revert 2003-01-31 change.Ulrich Weigand1-38/+13
From-SVN: r62249
2003-02-01reload.c (find_reloads): Do not use the mode specified in the insn pattern ↵Ulrich Weigand1-13/+38
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-01-31loop.c (emit_prefetch_instructions): Do conversion at right place in RTL chain.Jan Hubicka1-6/+2
* 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-25reload.c (maybe_memory_address_p): New function.Ulrich Weigand1-2/+24
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-16arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned warning.Kaveh R. Ghazi1-1/+1
* 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-13Add 2003 copyright notices for constraints string patch, also 2002 noticeJoern Rennecke1-1/+1
for genoutput.c . From-SVN: r61258
2003-01-09defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.J"orn Rennecke1-43/+67
* 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
2002-12-24regmove.c: Fix comment typos.Kazu Hirata1-1/+1
* 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-16Merge basic-improvements-branch to trunkZack Weinberg1-3/+5
From-SVN: r60174
2002-12-13c-decl.c: Fix a comment typo.Kazu Hirata1-2/+2
* 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-11-20recog.c (constrain_operands): Prefer exact match over reloadable ↵Ulrich Weigand1-0/+4
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-04hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.Aldy Hernandez1-19/+15
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-10-27combine.c: Fix comment formatting.Kazu Hirata1-1/+1
* 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-24reload.c (find_reloads_toplev): Mode of X is not important when simplifying ↵Richard Henderson1-2/+1
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-17re PR rtl-optimization/7630 (gcc 3.2 breaks on Mozilla 1.0's JS sources with ↵Jan Hubicka1-5/+8
-march=pentium4) PR opt/7630 * reload.c (reload_inner_reg_of_subreg): New argument output; (push_reload): Update call. From-SVN: r58248
2002-09-30reload.c (push_reload): Handle subregs and secondary memory.Jan Hubicka1-6/+7
* 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-26c-common.h: Follow spelling conventions.Kazu Hirata1-5/+5
* 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-26reload.c (dup_replacements): New function.Ulrich Weigand1-3/+21
* 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-08reload.c (find_reloads <p constraint>): Pass operand_mode to ↵Alan Modra1-1/+1
find_reloads_address. * reload.c (find_reloads <p constraint>): Pass operand_mode to find_reloads_address. From-SVN: r56946
2002-08-15loop.c (scan_loop, [...]): Cast to avoid signed/unsigned warnings.Kaveh R. Ghazi1-6/+6
* 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-14reload.c (find_reloads): Handle constraint letters marked by ↵Ulrich Weigand1-2/+46
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-07-23recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.J"orn Rennecke1-1/+4
* 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-23reload.c (find_reloads_toplev): Use simplify_gen_subreg.J"orn Rennecke1-39/+4
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-06-13pass MEM reference to find_reloads_addressAlan Lehotsky1-5/+5
From-SVN: r54604
2002-06-13* reload.c (find_valid_class): Fix thinko in my previous patch.Jan Hubicka1-3/+8
From-SVN: r54589
2002-05-26reload.c (find_valid_class): Accept new argument DEST, choose class accordingly.Jan Hubicka1-7/+20
* reload.c (find_valid_class): Accept new argument DEST, choose class accordingly. (push_reload): Update callers. From-SVN: r53894
2002-05-09read-rtl.c: Fix formatting.Kazu Hirata1-2/+2
* read-rtl.c: Fix formatting. * real.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reload1.c: Likewise. * reload.c: Likewise. * resource.c: Likewise. * rtlanal.c: Likewise. * rtl.c: Likewise. * rtl-error.c: Likewise. From-SVN: r53313
2002-05-01* reload.c (find_reloads, case 'p'): Set BADOP to 0.Richard Kenner1-0/+1
From-SVN: r53005
2002-03-10reload.c (copy_replacements_1): New.Richard Henderson1-32/+54
* reload.c (copy_replacements_1): New. (copy_replacements): Use it to recurse through the rtx. From-SVN: r50552
2002-03-03emit-rtl.c, [...]: Remove all #ifndef REAL_ARITHMETIC blocks...Zack Weinberg1-12/+0
* emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c, print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c, tree.c, config/m68k/m68k.c, f/com.c, f/target.h, java/expr.c, java/jcf-parse.c, java/lex.c: Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef REAL_ARITHMETIC blocks unconditional. Delete some further #ifdef blocks predicated on REAL_ARITHMETIC. * flags.h, toplev.c: Delete remaining references to flag_pretend_float. * doc/invoke.texi: Remove documentation of -fpretend-float. * doc/tm.texi: Describe the various REAL_* macros as provided by real.h, not by the target configuration files. * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h, config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h, config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h, config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h, config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h, config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h, config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Do not define, undefine, or mention in comments any of REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF, REAL_VALUE_ISNAN, REAL_VALUE_ISINF, REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE, REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL, REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS, REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX, REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT, REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE, REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT. From-SVN: r50263