summaryrefslogtreecommitdiff
path: root/gcc/combine.c
Commit message (Collapse)AuthorAgeFilesLines
* * combine.c (subst, combine_simlify_rtx): Add new argument, use itmkuvyrkov2011-04-151-28/+42
| | | | | | | | to track processing of conditionals. Update all callers. (try_combine, simplify_if_then_else): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172486 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (update_cfg_for_uncondjump): Instead of testing at_endjakub2011-04-121-5/+6
| | | | | | | | | assert it is always true. (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump moves. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172329 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/48549jakub2011-04-121-4/+11
| | | | | | | | | | | | * combine.c (propagate_for_debug): Also stop after BB_END of this_basic_block. Process LAST and just stop processing after it. (combine_instructions): If last_combined_insn has been deleted, set last_combined_insn to its PREV_INSN. * g++.dg/opt/pr48549.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172311 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (combine_validate_cost): Adjust comments. Set registeredebotcazou2011-04-081-13/+15
| | | | | | | cost of I0 to zero at the end, if any. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172216 138bc75d-0d04-0410-961f-82ee72b054a4
* PR debug/48343jakub2011-04-071-26/+48
| | | | | | | | | | | | | * combine.c (combine_instructions): Add last_combined_insn, update it if insn is after it, pass it to all try_combine calls. (try_combine): Add last_combined_insn parameter, pass it instead of i3 to propagate_for_debug. * gcc.dg/torture/pr48343.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172108 138bc75d-0d04-0410-961f-82ee72b054a4
* PR bootstrap/48469froydnj2011-04-051-0/+2
| | | | | | | | * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171998 138bc75d-0d04-0410-961f-82ee72b054a4
* fix compilation on AUTO_INC_DEC targetsfroydnj2011-04-051-9/+14
| | | | | | | | | * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links as an rtx. (try_combine) [AUTO_INC_DEC]: Declare a local link rtx. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171995 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c: Include obstack.h.froydnj2011-04-051-125/+133
| | | | | | | | | | | | | | | | | | | (struct insn_link): Define. (uid_log_links): Adjust type. (FOR_EACH_LOG_LINK): New macro. (insn_link_obstack): Declare. (alloc_insn_link): Define. (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust type of link variables. (find_single_use, insn_a_feeds_b, combine_instructions): Likewise. (try_combine, record_promoted_values, distribute_notes): Likewise. (distribute_links): Likewise. Tweak prototype. (clear_log_links): Delete. (adjust_for_new_dest): Call alloc_insn_link. * Makefile.in (combine.o): Depend on $(OBSTACK_H). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171993 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (try_combine): Remove useless local variable.ebotcazou2011-04-031-16/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171901 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (simplify_set): Try harder to find the best CC mode whenebotcazou2011-03-221-1/+15
| | | | | | | simplifying a nested COMPARE on the RHS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171304 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>cltang2011-03-181-6/+4
| | | | | | | | | | | * combine.c (try_combine): Do simplification only call of subst() on i2 even when i1 is present. Update comments. testsuite/ * gcc.target/arm/unsigned-extend-1.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171138 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert the last change on cant_combine_insn_p.hjl2011-03-181-6/+0
| | | | | | | | | | | 2011-03-17 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/47725 * combine.c (cant_combine_insn_p): Don't check zero/sign extended hard registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171125 138bc75d-0d04-0410-961f-82ee72b054a4
* Check zero/sign extended hard registers.hjl2011-03-181-0/+6
| | | | | | | | | | | | | | | | | | | | gcc/ 2011-03-17 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/47725 * combine.c (cant_combine_insn_p): Check zero/sign extended hard registers. gcc/testsuite/ 2011-03-17 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/47725 * gcc.dg/torture/pr47725.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171124 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert cant_combine_insn_p change.hjl2011-02-151-6/+0
| | | | | | | | | | | | | | | | | | | gcc/ 2011-02-15 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/47725 * combine.c (cant_combine_insn_p): Revert the last change. gcc/testsuite/ 2011-02-15 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/47725 * gcc.dg/torture/pr47725.c: Removed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170197 138bc75d-0d04-0410-961f-82ee72b054a4
* Check zero/sign extended hard registers.hjl2011-02-151-0/+6
| | | | | | | | | | | | | | | | | | | | gcc/ 2011-02-15 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/47725 * combine.c (cant_combine_insn_p): Check zero/sign extended hard registers. gcc/testsuite/ 2011-02-15 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/47725 * gcc.dg/torture/pr47725.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170179 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/47665jakub2011-02-101-1/+2
| | | | | | | | | | * combine.c (make_compound_operation): Only change shifts into multiplication for SCALAR_INT_MODE_P. * gcc.target/i386/pr47665.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170000 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi: Remove reference to compiler internals fromsteven2011-02-061-4/+0
| | | | | | | | | | user documentation. * reg-notes.def: Remove REG_VALUE_PROFILE. * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169861 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/46878dj2011-01-261-1/+7
| | | | | | | | | | * combine.c (insn_a_feeds_b): Check for the implicit cc0 setter/user dependency as well. * gcc.dg/pr46878-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169307 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/47157jakub2011-01-031-2/+11
| | | | | | | | | | | * combine.c (try_combine): If undobuf.other_insn becomes (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it and set *new_direct_jump_p too. * gcc.c-torture/compile/pr47157.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168439 138bc75d-0d04-0410-961f-82ee72b054a4
* * hwint.c: New. Extracted from toplev.c.jsm282010-11-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2): Move from toplev.h. * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2): Move to hwint.c. * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2): Move to hwint.h. * builtins.c, combine.c, config/i386/winnt.c, double-int.c, explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c, ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c, real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c, stor-layout.c, tree-dfa.c, tree-ssa-alias.c, tree-ssa-loop-niter.c, tree-vect-data-refs.c, tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c, tree-vrp.c: Don't include toplev.h. * genattrtab.c, genconditions.c, genemit.c, genextract.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include toplev.h in generated output. * Makefile.in (OBJS-common): Add hwint.o. Dependencies for above files changed to remove toplev.h. (hwint.o): New. (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o, insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on toplev.h. * config/i386/t-cygming (winnt.o): Don't depend on toplev.h. * config/i386/t-interix (winnt.o): Don't depend on toplev.h. fortran: * trans-common.c: Don't include toplev.h. java: * boehm.c: Don't include toplev.h. * Make-lang.in (java/boehm.o): Don't depend on toplev.h. lto: * lto-object.c: Don't include toplev.h. * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167301 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/46637jakub2010-11-251-2/+4
| | | | | | | | | | | * combine.c (try_combine): When substing i2dest for i2src, pass 1 as last argument even if i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src. * gcc.c-torture/compile/pr46637.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167148 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/46440jakub2010-11-171-1/+19
| | | | | | | | | | | * combine.c (update_cfg_for_uncondjump): When changing an indirect jump into unconditional jump, remove BARRIERs from bb's footer. * gcc.dg/pr46440.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166867 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/46490ebotcazou2010-11-161-3/+3
| | | | | | | * combine.c (expand_compound_operation): Fix thinko. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166830 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (try_combine): Fix formatting issues, improve comments andebotcazou2010-11-031-19/+29
| | | | | | | fix a pasto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166263 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/46034jakub2010-11-031-4/+9
| | | | | | | | | | | | | | | | PR rtl-optimization/46212 PR rtl-optimization/46248 * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src before i0dest -> i0src substitution and pass 1 instead of 0 as last argument to subst on i2pat. * gcc.c-torture/compile/pr46034.c: New test. * gcc.c-torture/compile/pr46248.c: New test. * gcc.dg/pr46212.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166231 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (set_nonzero_bits_and_sign_copies): Use unsignedebotcazou2010-10-281-110/+112
| | | | | | | | | | | | | | | | | | | | | | | arithmetics in masking operations. (contains_muldiv): Likewise. (try_combine): Likewise. (find_split_point): Likewise. (combine_simplify_rtx): Likewise. (simplify_if_then_else): Likewise. (simplify_set): Likewise. (expand_compound_operation): Likewise. (expand_field_assignment): Likewise. (make_extraction): Likewise. (extract_left_shift): Likewise. (make_compound_operation): Likewise. (force_to_mode): Likewise. (make_field_assignment): Likewise. (reg_nonzero_bits_for_combine): Likewise. (simplify_shift_const_1): Likewise. (simplify_comparison): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166027 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (try_combine): If insns need to be kept around,jiez2010-10-251-0/+12
| | | | | | | | | | check that they can be copied in the merged instruction. testsuite/ g++.dg/opt/combine.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165911 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/45966bernds2010-10-191-0/+2
| | | | | | | | * combine.c (try_combine): If added_sets_2, deal with the case where i0 feeds i1 and i1 feeds i2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165674 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/45394ebotcazou2010-10-061-59/+37
| | | | | | | | | | | | | | | * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust. (struct rtx_subst_pair): Remove AFTER field. (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec. (propagate_for_debug): Remove MOVE parameter and adjust. (try_combine): In the special case where I2 is a PARALLEL, combine only destinations of SETs and set I2SRC to the I2 source. Adjust calls to propagate_for_debug throughout. * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165030 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:jsm282010-09-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * optc-gen.awk: Generate global_options initializer instead of individual variables. Add x_ prefix to names of structure members. * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to names of structure members. * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Document. * doc/tm.texi: Regenerate. * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER. * c-parser.c (disable_extension_diagnostics, restore_extension_diagnostics): Update names of cpp_options members. * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * common.opt (fcompare-debug-second): Don't use Var. * config/alpha/alpha.h (target_flags): Remove. * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Define. * config/bfin/bfin.h (target_flags): Remove. * config/cris/cris.h (target_flags): Remove. * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of cl_target_option members. * config/i386/i386.c (ix86_force_align_arg_pointer): Remove. (ix86_function_specific_print, ix86_valid_target_attribute_tree, ix86_can_inline_p): Update names of cl_target_option members. * config/i386/i386.h (ix86_isa_flags): Remove. * config/lm32/lm32.h (target_flags): Remove. * config/mcore/mcore.h (mcore_stack_increment): Remove. * config/mcore/mcore.md (addsi3): Remove extern declaration of flag_omit_frame_pointer. * config/mep/mep.h (target_flags): Remove. * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Define. * config/mmix/mmix.h (target_flags): Remove. * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic, flag_expensive_optimizations): Remove. * config/s390/s390.h (flag_pic): Remove. * config/score/score-conv.h (target_flags): Remove. * config/sh/sh.h (sh_fixed_range_str): Remove. * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove. * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * diagnostic.c (diagnostic_initialize): Update names of diagnostic_context members. * diagnostic.h (diagnostic_context): Rename inhibit_warnings and warn_system_headers. (diagnostic_report_warnings_p): Update for new names. * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and HARD_FRAME_POINTER_IS_ARG_POINTER. * flags.h (flag_compare_debug): Declare. * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * opts.c (flag_compare_debug): Define. (common_handle_option): Update names of diagnostic_context members. Handle -fcompare-debug-second. (fast_math_flags_struct_set_p): Update names of cl_optimization members. * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use. * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER. gcc/c-family: * c-common.c (c_cpp_error): Update names of diagnostic_context members. * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of cl_optimization members. * c-opts.c (warning_as_error_callback, c_common_handle_option, sanitize_cpp_opts, finish_options): Update names of cpp_options members. gcc/fortran: * cpp.c (cpp_define_builtins): Update names of gfc_option_t members. (gfc_cpp_post_options): Update names of cpp_options members. (cb_cpp_error): Update names of diagnostic_context members. * f95-lang.c (gfc_init_builtin_functions): Update names of gfc_option_t members. * gfortran.h (gfc_option_t): Rename warn_conversion and flag_openmp. * intrinsic.c (gfc_convert_type_warn): Update names of gfc_option_t members. * options.c (gfc_init_options, gfc_post_options, set_Wall, gfc_handle_option): Update names of gfc_option_t members. * parse.c (next_free, next_fixed): Update names of gfc_option_t members. * scanner.c (pedantic): Remove extern declaration. (skip_free_comments, skip_fixed_comments, include_line): Update names of gfc_option_t members. * trans-decl.c (gfc_generate_function_code): Update names of gfc_option_t members. gcc/java: * java-tree.h (flag_filelist_file, flag_assert, flag_jni, flag_force_classes_archive_check, flag_redundant, flag_newer, flag_use_divide_subroutine, flag_use_atomic_builtins, flag_use_boehm_gc, flag_hash_synchronization, flag_check_references, flag_optimize_sci, flag_indirect_classes, flag_indirect_dispatch, flag_store_check, flag_reduced_reflection): Remove. * jcf-dump.c (flag_newer): Remove. * jcf.h (quiet_flag): Remove. * parse.h (quiet_flag): Remove. libcpp: * include/cpplib.h (cpp_options): Rename warn_deprecated, warn_traditional, warn_long_long and pedantic. * directives.c (directive_diagnostics, _cpp_handle_directive): Update names of cpp_options members. * expr.c (cpp_classify_number, eval_token): Update names of cpp_options members. * init.c (cpp_create_reader, post_options): Update names of cpp_options members. * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of cpp_options members. * macro.c (parse_params): Update names of cpp_options members. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164723 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/45695jakub2010-09-201-52/+24
| | | | | | | | | | | * combine.c (try_combine): When splitting a two set pattern, make sure the pattern which will be put into i2 doesn't use REGs or MEMs set by insns in between i2 and i3. * gcc.c-torture/execute/pr45695.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164431 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/45617jakub2010-09-131-13/+26
| | | | | | | | | | * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C even if low N bits of X aren't known to be zero. * gcc.target/i386/pr45617.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164257 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2010-09-061-1/+1
| | | | | | | | | | | | * combine.c (try_combine): Set subst_low_luid to i0. 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * gcc.dg/20100906-1.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163917 138bc75d-0d04-0410-961f-82ee72b054a4
* * target.def (class_likely_spilled_p): New hook.aesok2010-09-021-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document. * doc/tm.texi: Regenerate. * targhooks.c (default_class_likely_spilled_p): New function. * targhooks.h (default_class_likely_spilled_p): Declare. * regs.h (CLASS_LIKELY_SPILLED_P): Remove. * combine.c: (cant_combine_insn_p, likely_spilled_retval_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro. Use fixed_reg_set instead of fixed_regs. * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook. * calls.c (avoid_likely_spilled_reg): Ditto. * ira-conflicts.c: (ira_build_conflicts): Ditto. * ira.c (update_equiv_regs): Ditto. * mode-switching.c (create_pre_exit): Ditto. * regmove.c (find_matches): Ditto. (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook. * reload.c (SMALL_REGISTER_CLASS_P): Remove macro. (small_register_class_p): New inline function. (push_secondary_reload, find_reusable_reload, find_reloads): Use small_register_class_p instead of SMALL_REGISTER_CLASS_P. * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove. * config/i386/i386.c (ix86_class_likely_spilled_p): New. (TARGET_CLASS_LIKELY_SPILLED_P): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163779 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/44858jakub2010-08-251-1/+52
| | | | | | | | | | * combine.c (try_combine): If recog_for_combine added CLOBBERs to newi2pat, make sure they don't affect newpat. * gcc.c-torture/execute/pr44858.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163552 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/45400jakub2010-08-251-1/+3
| | | | | | | | | | * combine.c (simplify_shift_const_1) <case SUBREG>: Only use SUBREG_REG if both modes are of MODE_INT class. * g++.dg/other/i386-8.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163551 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (find_split_point): Undo canonicalization of multiply-addbernds2010-08-251-0/+17
| | | | | | | | | | to (minus x (mult)) when it seems likely that this will increase the chances of a split. * gcc.target/i386/combine-mul.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163547 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/45355bernds2010-08-251-1/+1
| | | | | | | | * combine.c (try_combine): Use reg_overlap_mentioned_p rather than dead_or_set_p when computing i0_feeds_i2_n. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163546 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/froydnj2010-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vec.h (FOR_EACH_VEC_ELT): Define. * c-decl.c: Use it. * cfgloop.c: Likewise. * cfgloopmanip.c: Likewise. * cgraph.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * config/bfin/bfin.c: Likewise. * config/mips/mips.c: Likewise. * config/rs6000/rs6000.c: Likewise. * dbxout.c: Likewise. * df-scan.c: Likewise. * dominance.c: Likewise. * dse.c: Likewise. * dwarf2out.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * ggc-common.c: Likewise. * gimplify.c: Likewise. * graphite-blocking.c: Likewise. * graphite-clast-to-gimple.c: Likewise. * graphite-dependences.c: Likewise. * graphite-interchange.c: Likewise. * graphite-poly.c: Likewise. * graphite-scop-detection.c: Likewise. * graphite-sese-to-poly.c: Likewise. * graphite.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * implicit-zee.c: Likewise. * ipa-prop.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-emit.c: Likewise. * lambda-code.c: Likewise. * loop-invariant.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lto-cgraph.c: Likewise. * lto-opts.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.c: Likewise. * lto-symtab.c: Likewise. * matrix-reorg.c: Likewise. * opts.c: Likewise. * predict.c: Likewise. * print-tree.c: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched.c: Likewise. * sese.c: Likewise. * stor-layout.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-chrec.c: Likewise. * tree-data-ref.c: Likewise. * tree-emutls.c: Likewise. * tree-inline.c: Likewise. * tree-into-ssa.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-loop-linear.c: Likewise. * tree-mudflap.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-parloops.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * value-prof.c: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. * vmsdbgout.c: Likewise. gcc/ada/ * gcc-interface/decl.c: Use FOR_EACH_VEC_ELT. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. gcc/c-family/ * c-common.c: Use FOR_EACH_VEC_ELT. * c-gimplify.c: Likewise. * c-pragma.c: Likewise. gcc/cp/ * call.c: Use FOR_EACH_VEC_ELT. * class.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * error.c: Likewise. * except.c: Likewise. * mangle.c: Likewise. * method.c: Likewise. * name-lookup.c: Likewise. * parser.c: Likewise. * pt.c: Likewise. * repo.c: Likewise. * semantics.c: Likewise. * typeck2.c: Likewise. gcc/fortran/ * trans-openmp.c: Use FOR_EACH_VEC_ELT. gcc/java/ * class.c: Use FOR_EACH_VEC_ELT. * expr.c: Likewise. * jcf-parse.c: Likewise. * resource.c: Likewise. gcc/lto/ * lto.c: Use FOR_EACH_VEC_ELT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163401 138bc75d-0d04-0410-961f-82ee72b054a4
* PR bootstrap/45350bernds2010-08-191-3/+3
| | | | | | | | * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix a comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163389 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/42172bernds2010-08-191-147/+442
| | | | | | | | | | | | | | | | | | * combine.c (combine_validate_cost): New arg I0. All callers changed. Take its cost into account if nonnull. (insn_a_feeds_b): New static function. (combine_instructions): Look for four-insn combinations. (can_combine_p): New args PRED2, SUCC2. All callers changed. Take them into account when computing all_adjacent and looking for other uses. (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers changed. Treat them like I1DEST and I1_NOT_IN_SRC. (try_combine): New arg I0. Handle four-insn combinations. (distribute_notes): New arg ELIM_I0. All callers changed. Treat it like ELIM_I1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163383 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/45182bernds2010-08-101-5/+7
| | | | | | | | | | | * combine.c (make_compound_operation): Don't try to convert shifts into multiplications for modes that aren't SCALAR_INT_MODE_P. PR middle-end/45182 * gcc.c-torture/compile/pr45182.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163057 138bc75d-0d04-0410-961f-82ee72b054a4
* Replace exact_log2(x & -x) in favor of more direct computation.rth2010-08-051-1/+1
| | | | | | | | | | | | | | | * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New. (floor_log2): Use clz_hwi. (exact_log2): Use ctz_hwi. * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New. * builtins.c (fold_builtin_bitop): Use them. * simplify-rtx.c (simplify_const_unary_operation): Likewise. * combine.c (get_pos_from_mask): Use ctz_hwi. * double-int.c (double_int_ctz): Likewise. * explow.c (force_reg): Likewise. * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162920 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_binary_operation_1): Try to simplify awaybernds2010-08-031-3/+70
| | | | | | | | | | | | | NEG as operand of a MULT by merging it with the other operand. * combine.c (make_compound_operation): Use trunc_int_for_mode when generating a MULT with constant. Canonicalize PLUS and MINUS involving MULT. * config/arm/constraints.md (M): Examine only 32 bits of a HOST_WIDE_INT. * config/arm/predicates.md (power_of_two_operand): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162849 138bc75d-0d04-0410-961f-82ee72b054a4
* PR debug/45055jakub2010-07-301-23/+0
| | | | | | | | | | | | | | | | | | | | | PR rtl-optimization/45137 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New prototypes. * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New functions. * combine.c (next_nonnote_nondebug_insn): Removed. * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn. * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn. * sched-deps.c (sched_analyze_insn): Likewise. (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn. * rtlanal.c (canonicalize_condition): Likewise. * postreload.c (reload_combine_recognize_pattern): Likewise. (reload_cse_move2add): Use next_nonnote_nondebug_insn. * gcc.dg/pr45055.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162714 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-28 Richard Guenther <rguenther@suse.de>rguenth2010-07-291-1/+1
| | | | | | | | | * double-int.h (double_int_and_not): New function. * combine.c (try_combine): Use it. * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162681 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operandsbernds2010-07-271-2/+2
| | | | | | | | | | | | | | | | 4 and 5. * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly. * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of CODE_LABELs and NOTEs. * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call. * combine.c (try_combine): Likewise. * ira.c (setup_prohibited_mode_move_regs): Likewise. * print-rtl.c (print_rtx): Start REG_NOTES on a new line. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162602 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/froydnj2010-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree.h (DECL_CHAIN): Define. * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * c-decl.c: Likewise. * c-parser.c: Likewise. * c-typeck.c: Likewise. * cfgexpand.c: Likewise. * cgraph.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * config/alpha/alpha.c: Likewise. * config/arm/arm.c: Likewise. * config/frv/frv.c: Likewise. * config/i386/i386.c: Likewise. * config/i386/winnt-cxx.c: Likewise. * config/ia64/ia64.c: Likewise. * config/iq2000/iq2000.c: Likewise. * config/mep/mep.c: Likewise. * config/mips/mips.c: Likewise. * config/pa/som.h: Likewise. * config/rs6000/rs6000.c: Likewise. * config/s390/s390.c: Likewise. * config/sh/sh.c: Likewise. * config/sh/symbian-cxx.c: Likewise. * config/sparc/sparc.c: Likewise. * config/spu/spu.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/vxworks.c: Likewise. * config/xtensa/xtensa.c: Likewise. * coverage.c: Likewise. * dbxout.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expr.c: Likewise. * function.c: Likewise. * gimple-low.c: Likewise. * gimple-pretty-print.c: Likewise. * gimplify.c: Likewise. * integrate.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * ipa-split.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa-type-escape.c: Likewise. * langhooks.c: Likewise. * lto-cgraph.c: Likewise. * omp-low.c: Likewise. * stor-layout.c: Likewise. * tree-cfg.c: Likewise. * tree-complex.c: Likewise. * tree-dfa.c: Likewise. * tree-dump.c: Likewise. * tree-inline.c: Likewise. * tree-mudflap.c: Likewise. * tree-nested.c: Likewise. * tree-object-size.c: Likewise. * tree-pretty-print.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-tailcall.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. gcc/ada/ * gcc-interface/decl.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. * gcc-interface/utils2.c: Likewise. gcc/c-family/ * c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * c-format.c: Likewise. gcc/cp/ * cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. * call.c: Likewise. * class.c: Likewise. * cp-gimplify.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * init.c: Likewise. * mangle.c: Likewise. * name-lookup.c: Likewise. * optimize.c: Likewise. * parser.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. * semantics.c: Likewise. * typeck.c: Likewise. * typeck2.c: Likewise. gcc/fortran/ * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * trans-common.c: Likewise. * trans-decl.c: Likewise. * trans-types.c: Likewise. * trans.c: Likewise. gcc/java/ * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. * boehm.c: Likewise. * class.c: Likewise. * decl.c: Likewise. * expr.c: Likewise. * jcf-parse.c: Likewise. * typeck.c: Likewise. * verify-glue.c: Likewise. gcc/objc/ * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. gcc/testsuite/ * g++.dg/plugin/attribute_plugin.c: Carefully replace TREE_CHAIN with DECL_CHAIN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162223 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>manu2010-07-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * toplev.h: Do not include diagnostic-core.h. Include diagnostic-core.h in every file that includes toplev.h. * c-tree.h: Do not include toplev.h. * pretty-print.h: Update comment. * Makefile.in: Update dependencies. * alias.c: Include diagnostic-core.h in every file that includes toplev.h. * attribs.c: Likewise. * auto-inc-dec.c: Likewise. * bb-reorder.c: Likewise. * bt-load.c: Likewise. * caller-save.c: Likewise. * calls.c: Likewise. * cfg.c: Likewise. * cfganal.c: Likewise. * cfgbuild.c: Likewise. * cfgcleanup.c: Likewise. * cfghooks.c: Likewise. * cfgloop.c: Likewise. * combine.c: Likewise. * config/alpha/alpha.c: Likewise. * config/arc/arc.c: Likewise. * config/arm/arm.c: Likewise. * config/arm/pe.c: Likewise. * config/avr/avr.c: Likewise. * config/bfin/bfin.c: Likewise. * config/cris/cris.c: Likewise. * config/crx/crx.c: Likewise. * config/darwin-c.c: Likewise. * config/darwin.c: Likewise. * config/fr30/fr30.c: Likewise. * config/frv/frv.c: Likewise. * config/h8300/h8300.c: Likewise. * config/host-darwin.c: Likewise. * config/i386/i386.c: Likewise. * config/i386/netware.c: Likewise. * config/i386/nwld.c: Likewise. * config/i386/winnt-cxx.c: Likewise. * config/i386/winnt-stubs.c: Likewise. * config/i386/winnt.c: Likewise. * config/ia64/ia64-c.c: Likewise. * config/ia64/ia64.c: Likewise. * config/iq2000/iq2000.c: Likewise. * config/lm32/lm32.c: Likewise. * config/m32c/m32c-pragma.c: Likewise. * config/m32c/m32c.c: Likewise. * config/m32r/m32r.c: Likewise. * config/m68hc11/m68hc11.c: Likewise. * config/m68k/m68k.c: Likewise. * config/mcore/mcore.c: Likewise. * config/mep/mep-pragma.c: Likewise. * config/mep/mep.c: Likewise. * config/mmix/mmix.c: Likewise. * config/mn10300/mn10300.c: Likewise. * config/moxie/moxie.c: Likewise. * config/pa/pa.c: Likewise. * config/pdp11/pdp11.c: Likewise. * config/picochip/picochip.c: Likewise. * config/rs6000/rs6000-c.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rx/rx.c: Likewise. * config/s390/s390.c: Likewise. * config/score/score.c: Likewise. * config/score/score3.c: Likewise. * config/score/score7.c: Likewise. * config/sh/sh.c: Likewise. * config/sh/symbian-base.c: Likewise. * config/sh/symbian-c.c: Likewise. * config/sh/symbian-cxx.c: Likewise. * config/sol2-c.c: Likewise. * config/sol2.c: Likewise. * config/sparc/sparc.c: Likewise. * config/spu/spu.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/v850/v850-c.c: Likewise. * config/v850/v850.c: Likewise. * config/vax/vax.c: Likewise. * config/vxworks.c: Likewise. * config/xtensa/xtensa.c: Likewise. * convert.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * dbgcnt.c: Likewise. * dbxout.c: Likewise. * ddg.c: Likewise. * dominance.c: Likewise. * emit-rtl.c: Likewise. * explow.c: Likewise. * expmed.c: Likewise. * fixed-value.c: Likewise. * fold-const.c: Likewise. * fwprop.c: Likewise. * gcse.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * ggc-zone.c: Likewise. * gimple-low.c: Likewise. * gimplify.c: Likewise. * graph.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * implicit-zee.c: Likewise. * integrate.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-conflicts.c: Likewise. * ira-costs.c: Likewise. * ira-lives.c: Likewise. * ira.c: Likewise. * lists.c: Likewise. * loop-doloop.c: Likewise. * loop-iv.c: Likewise. * lto-opts.c: Likewise. * lto-symtab.c: Likewise. * main.c: Likewise. * modulo-sched.c: Likewise. * optabs.c: Likewise. * params.c: Likewise. * plugin.c: Likewise. * postreload-gcse.c: Likewise. * postreload.c: Likewise. * predict.c: Likewise. * profile.c: Likewise. * real.c: Likewise. * regcprop.c: Likewise. * reginfo.c: Likewise. * regmove.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * rtl.c: Likewise. * rtlanal.c: Likewise. * sched-deps.c: Likewise. * sched-ebb.c: Likewise. * sched-rgn.c: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * simplify-rtx.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * targhooks.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-dump.c: Likewise. * tree-eh.c: Likewise. * tree-inline.c: Likewise. * tree-nomudflap.c: Likewise. * tree-object-size.c: Likewise. * tree-optimize.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-phinodes.c: Likewise. * tree-profile.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-ssa.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vrp.c: Likewise. * varasm.c: Likewise. * vec.c: Likewise. * web.c: Likewise. * xcoffout.c: Likewise. c-family/ * c-common.h: Include diagnostic-core.h. Error if already included. * c-semantics.c: Do not define GCC_DIAG_STYLE here. cp/ * cp-tree.h: Do not include toplev.h. java/ * boehm.c: Include diagnostic-core.h in every file that includes toplev.h. * class.c: Likewise. * constants.c: Likewise. * decl.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * jcf-parse.c: Likewise. * mangle.c: Likewise. * mangle_name.c: Likewise. * resource.c: Likewise. * typeck.c: Likewise. * verify-glue.c: Likewise. ada/ * gcc-interface/utils.c: Include diagnostic-core.h in every file that includes toplev.h. lto/ * lto-coff.c: Include diagnostic-core.h in every file that includes toplev.h. * lto-elf.c: Likewise. * lto-lang.c: Likewise. * lto-macho.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161943 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/44659ebotcazou2010-06-291-12/+18
| | | | | | | | * combine.c (make_compound_operation) <SUBREG>: Do not return the result of force_to_mode if it partially re-expanded the compound. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161523 138bc75d-0d04-0410-961f-82ee72b054a4