aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
AgeCommit message (Collapse)AuthorFilesLines
2003-10-17combine.c (simplify_set): Do not clear out undobuf.other_insn already set ↵Ulrich Weigand1-4/+4
elsewhere. * combine.c (simplify_set): Do not clear out undobuf.other_insn already set elsewhere. From-SVN: r72602
2003-10-13Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o with ↵Zack Weinberg1-6/+6
min-insn-modes.o. * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o with min-insn-modes.o. (STAGESTUFF): Add min-insn-modes.c. (genobjs): Add genmodes.o. (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H). (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h. (min-insn-modes.c, min-insn-modes.o): New rules. (s-modes): Also generate min-insn-modes.c. ($(BUILD_PREFIX_1)insn-modes.o): Kill. * genmodes.c (struct mode_data): Add format field. (blank_mode, validate_mode, complete_mode): Update to match. (make_scalar_mode): Separate into make_int_mode and make_float_mode. (_SCALAR_MODE): Kill. (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument. (emit_insn_modes_c_header): Adjust. (emit_min_insn_modes_c_header, emit_real_format_for_mode) (emit_min_insn_modes_c): New functions. (emit_insn_modes_c): Call emit_real_format_for_mode. (main): Add -m option to generate min-insn-modes.c. * machmode.h: Update documentation. Add format argument to all uses of FLOAT_MODE. * real.c: Don't define real_format_for_mode here. * dwarfout.c: Move default definition of PRINT_REG... * defaults.h: ...here. * print-rtl.c: Include tm_p.h. (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names): Kill. (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG. But surround this entire block with #ifndef GENERATOR_FILE. * regclass.c: Unconditionally define reg_names. * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h Don't define DEBUG_REGISTER_NAMES. * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in redefinition of REGISTER_NAMES. * config/i386/i386.h: Don't define DEBUG_PRINT_REG. * combine.c: Change all preprocessor conditionals on EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit for clarity. * genopinit.c: Remove mention of EXTRA_CC_MODES in comment. * configure.in: Don't define EXTRA_CC_MODES. * configure, config.in: Regenerate. * doc/tm.texi: Remove documentation of EXTRA_CC_MODES. * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c: May assume that GET_MODE_CLASS is accurate for extra CC modes at all times. * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct number of arguments to aggregate_value_p. * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New. * machmode.def: Explain ARCH-modes.def. Document RESET_FLOAT_FORMAT. Improve commentary on various mode clusters. Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF, XF, or TF modes here. Remove backward-compatibility definition of CC. * config/alpha/alpha-modes.def: New file; define TF mode. * config/arc/arm-modes.def: Define XF mode. * config/c4x/c4x-modes.def: Define QF and HF modes. Unset float format for SF and DF modes. * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode. * config/i386/i386-modes.def: Define XF and TF modes. * config/i960/i960-modes.def: Define TF mode. * config/ia64/ia64-modes.def: Define TF and OI modes. * config/m68k/m68k-modes.def: New file; define XF mode. * config/mips/mips-modes.def: New file; define TF mode, reset formats for SF and DF modes. * config/pa/pa-modes.def: Define TF mode. * config/rs6000/rs6000.c: Define TF and PSI modes. * config/s390/s390-modes.def: Define OI mode. * config/sh/sh-modes.def: New file; define PSI mode. * config/sparc/sparc-modes.def: Define TF mode. * config/vax/vax-modes.def: New file; reset formats for SF and DF modes. * config/c4x/c4x.c (c4x_override_options): No need to mess with real_format_for_mode or set REAL_MODE_FORMATs. (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx variable. * config/i386/i386.c (override_options): No need to set REAL_MODE_FORMATs here. * config/i960/i960.c (i960_initialize): Likewise. * config/m68k/m68k.c (m68k_override_options): Likewise. * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT for TFmode only if not the default. * config/mips/mips.c (override_options): Likewise. * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for DFmode only if not the default. * config/i370/i370.h (RET_REG): Don't consider TFmode. * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode. * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use of modes that don't appear anywhere in the machine description. * config/arc/arc-modes.def, config/arm/arm-modes.def * config/c4x/c4x-modes.def, config/frv/frv-modes.def * config/i386/i386-modes.def, config/i960/i960-modes.def * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def * config/sparc/sparc-modes.def: Convert to new style for declaring extra CC modes. From-SVN: r72440
2003-10-11combine.c (apply_distributive_law): Enable "distributive" floating point ↵Roger Sayle1-6/+7
optimizations with -funsafe-math-optimizations. * combine.c (apply_distributive_law): Enable "distributive" floating point optimizations with -funsafe-math-optimizations. From-SVN: r72334
2003-10-10* combine.c (distribute_links): Properly test for REG being set.Richard Kenner1-0/+2
From-SVN: r72310
2003-10-06re PR rtl-optimization/11637 (g++ invalid assembly with -fnon-call-exceptions)Eric Botcazou1-11/+39
2003-10-06 Eric Botcazou <ebotcazou@libertysurf.fr> PR optimization/11637 * combine.c (adjust_for_new_dest): New function to adjust the notes and LOG_LINKS when the dest of an insn has changed. (try_combine): Use it when deleting the first insn of a two-insn parallel or splitting a two-load parallel. From-SVN: r72138
2003-10-02combine.c (make_field_assignment): Check whether rtx's code is CONST_INT ↵Josef Zlomek1-0/+1
before using INTVAL. PR/12292 * combine.c (make_field_assignment): Check whether rtx's code is CONST_INT before using INTVAL. From-SVN: r72033
2003-09-26* combine.c (if_then_else_cond): Tighten mode check.Richard Sandiford1-1/+1
From-SVN: r71815
2003-09-14combine.c (simplify_comparison): Convert (ne (and (lshiftrt (xor X CST) Y) ↵Kazu Hirata1-11/+22
1) 0) into (eq (and (lshiftrt X Y) 1) 0). * combine.c (simplify_comparison): Convert (ne (and (lshiftrt (xor X CST) Y) 1) 0) into (eq (and (lshiftrt X Y) 1) 0). From-SVN: r71385
2003-09-11combine.c (combine_simplify_rtx): Move several NOT and NEG optimizations ↵Roger Sayle1-96/+0
from here... * combine.c (combine_simplify_rtx): Move several NOT and NEG optimizations from here... * simplify-rtx.c (simplify_unary_operation): to here. Recursively simplify expressions using simplify_gen_*ary instead of gen_rtx_*. From-SVN: r71300
2003-09-11combine.c (force_to_mode): Set fuller_mask based only on mask, not op_mode.Ian Lance Taylor1-7/+5
* combine.c (force_to_mode): Set fuller_mask based only on mask, not op_mode. From-SVN: r71292
2003-09-07combine.c (combine_simplify_rtx): Don't convert -(A*B) into (-A)*B if we ↵Roger Sayle1-2/+4
care about sign-dependent rounding. * combine.c (combine_simplify_rtx): Don't convert -(A*B) into (-A)*B if we care about sign-dependent rounding. From-SVN: r71178
2003-09-03targhooks.c: New file.DJ Delorie1-15/+18
* 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-25combine.c (simplify_comparison): Re-enable widening of comparisons with ↵Ulrich Weigand1-5/+7
non-paradoxical subregs of non-REG... * combine.c (simplify_comparison): Re-enable widening of comparisons with non-paradoxical subregs of non-REG expressions. From-SVN: r70785
2003-08-25combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.Ulrich Weigand1-0/+1
* combine.c (distribute_notes): Handle REG_ALWAYS_RETURN. * gcc.dg/20030702-1.c: New test. From-SVN: r70779
2003-08-25* combine.c (combine_simplify_rtx): Fix RTL sharing bug.Ulrich Weigand1-3/+5
From-SVN: r70778
2003-08-23* combine.c (apply_distributive_law): Correct comment.Roger Sayle1-1/+1
From-SVN: r70734
2003-08-22c-decl.c: Fix comment formatting.Kazu Hirata1-1/+1
* c-decl.c: Fix comment formatting. * cfgrtl.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * expmed.c: Likewise. * fold-const.c: Likewise. * gcov.c: Likewise. * genattrtab.c: Likewise. * ggc-common.c: Likewise. * mips-tfile.c: Likewise. * regmove.c: Likewise. From-SVN: r70677
2003-07-31combine.c (try_combine): Set JUMP_LABEL for newly created unconditional jump.Zdenek Dvorak1-0/+1
* combine.c (try_combine): Set JUMP_LABEL for newly created unconditional jump. From-SVN: r70010
2003-07-30combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes.Zdenek Dvorak1-0/+4
* combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes. * gcov-io.h (GCOV_FIRST_VALUE_COUNTER, GCOV_LAST_VALUE_COUNTER, GCOV_N_VALUE_COUNTERS): New. * profile.c (compute_value_histograms): New static function. (branch_prob): Read back the value histograms. * rtl.c (reg_note_name): Add name for REG_VALUE_PROFILE note. * rtl.h (enum reg_note): Add REG_VALUE_PROFILE note. * value-prof.c: Add comment on reading the profile. * value-prof.h (COUNTER_FOR_HIST_TYPE, HIST_TYPE_FOR_COUNTER): New. * doc/invoke.texi (-fprofile-values): Document behavior with -fbranch-probabilities. From-SVN: r69969
2003-07-22alias.c: Fix comment formatting.Kazu Hirata1-1/+1
* alias.c: Fix comment formatting. * c-common.c: Likewise. * c-decl.c: Likewise. * c-opts.c: Likewise. * combine.c: Likewise. * cpplib.c: Likewise. * diagnostic.c: Likewise. * dojump.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * ggc-page.c: Likewise. * jump.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. From-SVN: r69689
2003-07-22combine.c (if_then_else_cond): Simplify the comparison of rtx against -1, 0, ↵Kazu Hirata1-1/+1
and 1. * combine.c (if_then_else_cond): Simplify the comparison of rtx against -1, 0, and 1. * loop.c (check_dbra_loop): Likewise. * optabs.c (emit_conditional_move): Likewise. (emit_conditional_add): Likewise. * config/i386/i386.md (*movsi_or): Likewise. (*movdi_or_rex6): Likewise. From-SVN: r69658
2003-07-19alias.c [...]: Remove unnecessary casts.Kaveh R. Ghazi1-27/+22
* 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-18combine.c (simplify_comparison): Don't share rtx when converting (ne (and ↵Kazu Hirata1-1/+1
(not X) 1) 0) to (eq (and X 1) 0). * combine.c (simplify_comparison): Don't share rtx when converting (ne (and (not X) 1) 0) to (eq (and X 1) 0). From-SVN: r69571
2003-07-18combine.c (combinable_i3pat): Don't forbid occurrences of i2dest or i1dest ↵Alexandre Oliva1-3/+8
in inner_dest if inner_dest is a mem. * combine.c (combinable_i3pat): Don't forbid occurrences of i2dest or i1dest in inner_dest if inner_dest is a mem. From-SVN: r69566
2003-07-16combine.c (subst): Also handle (subreg (const_double ...)) case if created ↵Roger Sayle1-1/+3
by a substitution... * combine.c (subst): Also handle (subreg (const_double ...)) case if created by a substitution, by using the original inner mode. From-SVN: r69476
2003-07-13combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0) to (eq (and ↵Kazu Hirata1-0/+11
X 1) 0). * combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0) to (eq (and X 1) 0). From-SVN: r69300
2003-07-11combine.c (gen_binary): Handle the CLOBBER rtx and don't build a binary ↵Denis Chertykov1-0/+5
operation with it. * combine.c (gen_binary): Handle the CLOBBER rtx and don't build a binary operation with it. Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu> From-SVN: r69199
2003-07-05* combine.c (nonzero_bits1): Fix a warning.Kazu Hirata1-1/+2
From-SVN: r68983
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-07-01combine.c (distribute_notes): Don't bother REG_WAS_0.Kazu Hirata1-2/+1
* combine.c (distribute_notes): Don't bother REG_WAS_0. * cse.c (cse_insn): Likewise. * final.c (final_scan_insn): Likewise. * jump.c (duplicate_loop_exit_test): Likewise. * rtl.c (reg_note_name): Remove REG_WAS_0. * rtl.h (REG_WAS_0): Remove. * unroll.c (final_reg_note_copy): Don't bother REG_WAS_0. * config/avr/avr.c (output_movqi): Don't use reg_was_0. (output_movhi): Likewise. (output_movsisf): Likewise. (reg_was_0): Remove. * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't use REG_WAS_0. (m68hc11_gen_movqi): Likewise. * config/vax/vax-protos.h: Remove the prototype for reg_was_0_p. * config/vax/vax.c (follows_p): Remove. (reg_was_0_p): Likewise. * config/vax/vax.md (movsi): Don't use reg_was_0_p. (movhi): Likewise. (movqi): Likewise. * doc/rtl.texi (REG_WAS_0): Remove. From-SVN: r68753
2003-06-27combine.c (force_to_mode): Replace the equality comparison of INTVALs with a ↵Kazu Hirata1-8/+4
pointer equality comparison. * combine.c (force_to_mode): Replace the equality comparison of INTVALs with a pointer equality comparison. (simplify_comparison): Likewise. From-SVN: r68603
2003-06-13re PR bootstrap/10983 ([SPARC64] ICE in verify_wide_reg, at flow.c:551, ↵James E Wilson1-22/+27
while compiling libjava) PR bootstrap/10983 * combine.c (make_extraction): Use gen_lowpart_for_combine when extracting from a REG and not in the destination of a SET. Co-Authored-By: Eric Botcazou <ebotcazou@libertysurf.fr> From-SVN: r67916
2003-06-08cfglayout.c (insn_scope): New static functionJan Hubicka1-1/+1
* 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-08predict.h: Convert to ISO C90 prototypes.Andreas Jaeger1-310/+165
* predict.h: Convert to ISO C90 prototypes. * predict.c: Likewise. * tree-dump.h: Likewise. * tree-dump.c: Likewise. * diagnostic.h: Likewise. * diagnostic.c: Likewise. * combine.c: Likewise. * rtl.h: Convert prototypes of combine.c to ISO C90. From-SVN: r67626
2003-06-05combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8)) is REG ↵Jan Hubicka1-0/+8
for nonzero_bits (REG) == 8. * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8)) is REG for nonzero_bits (REG) == 8. From-SVN: r67488
2003-06-03combine.c (simplify_set): Don't move a subreg in SET_SRC to SET_DEST if...Kazu Hirata1-10/+8
* combine.c (simplify_set): Don't move a subreg in SET_SRC to SET_DEST if WORD_REGISTER_OPERATIONS is not defined. From-SVN: r67388
2003-05-16combine.c (expand_compound_operation): Make sure that zero_extend operation ↵Eric Christopher1-1/+9
is profitable. 2003-05-15 Eric Christopher <echristo@redhat.com> * combine.c (expand_compound_operation): Make sure that zero_extend operation is profitable. From-SVN: r66853
2003-05-15combine.c: Fix header comments.Eric Christopher1-47/+18
2003-05-14 Eric Christopher <echristo@redhat.com> * combine.c: Fix header comments. (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate to all calls and prototype. From-SVN: r66813
2003-05-01Merge from rewrite branch.Eric Christopher1-1/+11
From-SVN: r66318
2003-04-16Re-apply this patch:J"orn Rennecke1-6/+8
2002-05-16 Dale Johannesen <dalej@apple.com> * combine.c (cant_combine_insn_p): Reenable combinations involving hard regs unless CLASS_LIKELY_SPILLED_P. From-SVN: r65689
2003-04-01combine.c (merge_outer_ops): Fix typo.Franz Sirl1-1/+1
2003-04-01 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * combine.c (merge_outer_ops): Fix typo. * varasm.c (make_decl_one_only): Revert 2003-03-09 patch. From-SVN: r65136
2003-03-31combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.Eric Christopher1-52/+20
2003-03-31 Eric Christopher <echristo@redhat.com> * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART. (combinable_i3pat): Remove call to expand_field_assignment and #if 0'd code. From-SVN: r65118
2003-03-24re PR target/10072 ([Sparc] internal compiler error: in trunc_int_for_mode, ↵Eric Botcazou1-1/+3
at explow.c:54) PR target/10072 * combine.c (simplify_if_then_else): Check that the mode has MODE_INT class before applying the (OP Z (mult COND C2)) transformation. From-SVN: r64785
2003-03-22* combine.c (simplify_comparison <AND>): Use gen_int_mode. Tidy.Alan Modra1-39/+35
From-SVN: r64703
2003-03-21* combine.c (make_field_assignment): Fix a warning.Kazu Hirata1-1/+1
From-SVN: r64680
2003-03-21combine.c (make_field_assignment): Remove unnecessary AND when storing into ↵Kazu Hirata1-0/+11
zero_extract. * combine.c (make_field_assignment): Remove unnecessary AND when storing into zero_extract. From-SVN: r64674
2003-03-19re PR target/10073 (powerpc cannot split insn while building rscheme)Alan Modra1-1/+2
PR target/10073 * combine.c (force_to_mode <NOT>): Use gen_int_mode. From-SVN: r64564
2003-03-08calls.c: Fix comment formatting.Kazu Hirata1-1/+1
* calls.c: Fix comment formatting. * cfgloopanal.c: Likewise. * cfgloopmanip.c: Likewise. * combine.c: Likewise. * dwarf2out.c: Likewise. * ggc-common.c: Likewise. * langhooks.c: Likewise. * loop-unroll.c: Likewise. * loop.c: Likewise. * ra-build.c: Likewise. * sbitmap.c: Likewise. * toplev.c: Likewise. From-SVN: r63966
2003-02-28combine.c (gen_lowpart_for_combine): Update handling of subregs_of_modeJan Hubicka1-2/+3
* combine.c (gen_lowpart_for_combine): Update handling of subregs_of_mode * flow.c (life_analysis, mark_used_regs): Likewise. * regclass.c (subregs_of_mode): Turn into single bitmap. (cannot_change-mode_set_regs, invalid_mode_change_p): Update dealing with subregs_of_mode * regs.h (subregs_of_mode): Update prototype. From-SVN: r63552
2003-02-27Patch for PR 9255James E Wilson1-0/+3
Patch for PR 9255 * combine.c (simplify_comparison): Require integral mode when permuting SUBREG with AND. From-SVN: r63514