aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
AgeCommit message (Collapse)AuthorFilesLines
2004-02-05* emit-rtl.c: Update the comment about the file.Kazu Hirata1-8/+5
From-SVN: r77312
2004-02-04emit-rtl.c (gen_rtx): Remove.Kazu Hirata1-120/+8
* emit-rtl.c (gen_rtx): Remove. * genattrtab.c: Don't mention gen_rtx in a comment. * rtl.h: Remove the prototype for gen_rtx. * doc/md.texi: Replace gen_rtx with gen_rtx_REG. From-SVN: r77224
2004-02-03combine.c (simplify_set): Use gen_rtx_fmt_e instead of gen_rtx.Kazu Hirata1-2/+2
gcc/ * combine.c (simplify_set): Use gen_rtx_fmt_e instead of gen_rtx. * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0 instead of gen_rtx. * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of gen_rtx. * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and gen_rtx_ASHIFT instead of gen_rtx. (udivmodqi4): Likewise. ada/ * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of gen_rtx. f/ * com.c (ffecom_member_phase2_): Use gen_rtx_MEM instead of gen_rtx. From-SVN: r77159
2004-01-31combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine and restore ↵Paolo Bonzini1-1/+3
it to... 2004-01-31 Paolo Bonzini <bonzini@gnu.org> * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine and restore it to gen_lowpart_general on exit. (gen_lowpart_for_combine): Adjust all callers to go through gen_lowpart. * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible and restore it to gen_lowpart_general on exit. (gen_lowpart_if_possible): Adjust all callers to go through gen_lowpart. * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart. (gen_lowpart): Declare as pointer to function, initialized to gen_lowpart_general. * rtl.h (gen_lowpart): Declare as pointer to function. From-SVN: r77026
2004-01-31bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".Kazu Hirata1-7/+7
* bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (". * calls.c: Likewise. * emit-rtl.c: Likewise. * function.c: Likewise. * reload1.c: Likewise. * config/i386/cygming.h: Likewise. * config/i386/i386.c: Likewise. * config/i386/winnt.c: Likewise. From-SVN: r77025
2004-01-29emit-rtl.c (change_address): Use XEXP (memref, 0) instead of addr when ↵Jakub Jelinek1-1/+1
creating MEM copy. * emit-rtl.c (change_address): Use XEXP (memref, 0) instead of addr when creating MEM copy. From-SVN: r76888
2004-01-29re PR rtl-optimization/13424 (gcc.dg/20031202-1.c is miscompiled)Jakub Jelinek1-7/+17
PR optimization/13424 * expr.c (store_constructor): Revert 2003-12-03 change. * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as expected before returning early. Avoid sharing RTL if they need to be changed. * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov handling so that memory attributes are preserved. Don't call ix86_set_move_mem_attrs. (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed. (ix86_expand_clrstr): Rename src argument to dst. Rework rep_stos and strset handling so that memory attributes are preserved. (ix86_expand_strlen): Pass src argument to ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that memory attributes are preserved. (ix86_expand_strlensi_unroll_1): Add src argument. Use change_address instead of gen_rtx_MEM. * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New expanders. (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64, strmovqi, strmovqi_rex64): Remove. (rep_mov*, strmov*): Prefix insn names with *. (strset, strset_singleop, rep_stos): New expanders. (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64, strsetqi, strsetqi_rex64): Remove. (rep_stos*, strset*): Prefix insn names with *. (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode to SImode. (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes are preserved. (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1): Prefix insn names with *. (cmpstrqi_nz_1, cmpstrqi_1): New expanders. (strlenqi_1, strlenqi_rex_1): Prefix insn names with *. (strlenqi_1): New expander. * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype. From-SVN: r76852
2004-01-24emit-rtl.c (change_address, [...]): Return early when there is nothing to ↵Jan Hubicka1-0/+17
change. * emit-rtl.c (change_address, adjust_address_1, offset_address, widen_memory_access): Return early when there is nothing to change. From-SVN: r76512
2004-01-23emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing change.Jan Hubicka1-0/+3
* emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing change. From-SVN: r76457
2004-01-20emit-rtl.c (verify_rtx_sharing, [...]): Clobbers containing hard regs are ↵Jan Hubicka1-1/+24
shared. * emit-rtl.c (verify_rtx_sharing, copy_insn_1, emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers containing hard regs are shared. (gen_hard_reg_clobber): New function. (hard_reg_clobbers): New array. * genemit.c (gen_exp): Use gen_hard_reg_clobber. (copy_rtx): Do not copy clobbers containing hard regs. * rtl.h (gen_hard_reg_clobber): Declare. From-SVN: r76233
2004-01-17* rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)Daniel Jacobowitz1-0/+12
(emit_call_insn_before_sameloc, emit_insn_after_sameloc) (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New macros. * reload1.c (emit_reload_insns): Use them. * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc) (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check for NULL PATTERN. From-SVN: r76062
2004-01-12real.c: Update copyright date.Geoffrey Keating1-1/+1
* real.c: Update copyright date. * emit-rtl.c: Likewise. * rtl.h: Likewise. * dwarf2out.c: Likewise. * config/rs6000/darwin-ldouble.c: Likewise. * config/rs6000/rs6000.md: Likewise. From-SVN: r75742
2004-01-06emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for constants.Geoffrey Keating1-308/+25
* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for constants. (constant_subword): Delete. * rtl.h (constant_subword): Delete prototype. (immed_double_const): Is not in varasm.c. * simplify-rtx.c (simplify_immed_subreg): New. (simplify_subreg): Use simplify_immed_subreg. From-SVN: r75487
2004-01-06alias.c: Fix comment typos.Kazu Hirata1-1/+1
* alias.c: Fix comment typos. * builtins.c: Likewise. * cfg.c: Likewise. * df.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expr.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-zone.c: Likewise. * integrate.c: Likewise. * local-alloc.c: Likewise. * loop.c: Likewise. * recog.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reorg.c: Likewise. * rtlanal.c: Likewise. * rtl.h: Likewise. * sched-ebb.c: Likewise. * simplify-rtx.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. From-SVN: r75475
2003-12-22emit-rtl.c (copy_rtx_if_shared): Add comment about its use of ↵Andrew Pinski1-1/+5
copy_rtx_if_shared_1. * emit-rtl.c (copy_rtx_if_shared): Add comment about its use of copy_rtx_if_shared_1. (copy_rtx_if_shared_1): Add comment about what the function does. From-SVN: r74945
2003-12-21alias.c: Fix comment formatting.Kazu Hirata1-4/+5
* alias.c: Fix comment formatting. * alloc-pool.c: Likewise. * bitmap.c: Likewise. * bitmap.h: Likewise. * bt-load.c: Likewise. * c-common.c: Likewise. * c-common.h: Likewise. * c-decl.c: Likewise. * c-opts.c: Likewise. * c-pretty-print.c: Likewise. * caller-save.c: Likewise. * cfghooks.h: Likewise. * cgraph.c: Likewise. * collect2.c: Likewise. * cppfiles.c: Likewise. * cpplib.h: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * final.c: Likewise. * function.c: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genemit.c: Likewise. * ggc.h: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * libgcc2.h: Likewise. * loop.c: Likewise. * predict.h: Likewise. * unwind-libunwind.c: Likewise. * varasm.c: Likewise. From-SVN: r74907
2003-12-17emit-rtl.c (set_new_first_and_last_label_num): Remove function.Per Bothner1-12/+1
* emit-rtl.c (set_new_first_and_last_label_num): Remove function. * rtl.h (set_new_first_and_last_label_num): Remove declaration. From-SVN: r74772
2003-12-17* emit-rtl.c: Fix signed/unsigned comparison warnings.Kazu Hirata1-2/+2
From-SVN: r74758
2003-12-13c-typeck.c: Fix comment typos.Kazu Hirata1-1/+1
* c-typeck.c: Fix comment typos. * calls.c: Likewise. * cfgcleanup.c: Likewise. * cgraph.h: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * explow.c: Likewise. * expr.c: Likewise. * flow.c: Likewise. * function.c: Likewise. * gcc.c: Likewise. * ggc-zone.c: Likewise. * ifcvt.c: Likewise. * local-alloc.c: Likewise. * predict.c: Likewise. * pretty-print.c: Likewise. * profile.c: Likewise. * ra-colorize.c: Likewise. * sched-vis.c: Likewise. * stor-layout.c: Likewise. From-SVN: r74594
2003-12-11basic-block.h (BLOCK_HEAD, BLOCK_END): Remove.Steven Bosscher1-13/+13
2003-12-11 Steven Bosscher <steven@gcc.gnu.org> * basic-block.h (BLOCK_HEAD, BLOCK_END): Remove. (BLOCK_HEAD_TREE, BLOCK_END_TREE): Remove. (basic_block_def): Rename `head' to `head_' and `end' to `end_'. (BB_HEAD, BB_END): New accessor macros for the `head_' and `end_' fields of a basic block. * bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c, cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c, final.c, flow.c, function.c, gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c, loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c, ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c, sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c, config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of accessing the `head' and `end' fields of a basic block directly. * gengtype.c: Add missing piece from earlier patch. Dunno what I was thinking... From-SVN: r74520
2003-12-08re PR middle-end/10060 (ICE (stack overflow) on huge file (300k lines) due ↵Andrew Pinski1-12/+53
to recursive behaviour of copy_rtx_if_shared, in emit_rtl.c) 2003-12-08 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/10060 * emit-rtl.c (copy_rtx_if_shared): Split out into ... (copy_rtx_if_shared_1): here and optimize the last one in the sequence into tail-recursion. (reset_used_flags): Optimize the last one in the sequence into tail-recursion. From-SVN: r74424
2003-12-06re PR c++/13314 (ICE when omitting template parameter of a sub-class)Mark Mitchell1-0/+2
PR c++/13314 * emit-rtl.c (set_mem_attributes_minus_bitpos): Robustify. PR c++/13314 * parser.c (cp_parser_class_specifier): Match push_scope/pop_scope calls. (cp_parser_class_head): Likewise. PR c++/13314 * g++.dg/template/error7.C: New test. From-SVN: r74359
2003-11-29emit-rtl.c (set_used_flags): New.Jan Hubicka1-4/+194
* emit-rtl.c (set_used_flags): New. (verify_rtx_sharing, verify_rtl_sharing): New. (unshare_all_rtl_1): Rename to.... (unshare_all_rtl_in_chain): ... this one; make static. (copy_rtx_if_shared): LABEL_REF chan be shared. * ifcvt.c (unshare_ifcvt_sequence): New. (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, noce_try_addcc, noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, noce_try_store_flag_mask, noce_try_minmax, noce_try_abs, noce_process_if_block, find_cond_trap * rtl.h (verify_rtl_sharing, set_used_flags, unshare_all_rtl_in_chain): Declare. From-SVN: r74030
2003-11-19emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless the ↵Richard Sandiford1-0/+2
register lowpart is a... * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless the register lowpart is a TRULY_NOOP_TRUNCATION. From-SVN: r73731
2003-11-04emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant addresses to ↵Richard Sandiford1-14/+0
be shared. * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant addresses to be shared. (force_const_mem): Return a copy of the pool entry. From-SVN: r73248
2003-10-18rtl.h (rtl_size): Declare.Richard Sandiford1-7/+4
* rtl.h (rtl_size): Declare. (rtunion): Remove rtwint. (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT. (RTX_HDR_SIZE, RTX_SIZE): New macros. (RTL_CHECK1): Adjust for new rtx_def layout. (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise. (XWINT, XCWINT): Likewise. Access the rtx structure directly. (X0WINT): Remove. (X0ANY): New macro. * rtl.def: Adjust comments for new rtx_def layout. * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the number of slots. * rtl.c (rtx_size): New array. (rtx_alloc): Adjust call to ggc_alloc_rtx. Use RTX_HDR_SIZE. (copy_rtx): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. (shallow_copy_rtx): Adjust call to ggc_alloc_rtx. Use RTX_SIZE. * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields. * emit-rtl.c (copy_most_rtx): Likewise. (copy_rtx_if_shared): Use RTX_SIZE. (copy_insn_1): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call. Use RTX_HDR_SIZE. * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE. (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than an array. Adjust output for new rtx_def layout. * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE. * reload1.c (eliminate_regs): Use RTX_SIZE. * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout. * gdbinit.in (pi): Likewise. From-SVN: r72647
2003-09-11builtins.c (builtin_dconsts_init, [...]): Delete.Kaveh R. Ghazi1-0/+9
* builtins.c (builtin_dconsts_init, dconstpi, dconste, init_builtin_dconsts): Delete. * emit-rtl.c (dconstpi, dconste): Define. (init_emit_once): Initialize dconstpi & dconste. * real.h (dconstpi, dconste): Declare. From-SVN: r71320
2003-09-09builtins.c (real_dconstp, [...]): New, split out from fold_builtin.Kaveh R. Ghazi1-1/+8
* builtins.c (real_dconstp, fold_builtin_logarithm, fold_builtin_exponent): New, split out from fold_builtin. Also generalize to add log2, log10, exp2 and exp10/pow10 equivalents. * emit-rtl.c (dconst3, dconst10, dconstthird): New. (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu of hardcoded array size. * fold-const.c (fold): Add cases for exp2, exp10 and pow10. (tree_expr_nonnegative_p): Likewise. * real.h (dconst3, dconst10, dconstthird): New. testsuite: * gcc.dg/torture/builtin-explog-1.c: New testcase. From-SVN: r71252
2003-09-03targhooks.c: New file.DJ Delorie1-19/+0
* targhooks.c: New file. * targhooks.h: New file. * Makefile.in: Add targhooks.o support. (function.o): Depend on$(TARGET_H). (stmt.o): Likewise. (combine.o): Depend on $(TREE_H) and $(TARGET_H). * builtins.c (apply_args_size, expand_builtin_apply_args_1, expand_builtin_apply): Convert to calls.struct_value_rtx hook. (expand_builtin_saveregs): Convert to calls.expand_builtin_saveregs hook. * c-decl.c (start_decl): Handle new calls.promote_prototypes hook here, instead of ... (get_parm_info) ... here. (store_parm_decls_oldstyle): Convert to calls.promote_prototypes hook. (finish_function): Handle calls.promote_prototypes hook here too. * c-typeck.c (convert_arguments): Convert to calls.promote_prototypes hook. (c_convert_parm_for_inlining): Likewise. * calls.c (initialize_argument_information): Convert to calls.promote_function_args hook. (expand_call): Convert to calls.struct_value_rtx, calls.strict_argument_naming, calls.pretend_outgoing_varargs_named, and calls.promote_function_return hooks. Pass fndecl to aggregate_value_p. Initialize CUMULATIVE_ARGS before calling hooks, so they can use that. (emit_library_call_value_1): Likewise. * combine.c (setup_incoming_promotions): Convert to calls.promote_function_args hook. * emit-rtl.c: Convert to calls.struct_value_rtx hook. * expr.c (expand_assignment): Pass call to aggregate_value_p. (expand_expr): Likewise. * expr.h: Remove support for SETUP_INCOMING_VARARGS, STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, RETURN_IN_MEMORY macro defaults. * final.c (profile_function): Convert to calls.struct_value_rtx hook. * function.c (aggregate_value_p): Accept function type tree as second parameter; try to deduce fntype from it. Convert to calls.return_in_memory hook. (assign_parms): Convert to calls.setup_incoming_varargs, calls.strict_argument_naming, calls.promote_function_args, calls.pretend_outgoing_varargs_named hooks. Pass fndecl to aggregate_value_p. (expand_function_start): Likewise. Convert to calls.struct_value_rtx hook. (expand_function_end): Convert to calls.promote_function_return hook. (allocate_struct_function): Pass fndecl to aggregate_value_p. * hard-reg-set.h: Update comments to new hook names. * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p. * reg-stack.c (stack_result): Likewise. * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete. * stmt.c (expand_value_return): Convert to calls.promote_function_return hook. * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY, TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS, TARGET_STRICT_ARGUMENT_NAMING, TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS. * target.h: Likewise. * tree.h (aggregate_value_p): Also takes a tree to deduce function attributes from (for target hooks). * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM, STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING, EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS, STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert to hooks. * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function to aggregate_value_p. * config/arm/arm.c (arm_init_cumulative_args, arm_output_mi_thunk): Likewise. * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter): Likewise. * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue, mips_can_use_return_insn): Likewise. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. * config/s390/s390.c (s390_output_mi_thunk): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to aggregate_value_p. * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass function to aggregate_value_p. * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to aggregate_value_p. * config/sh/sh-protos.h (sh_builtin_saveregs): Remove. (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg, sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c (sh_handle_renesas_attribute, sh_promote_prototypes, sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs, sh_setup_incoming_varargs, sh_strict_argument_naming, sh_pretend_outgoing_varargs_named): New decls. (targetm): Add new hooks. (calc_live_regs): Save MACL and MACH if the function has the renesas attribute. (sh_expand_prologue): Support renesas attribute. (sh_builtin_saveregs): Make static. (sh_build_va_list): Support renesas attribute. (sh_va_start): Likewise. (sh_va_arg): Likewise. (sh_promote_prototypes): New. (sh_function_arg): New, moved from sh.h. Support renesas attribute. (sh_function_arg_advance): Likewise. (sh_return_in_memory): Likewise. (sh_strict_argument_naming): Likewise. (sh_pretend_outgoing_varargs_named): Likewise. (sh_struct_value_rtx): New. (sh_attribute): Add renesas attribute. (sh_handle_renesas_attribute): New. (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New. (sh_ms_bitfield_layout_p): Support renesas attribute also. (sh_output_mi_thunk): Pass function to aggregate_value_p. * config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for -mhitachi. (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to target hooks. (sh_args): Add renesas_abi flag. (INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p. (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c. (PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the stack for the renesas abi. (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS, PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set call cookie to indicate renesas calls. * decl.c (finish_function): Pass fndecl to aggregate_value_p. * misc.c (default_pass_by_ref): Convert to calls.return_in_memory hook. From-SVN: r71048
2003-08-22cfgcleanup.c: Fix comment typos.Kazu Hirata1-1/+1
* cfgcleanup.c: Fix comment typos. * emit-rtl.c: Likewise. * optabs.c: Likewise. * ra-build.c: Likewise. * rtlanal.c: Likewise. * tree.h: Likewise. From-SVN: r70678
2003-08-19c-common.c: Fix comment formatting.Kazu Hirata1-1/+1
* c-common.c: Fix comment formatting. * c-common.h: Likewise. * c-decl.c: Likewise. * cppinit.c: Likewise. * cpplib.h: Likewise. * emit-rtl.c: Likewise. * input.h: Likewise. * line-map.h: Likewise. * opts.c: Likewise. * opts.h: Likewise. * simplify-rtx.c: Likewise. From-SVN: r70577
2003-08-13regclass.c (init_reg_modes): Make non-static.Per Bothner1-0/+3
* regclass.c (init_reg_modes): Make non-static. Rename to init_reg_modes_once per new naming convention. (init_regs): Don't call init_reg_modes here. * emit-rtl.c (init_emit_once): Call init_reg_modes_once here instead. * rtl.h (init_reg_modes_once): New declaration. * toplev.c (backend_init): Call init_regs after init_emit_once. From-SVN: r70426
2003-07-19alias.c [...]: Remove unnecessary casts.Kaveh R. Ghazi1-8/+8
* 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-10ggc.h, [...]: Use `rtx' instead of `struct rtx_def *'...Steven Bosscher1-1/+1
2003-07-10 Steven Bosscher <steven@gcc.gnu.org> * ggc.h, integrate.h, langhooks.h, real.h, toplev.h: Use `rtx' instead of `struct rtx_def *', `rtvec' instead of `struct rtvec_dev *' and `tree' instead of `union tree_node *' in function prototypes. * varray.h (const_equiv_data): Likewise for fields. (varray_data_tag): Likewise. * output.h: Likewise, and don't forward declare union tree_node. * emit_rtl.c (const_int_htab_hash): Cast to `rtx' instead of `struct rtxvec *'. * print-tree.c (print_node): Likewise. * reload1.c: Don't redeclare current_function_decl, tree.h is included in this file. From-SVN: r69183
2003-07-08partial fix for PR target/10021James E Wilson1-13/+16
partial fix for PR target/10021 * emit-rtl.c (set_mem_attribute_minus_bitpos): When handle ARRAY_REF, loop over new variable t2 instead of t. From-SVN: r69111
2003-07-07rtl.h (emit_line_note): Take a location_t.Nathan Sidwell1-28/+15
* rtl.h (emit_line_note): Take a location_t. (emit_line_note_force): Remove. (set_file_and_line_for_statement): Take a location_t. * tree.g (emit_line_note): Take a location_t. * emit-rtl.c (emit_line_note): Take a location_t. (emit_line_note_force): Remove. * function.c (init_function_start): Adjust emit_line_note call. (expand_function_end): Use force_next_line_note, not emit_line_note_force. * c-parse.in (maybe_type_qual): Adjust emit_line_note calls. * c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, genrtl_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt): Likewise. * expr.c (expand_expr): Likewise. * integrate.c (expand_inline_function): Likewise. * stmt.c (set_file_and_line_for_stmt): Take a location_t. (expand_decl_init): Adjust emit_line_note call. * ada/trans.c (build_unit_elab, set_lineno): Adjust emit_line_note calls. * cp/semantics.c: (genrtl_try_block) Adjust emit_line_note calls. * f/com.c (bison_rule_pushlevel_, bison_rule_compstmt_): Adjust emit_line_note calls. * f/ste.c (ffeste_emit_line_note_): Likewise. * java/expr.c (expand_byte_code): * treelang/treetree.c (tree_code_if_start, tree_code_if_else, tree_code_if_end, tree_code_create_function_initial, tree_code_create_function_wrapup, tree_code_generate_return, tree_code_output_expression_statement): Adjust emit_line_note calls. From-SVN: r69047
2003-07-05bt-load.c: Fix comment typos.Kazu Hirata1-2/+2
* bt-load.c: Fix comment typos. * c-incpath.c: Likewise. * cfg.c: Likewise. * cfgcleanup.c: Likewise. * cfgloop.h: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * diagnostic.h: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * et-forest.c: Likewise. * et-forest.h: Likewise. * expr.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * jump.c: Likewise. * langhooks.h: Likewise. * local-alloc.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * ra-build.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * rtl.def: Likewise. * rtlanal.c: Likewise. * sched-ebb.c: Likewise. * sched-rgn.c: Likewise. * simplify-rtx.c: Likewise. * ssa.c: Likewise. * tracer.c: Likewise. * tree.c: Likewise. From-SVN: r68975
2003-07-03rtl.h (NOTE_DATA): Refer to whole union.Nathan Sidwell1-1/+1
* rtl.h (NOTE_DATA): Refer to whole union. * emit-rtl.c (emit_note): Use memset to clear NOTE_DATA. From-SVN: r68874
2003-07-01rtl.h (emit_line_note_after): Remove.Nathan Sidwell1-19/+33
* rtl.h (emit_line_note_after): Remove. (emit_note_copy_after, emit_note_copy): New. * emit-rtl.c (reorder_insns_with_line_notes): Replace emit_line_note_after with emit_note_copy_after. (emit_insn_after_with_line_notes): Likewise. (emit_line_note_after): Kill. (emit_note_copy_after): New. (emit_note_copy): New. * function.c (emit_return_into_block): Use emit_note_copy_after. (thread_prologue_and_epilogue_insns): Likewise. * integrate.c (expand_inline_function): Use emit_note_copy. (copy_insn_list): Likewise. * unroll.c (copy_loop_body): Likewise. * cfglayout.c (duplicate_insn_chain): Likewise. From-SVN: r68767
2003-06-29except.c: Convert prototypes to ISO C90.Andreas Jaeger1-439/+202
* except.c: Convert prototypes to ISO C90. * except.h: Likewise. * emit-rtl.c: Likewise. * et-forest.c: Likewise. * et-forest.h: Likewise. * except.c: Likewise. * explow.c: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * expr.h: Likewise. From-SVN: r68674
2003-06-27rtl.h (emit_note): Remove FILE parameter.Nathan Sidwell1-10/+12
* rtl.h (emit_note): Remove FILE parameter. * emit-rtl.c (emit_line_note): Adjust emit_note call. (emit_note): Remove FILE parameter. Adjust. * builtins.c (expand_builtin_expect): Adjust emit_note call. * c-semantics.c (genrtl_scope_stmt): Likewise. (expand_stmt): Likewise. * cfglayout.c (reemit_insn_block_notes): Likewise. (duplicate_insn_chain): Likewise. * except.c (expand_eh_region_start, expand_eh_region_end, sjlj_emit_function_enter): Likewise. * explow.c (probe_stack_range): Likewise. * expr.c (emit_block_move_via_loop): Likewise. * function.c (init_function_start, expand_function_start, expand_function_end, thread_prologue_and_epilogue_insns): Likewise. * integrate.c (expand_inline_function, copy_insn_list): Likewise. * reg-stack.c (compensate_edge): Likewise. * reload1.c (reload): Likewise. * rtlanal.c (hoist_insn_to_edge): Likewise. * stmt.c (expand_fixup, expand_start_loop, expand_start_null_loop, expand_loop_continue_here, expand_end_loop, expand_continue_loop, expand_exit_loop_top_cond, expand_value_return, expand_start_bindings_and_block, expand_end_bindings, expand_decl_cleanup, expand_start_case): Likewise. * unroll.c (copy_loop_body * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise. * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. * config/rs6000/rs6000.c (rs6000_emit_eh_toc_restore, rs6000_emit_allocate_stack, rs6000_output_function_prologue, rs6000_output_function_epilogue, rs6000_output_mi_thunk): Likewise. * config/sh/sh.c (sh_output_mi_thunk): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. * ada/misc.c (record_code_position): Likewise. From-SVN: r68561
2003-06-26emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE instead of ↵Richard Henderson1-2/+4
replacing it. * emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE instead of replacing it. From-SVN: r68547
2003-06-16convert.c, [...]: Replace overly specific references to "GNU C" and "GNU C ↵Nathanael Nerode1-1/+1
Compiler" with... * convert.c, dwarf2out.c, dwarfout.c, emit-rtl.c, function.c, lists.c, print-rtl.c, print-tree.c, read-rtl.c, rtl-error.c, stmt.c, toplev.c, integrate.h, loop.h, machmode.h, rtl.h, ssa.h, tree.def: Replace overly specific references to "GNU C" and "GNU C Compiler" with references to "GCC". From-SVN: r68004
2003-06-16function.h (struct emit_status): Remove x_last_linenum, x_last_filename.Nathan Sidwell1-25/+21
* function.h (struct emit_status): Remove x_last_linenum, x_last_filename. Add x_last_location. * rtl.h: #include "input.h". (NOTE_DATA): New. * cfglayout.c (duplicate_insn_chain): Use emit_line_note for line number notes. * emit-rtl.c (last_linenum, last_filename): Remove. (last_location): New. (emit_line_note_after): LINE must always be >= 0. (emit_line_note): Likewise. Check not duplicate here... (emit_note): ... rather than here. (emit_line_note_force, force_next_line_note, init_emit): Adjust. * integrate.c (expand_inline_function): Use emit_line_note for line number notes. (copy_insn_list): Likewise. * unroll.c (copy_loop_body): Likewise. * Makefile.in (RTL_H): Add input.h. From-SVN: r68002
2003-06-13c-common.c (handle_mode_attribute): Use VECTOR_MODE_P macro.Aldy Hernandez1-3/+1
2003-06-13 Aldy Hernandez <aldyh@redhat.com> * c-common.c (handle_mode_attribute): Use VECTOR_MODE_P macro. * simplify-rtx.c (simplify_subreg): Same. * emit-rtl.c (gen_lowpart_common): Same. From-SVN: r67911
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-06-08cfglayout.c (insn_scope): New static functionJan Hubicka1-21/+21
* cfglayout.c (insn_scope): New static function (block_locators_*, line_locators*, file_locators*): New static varrays. (scope_to_insns_initialize): Use them. (insn_line, insn_file): New functions. (scope_to_insns_finalize): Use insn_scope. (prologue_locator, epilogue_locator): New global variables. * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw, make_call_insn_raw, emit_copy_of_insn_after): Use locators. (emit_insn_after_scope, emit_insn_before_scope emit_jump_insn_after_scope, emit_jump_insn_before_scope emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... (emit_insn_after_setloc, emit_insn_before_setloc emit_jump_insn_after_setloc, emit_jump_insn_before_setloc emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; use locators. * final.c (notice_source_line): Use locators. (final_start_function): Set initial source file and line. (final_scan_insn): Use locators. * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, noce_try_minmax, noce_try_abs, noce_process_if_block, find_cond_trap): Likewise. * integrate.c (copy_insn_list): Likewise. * jump.c (duplicate_loop_exit_test): LIkewise. * print-rtl.c (print_rtx): Print locators. * recog.c (peephole2_optimize): Likewise. * rtl.h (INSN_SCOPE): Remove. (emit_insn_after_scope, emit_insn_before_scope emit_jump_insn_after_scope, emit_jump_insn_before_scope emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... (emit_insn_after_setloc, emit_insn_before_setloc emit_jump_insn_after_setloc, emit_jump_insn_before_setloc emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; (insn_file, insn_line, prologue_locator, epilogue_locator): Declare. * unroll.c (copy_loop_body): Use locators. * function.c (set_insn_locators): New function. (thread_prologue_and_epilogue_insns): Set the locators accordingly. From-SVN: r67637
2003-06-02emit-rtl.c (gen_complex_constant_part): Remove unnecessary test of ↵Roger Sayle1-2/+1
TREE_CONSTANT_POOL_ADDRESS_P. * emit-rtl.c (gen_complex_constant_part): Remove unnecessary test of TREE_CONSTANT_POOL_ADDRESS_P. Co-Authored-By: Zack Weinberg <zack@codesourcery.com> From-SVN: r67331
2003-06-01emit-rtl.c (gen_lowpart_common): Handle interpreting integer constants as ↵Roger Sayle1-0/+6
condition code values. * emit-rtl.c (gen_lowpart_common): Handle interpreting integer constants as condition code values. Co-Authored-By: Geoffrey Keating <geoffk@apple.com> Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca> From-SVN: r67309
2003-05-30emit-rtl.c (gen_complex_constant_part): New function for getting the ↵Roger Sayle1-0/+45
constant real or imaginary part of a complex constant. * emit-rtl.c (gen_complex_constant_part): New function for getting the constant real or imaginary part of a complex constant. (gen_realpart): Use it. (gen_imagpart): Likewise. From-SVN: r67252