summaryrefslogtreecommitdiff
path: root/gcc/reload1.c
Commit message (Collapse)AuthorAgeFilesLines
* decl.c, [...]: Don't use the PTR macro.Kaveh R. Ghazi2003-06-161-3/+3
| | | | | | | | | | | | | | | | | | | cp: * cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR macro. gcc: * bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c, config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c, dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c, function.c, gcc.c, genoutput.c, gensupport.c, global.c, haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c, loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c, read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c, stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use the PTR macro. From-SVN: r68043
* tracer.c: Remove duplication declaration.Andreas Jaeger2003-06-161-3/+0
| | | | | | | | | | | | | | | | | | | | | * tracer.c: Remove duplication declaration. * toplev.c: Remove extra declaration of decode_d_option. * ssa.c: Remove duplicate declaration. * sreal.c: Remove extra declaration of dump_sreal. * reload1.c: Remove duplicate declarations. * integrate.c: Remove extra declaration of set_decl_abstract_flags. * flow.c: Remove extra declaration of dump_flow_info. * alias.c: Remove extra declaration of get_addr. From-SVN: r68006
* gcse.c (fis_get_condition): Make it a global function.Kazu Hirata2003-06-121-0/+24
| | | | | | | | * gcse.c (fis_get_condition): Make it a global function. * reload1.c (reload_cse_move2add): Detect implicit sets. * rtl.h: Add a prototype for fis_get_condition. From-SVN: r67814
* re PR rtl-optimization/8812 ([avr] Registers allocated for two uses at once)James E Wilson2003-06-101-5/+18
| | | | | | | | PR target/8812 * reload1.c (choose_reload_regs): For equiv reg, add loop over all hard regs for reload_reg_used_at_all and reg_class_contents checks. From-SVN: r67751
* re PR inline-asm/10890 (ICE in merge_assigned_reloads building Linux 2.4.2x ↵James E Wilson2003-06-061-3/+5
| | | | | | | | | | sched.c) PR inline-asm/10890 * reload1.c (merge_assigned_reloads): Abort only if two reloads have different in fields. From-SVN: r67577
* reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's patch.Alexandre Oliva2003-05-111-9/+3
| | | | | | | * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's patch. From-SVN: r66677
* reload1.c (reload_cse_move2add): Don't turn an implicit truncation into a ↵Alexandre Oliva2003-05-091-4/+17
| | | | | | | | | self-set in the narrow mode. * reload1.c (reload_cse_move2add): Don't turn an implicit truncation into a self-set in the narrow mode. From-SVN: r66638
* emit-rtl.c (last_call_insn, [...]): New functions.Olivier Hainque2003-05-031-11/+15
| | | | | | | | | | | | | | | | | | | | | * emit-rtl.c (last_call_insn, add_function_usage_to): New functions. * rtl.h (last_call_insn, add_function_usage_to): New prototypes. * builtins.c (expand_builtin_apply): Use the new emit-rtl functions. * calls.c (emit_call_1): Likewise. (expand_call): For calls initializing constant memory, replace emission of standalone mem /u clobber with function usage entry. * expr.c (emit_block_move_via_libcall): Likewise. * cse.c (count_reg_usage, case EXPR_LIST): New case. * flow.c (propagate_one_insn): Pass entire operand of CALL_INSN_FUNCTION_USAGE to mark_used_regs. * integrate.c (try_constants): For CALL_INSNs, substitute constants within the FUNCTION_USAGE also. * loop.c (prescan_loop): Note clobbers of const mem mentioned in FUNCTION_USAGE lists. * reload1.c (replace_pseudos_in): Renamed. (reload): Use it for clobbers surviving until the end of the reload. From-SVN: r66429
* * reload1.c (reg_set_luid): Fix a comment typo.Kazu Hirata2003-04-271-1/+1
| | | | From-SVN: r66137
* * reload1.c: Revert my previous patch on 2002-04-17.Kazu Hirata2003-04-181-34/+0
| | | | From-SVN: r65790
* reload1.c (move2add_last_cc0): New.Kazu Hirata2003-04-171-0/+34
| | | | | | | | * reload1.c (move2add_last_cc0): New. (reload_cse_move2add): Detect implicit sets. (move2add_note_store): Notice a store into cc0. From-SVN: r65754
* reload1.c (reload_cse_noop_set_p): Return false if mode of SET_DEST is not ↵Alexandre Oliva2003-04-171-0/+3
| | | | | | | | | | | | | | | | the same as that returned by... * reload1.c (reload_cse_noop_set_p): Return false if mode of SET_DEST is not the same as that returned by... * cselib.h (cselib_reg_set_mode): ... new function. * cselib.c (cselib_reg_set_mode): Define it. (REG_VALUES): Document semantics of first element as set mode. (cselib_subst_to_values): Skip first element if ELT is NULL. (cselib_lookup): Likewise. Insert past the first element. (cselib_invalidate_regno): NULLify first element. (cselib_record_set): Set first element. From-SVN: r65713
* optabs.c: Comment that gen_add2_insn and others may actually return emitted ↵Alexandre Oliva2003-04-091-5/+19
| | | | | | | | | | | | insns... * optabs.c: Comment that gen_add2_insn and others may actually return emitted insns, if the gen functions turn out to return emitted insns. * reload1.c (reload_cse_move2add): Cope with emitted insns from gen_add2_insn. From-SVN: r65400
* * reload1.c (reload_cse_move2add): Fix a comment typo.Kazu Hirata2003-03-301-1/+1
| | | | From-SVN: r65041
* reload1.c (reload_as_needed): Allow a USE in asm reloads.Alan Modra2003-03-291-0/+1
| | | | | | | | * reload1.c (reload_as_needed): Allow a USE in asm reloads. * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment. From-SVN: r64991
* reload1.c (choose_reload_regs): Use && instead of || with ↵Glen Nakamura2003-03-151-1/+1
| | | | | | | | | | | REG_CANNOT_CHANGE_MODE_P condition. 2003-03-15 Glen Nakamura <glen@imodulo.com> * reload1.c (choose_reload_regs): Use && instead of || with REG_CANNOT_CHANGE_MODE_P condition. From-SVN: r64399
* reload.c (reload_adjust_reg_for_mode): New function.Alexandre Oliva2003-03-041-5/+5
| | | | | | | | | | | * 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
* * reload1.c (reload_cse_move2add): Remove variable success.Kazu Hirata2003-03-031-7/+5
| | | | From-SVN: r63717
* reload1.c (sext_for_mode): Remove.Kazu Hirata2003-02-281-35/+17
| | | | | | | | | | | * reload1.c (sext_for_mode): Remove. (reload_cse_move2add): Use trunc_int_for_mode instead of sext_for_mode. (move2add_note_store): Likewise. Reset register information if we see a set in non-integer mode. From-SVN: r63540
* reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS does not reduce ↵Kazu Hirata2003-02-251-1/+36
| | | | | | | | | the cost of SET. * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS does not reduce the cost of SET. From-SVN: r63426
* re PR rtl-optimization/7702 (gcc-3.2 optimization problem on a DEC alpha ↵Falk Hueffner2003-02-141-1/+7
| | | | | | | | | | under OSF1) PR optimization/7702 * reload1.c (reload_cse_simplify_set): Honor CANNOT_CHANGE_MODE_CLASS. From-SVN: r62921
* reload1.c (first_label_num): New.John David Anglin2003-02-111-27/+23
| | | | | | | | | * reload1.c (first_label_num): New. (reload): Index offsets_known_at and offsets_at using difference of label number and first label number. Don't use offset pointers. (set_label_offsets, set_initial_label_offsets): Likewise. From-SVN: r62672
* cfgrtl.c (verify_flow_info): Use control_flow_insn_p.Jan Hubicka2003-02-091-0/+8
| | | | | | | | * cfgrtl.c (verify_flow_info): Use control_flow_insn_p. * reload1.c (fixup_abnormal_edges): Split basic blocks when EH edges possibly got duplicated. From-SVN: r62599
* [multiple changes]Richard Henderson2003-02-011-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-01 Richard Henderson <rth@redhat.com> * optabs.c (expand_unop): Use word_mode for outmode of bit scaners. * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change return type to Wtype. * libgcc-std.ver (GCC_3.4): Fix inheritance. * config/i386/i386.md (ffssi2): Use nonimmediate_operand for expander input constraint. 2003-02-01 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and OTI_parity. (clz_optab, ctz_optab, popcount_optab, parity_optab): New. * optabs.c (widen_clz, expand_parity): New. (expand_unop): Handle clz and parity. Hardcode SImode as outmode for libcalls to clz, ctz, popcount, and parity. (init_optabs): Init clz_optab, ctz_optab, popcount_optab and parity_optab, and set up libfunc handlers. * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2 __paritydi2, __popcount_tab): New. * libgcc2.h: Declare them. * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c. * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab and parity_optab. * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New. * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT, BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL, BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL, BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL, BUILT_IN_PARITYLL): New. * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs and add optab argument. (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*. * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New. * expr.c (expand_expr): Handle them. * fold-const.c (tree_expr_nonnegative_p): Likewise. * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New. * reload1.c (eliminate_regs): Handle them. (elimination_effects): Likewise. * function.c (instantiate_virtual_regs_1): Likewise * genattrtab.c (check_attr_value): Likewise. * simplify-rtx.c (simplify_unary_operation): Likewise. * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR. * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY. (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY. * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New. * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to __builtin_arm_clz. * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move... * mklibgcc.in (lib2funcs): ...here and merge. Add new members. * doc/extend.texi (Other Builtins): Add new builtins. * doc/md.texi (Standard Names): Add new patterns. From-SVN: r62252
* emit-rtl.c (reg_attrs_htab): New static variable.Jan Hubicka2003-01-241-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * emit-rtl.c (reg_attrs_htab): New static variable. (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static functions. (reg_rtx): Do not maintain regno_decl. (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx, set_mem_attrs_from_reg): New global function. (init_emit): Do not initialize regno_decl. (init_emit_once): initialize reg_attrs_htab. * final.c (alter_subreg): Do not replace REG by SUBREG. (gen_mem_expr_from_op): Improve output. (output_asm_operands): Likewise. * function.c (assign_params): Do not set REGNO_DECL. * function.h (struct function): Kill regno_decl. (REGNO_DECL): Kill. * gengtype.c (adjust_field_rtx_def): Handle new field of reg. * print_rtl.c (print_rtx): Output REG information. * regclass.c (reg_scan_mark_refs): Update attrs. * reload1.c (alter_reg): Likewise. * simplify_rtx.c (simplify_subreg): Likewise. * stmt.c (expand_decl): Likewise. * rtl.def (REG): Add new field. * rtl.h (struct reg_attrs): New. (rtunion_def): At rtreg. (X0MEMATTR): Add checking. (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro. (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset): Declare. * tree.h (SET_DECL_RTL): Call set_decl_rtl. From-SVN: r61741
* Make-lang.in (f/target.o): Depend on toplev.h.Kaveh R. Ghazi2003-01-161-1/+1
| | | | | | | | | | | | | | | | | | f: * Make-lang.in (f/target.o): Depend on toplev.h. * target.c: Include toplev.h. java: * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H). * jcf-parse.c: Include tm_p.h. gcc: * ra-colorize.c (colorize_one_web): Initialize variable. * regmove.c (fixup_match_1): Likewise. * reload1.c (reload_as_needed): Likewise. * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast. From-SVN: r61394
* arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned warning.Kaveh R. Ghazi2003-01-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Add 2003 copyright notices for constraints string patch, also 2002 noticeJoern Rennecke2003-01-131-1/+1
| | | | | | for genoutput.c . From-SVN: r61258
* defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.J"orn Rennecke2003-01-091-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* re PR target/8322 (SSE2 intrinsics broken?)Jan Hubicka2003-01-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | * genopinit.c (optabs): Add addc_optab. * ifcvt.c (noce_try_store_flag): Rename to ... (noce_try_addcc): ... this one; handle generic conditional increment. (noce_process_if_block): Update noce_try_addcc call. * optabs.c (emit_conditional_add): New. (init_obtabs): Initialize addc_optab. * optabs.h (optab_index): Add OTI_addcc. (addcc_optab): New macro. * md.texi: Document addMcc PR target/8322 * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads. * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. * reload1.c (delete_output_reload): Avoid repeated attempts to delete insn. From-SVN: r61019
* regmove.c: Fix comment typos.Kazu Hirata2002-12-241-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* ChangeLog: Follow spelling conventions.Kazu Hirata2002-12-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * ChangeLog: Follow spelling conventions. * ChangeLog.2: Likewise. * ChangeLog.4: Likewise. * ChangeLog.5: Likewise. * cppexp.c: Likewise. * df.c: Likewise. * gcov.c: Likewise. * gengtype.c: Likewise. * reload1.c: Likewise. * sched-rgn.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * timevar.c: Likewise. * toplev.c: Likewise. * tree.h: Likewise. * varasm.c: Likewise. * config/fr30/fr30.md: Likewise. * config/i386/i386.c: Likewise. * config/ia64/ia64.c: Likewise. * config/pa/pa.c: Likewise. From-SVN: r60281
* Merge basic-improvements-branch to trunkZack Weinberg2002-12-161-10/+6
| | | | From-SVN: r60174
* c-decl.c: Fix a comment typo.Kazu Hirata2002-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* target.h (gcc_target): Add cannot_force_const_mem.Richard Henderson2002-12-091-2/+6
| | | | | | | | | | | | | | | | | | | * target.h (gcc_target): Add cannot_force_const_mem. * target-def.h (TARGET_CANNOT_FORCE_CONST_MEM): New. (TARGET_INITIALIZER): Add it. * varasm.c (force_const_mem): Fail if cannot_force_const_mem. * expr.c (emit_move_insn): Be prepared for force_const_mem to fail. * reload1.c (reload): Likewise. * hooks.c (hook_bool_rtx_false): New. * hooks.h: Declare it. * config/i386/i386.c (ix86_cannot_force_const_mem): New. (TARGET_CANNOT_FORCE_CONST_MEM): New. (ix86_expand_move): Remove de-const-pooling hack. * gcc.dg/tls/opt-4.c: New. From-SVN: r59971
* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.Aldy Hernandez2002-11-041-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* reload1.c (update_eliminables): Unconditionally check if ↵Kazu Hirata2002-10-291-4/+0
| | | | | | | | | frame_pointer_needed has changed. * reload1.c (update_eliminables): Unconditionally check if frame_pointer_needed has changed. From-SVN: r58627
* ChangeLog.1: Fix typos.Kazu Hirata2002-10-281-1/+1
| | | | | | | | * ChangeLog.1: Fix typos. * cse.c: Fix a comment typo. * reload1.c: Likewise. From-SVN: r58596
* combine.c: Fix comment formatting.Kazu Hirata2002-10-271-2/+2
| | | | | | | | | | | | | | | | * 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
* * reload1.c (reload): Fix a comment typo.Kazu Hirata2002-10-271-1/+1
| | | | From-SVN: r58582
* Fix x86 miscompilation of gdb mips simulator.Jim Wilson2002-10-151-4/+18
| | | | | | | | * reload1.c (merge_assigned_reloads): After converting overlapping reloads to RELOAD_OTHER, abort if there are now conflicting reloads. * config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok. From-SVN: r58184
* reload.c (push_reload): Handle subregs and secondary memory.Jan Hubicka2002-09-301-4/+6
| | | | | | | | | | | * 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
* c-common.h: Follow spelling conventions.Kazu Hirata2002-09-261-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* ChangeLog: Follow spelling conventions.Kazu Hirata2002-09-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ChangeLog: Follow spelling conventions. * ChangeLog.0: Likewise. * ChangeLog.1: Likewise. * ChangeLog.2: Likewise. * ChangeLog.4: Likewise. * ChangeLog.6: Likewise. * config.gcc: Likewise. * dwarfout.c: Likewise. * reload1.c: Likewise. * simplify-rtx.c: Likewise. * unwind-sjlj.c: Likewise. * config/avr/avr.h: Likewise. * config/d30v/d30v.h: Likewise. * config/frv/frv.c: Likewise. * config/frv/frv.h: Likewise. * config/ip2k/ip2k.h: Likewise. * config/m88k/m88k-move.sh: Likewise. * config/stormy16/stormy16.c: Likewise. * config/stormy16/stormy16.h: Likewise. * doc/extend.texi: Likewise. * doc/interface.texi: Likewise. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. * doc/rtl.texi: Likewise. * doc/tm.texi: Likewise. * doc/trouble.texi: Likewise. * ginclude/float.h: Likewise. * treelang/treelang.texi: Likewise. From-SVN: r57179
* In reload, retain only those clobbers added for variable-array handling.Dale Johannesen2002-09-051-4/+7
| | | | From-SVN: r56863
* Insert memory clobbers before the code that pops variable arrays.Dale Johannesen2002-08-141-3/+7
| | | | | | | This prevents the scheduler from moving references to the arrays below the stack pop. From-SVN: r56328
* reload.c (find_reloads): Handle constraint letters marked by ↵Ulrich Weigand2002-08-141-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* reload1.c (reload_cse_simplify): Before checking REG_FUNCTION_VALUE_P, check ↵Hans-Peter Nilsson2002-08-141-1/+2
| | | | | | | | | REG_P. * reload1.c (reload_cse_simplify): Before checking REG_FUNCTION_VALUE_P, check REG_P. From-SVN: r56267
* fold-const.c: Fix comment typos.Kazu Hirata2002-07-301-1/+1
| | | | | | | | * fold-const.c: Fix comment typos. * gcse.c: Likewise. * reload1.c: Likewise. From-SVN: r55876
* defaults.h (obstack_chunk_alloc, [...]): Default definition.Neil Booth2002-07-231-3/+0
| | | | | | | | | | | | | | | * defaults.h (obstack_chunk_alloc, obstack_chunk_free): Default definition. * gcse.c: Don't define obstack_chunk_free. * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c, flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c, integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c, reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c: Don't define obstack macros. cp: * class.c, method.c, pt.c, search.c: Similarly. From-SVN: r55665