sched-int.h (schedule_block): Adjust declaration.
[gcc.git] / gcc / ChangeLog
index b51cbbdb29a9db793c01cd157cc28334551b99d5..a9f6c47910bc35254075fa990022101c9803e000 100644 (file)
@@ -1,3 +1,423 @@
+2012-10-08  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * sched-int.h (schedule_block): Adjust declaration.
+       * sched-rgn.c (bb_state_array, bb_state): New static variables.
+       (sched_rgn_init): Initialize them.
+       (sched_rgn_free): Free them.
+       (schedule_region): Save scheduling state for future blocks, and
+       pass such state to schedule_block.
+       * params.def (PARAM_SCHED_STATE_EDGE_PROB_CUTOFF): New.
+       * doc/invoke.texi (--param): Document it.
+       * haifa-sched.c (schedule_block): New arg init_state.  Use it to
+       initialize state if nonnull.  All callers changed.
+       Call advance_one_cycle after scheduling.
+
+2012-10-08  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/54854
+       * doc/invoke.texi (AVR Options): Remove -mshort-calls.
+       * config/avr/avr.opt (-mshort-calls): Remove option.
+       * config/avr/avr.h (AVR_HAVE_JMP_CALL): Don't depend on
+       TARGET_SHORT_CALLS.
+
+2012-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/54685
+       * config/sh/sh.md (one_cmplsi2): Make insn_and_split.  Add manual
+       combine matching for an insn sequence where a ge:SI pattern can be used.
+
+2012-10-08  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/53528 C++11 attribute support
+       * plugin.h (register_scoped_attributes): Declare new function.
+       * tree.h (enu attribute_flags::ATTR_FLAG_CXX_11): New flag.
+       (lookup_scoped_attribute_spec, cxx_11_attribute_p)
+       (get_attribute_name, get_attribute_namespace): Declare new functions.
+       (struct attribute_spec): Remove const qualifier from the members.
+       * tree.c (comp_type_attributes, private_lookup_attribute)
+       (lookup_ident_attribute, remove_attribute, merge_attribute)
+       (attribute_hash_list, attribute_list_contained): Use
+       get_attribute_name.
+       * attribs.c (decl_attributes): Don't crash on error_mark_node.
+       Forbid c++11 attributes appertaining to type-specifiers.
+       (attribute_hash): Remove global variable.
+       (attributes_table): New global variable.
+       (find_attribute_namespace, register_scoped_attribute): New static
+       functions.
+       (register_scoped_attributes, lookup_scoped_attribute_spec)
+       (cxx11_attribute_p, get_attribute_name, get_attribute_namespace):
+       New public functions.
+       (init_attributes): Register all the GNU attributes into the "gnu"
+       namespace.
+       (register_attribute): Use register_scoped_attribute to register
+       the attribute into the "gnu" namespace.
+       (lookup_attribute_spec): Use lookup_scoped_attribute_spec to
+       lookup the attribute in the "gnu" namespace.
+       (decl_attributes): Use new get_attribute_namespace and
+       lookup_scoped_attribute_spec to consider attribute namespaces when
+       looking up attributes.  When operating in c++-11 mode, pass flag
+       ATTR_FLAG_CXX11 to the spec handler.
+
+2012-10-08  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/54815
+       * config/avr/avr.md (*add<mode>3, add<mode>3, addpsi3): Make
+       constraint alternative "r,0,r" slighly more expensive.
+       (sub<mode>3,
+       (andqi3, andhi3, andpsi3, andsi3): Ditto.
+       (iorqi3, iorhi3, iorpsi3, iorsi3): Ditto.
+       (xorhi3, xorpsi3, xorsi3): Ditto.
+
+2012-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/54760
+       * config/sh/sh.md (*mov<mode>_gbr_load, *mov<mode>_gbr_store): New
+       insns and accompanying unnamed splits.
+       * config/sh/predicates.md (general_movsrc_operand,
+       general_movdst_operand): Reject GBR addresses.
+       * config/sh/sh-protos.h (sh_find_equiv_gbr_addr): New declaration.
+       * config/sh/sh.c (sh_address_cost, sh_legitimate_address_p,
+       sh_secondary_reload): Handle GBR addresses.
+       (base_reg_disp): New class.
+       (sh_find_base_reg_disp, sh_find_equiv_gbr_addr): New functions.
+
+2012-10-08  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.c (mmix_output_octa): Don't assume
+       HOST_WIDEST_INT_PRINT_HEX starts with "0x".  Instead use
+       HOST_WIDE_INT_PRINT_HEX_PURE, falling back to
+       HOST_WIDEST_INT_PRINT_UNSIGNED.
+
+2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * machmode.h (GET_MODE_UNIT_PRECISION): New macro.
+       * simplify-rtx.c (simplify_truncation): New function,
+       extracted from simplify_subreg and (in small part) from
+       simplify_unary_operation_1.
+       (simplify_unary_operation_1) <TRUNCATE>: Use it.  Remove sign bit
+       test for !TRULY_NOOP_TRUNCATION_MODES_P.
+       (simplify_subreg): Use simplify_truncate for lowpart subregs
+       where both the inner and outer modes are scalar integers.
+       * config/mips/mips.c (mips_truncated_op_cost): New function.
+       (mips_rtx_costs): Adjust test for BADDU.
+       * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
+
+2012-10-07  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-analysis.c (do_estimate_edge_time): Return actual
+       time spent by the inlined sequence.
+       (do_estimate_edge_growth): Rename to ...
+       (do_estimate_edge_time): ... this one; return size of inlined sequence.
+       * ipa-inline.h (do_estimate_edge_size): New.
+       (do_estimate_edge_growth): Remove.
+       (estimate_edge_size): New function.
+       (estimate_edge_growth): Use it.
+
+2012-10-07  Jan Hubicka  <jh@suse.cz>
+
+       * lto-cgraph.c (lto_symtab_encoder_new): New parameter FOR_INPUT.
+       (lto_symtab_encoder_delete): Update.
+       (lto_symtab_encoder_encode): Update.
+       (compute_ltrans_boundary): Update.
+       (input_symtab): Update.
+       * lto-streamer.h (lto_symtab_encoder_new): Update.
+
+2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips-protos.h (mips_split_type): New enum.
+       (mips_split_64bit_move_p, mips_split_doubleword_move): Delete.
+       (mips_split_move_p, mips_split_move, mips_split_move_insn_p)
+       (mips_split_move_insn): Declare.
+       * config/mips/mips.c (mips_tuning_info): New variable.
+       (mips_load_store_insns): Use mips_split_move_insn_p instead of
+       mips_split_64bit_move_p.
+       (mips_emit_move_or_split, mips_mult_move_p): New functions.
+       (mips_split_64bit_move_p): Rename to...
+       (mips_split_move_p): ...this and take a mips_split_type argument.
+       Generalize to all moves.  Call mips_mult_move_p.
+       (mips_split_doubleword_move): Rename to...
+       (mips_split_move): ...this and take a mips_split_type argument.
+       Assert that mips_split_move_p holds.
+       (mips_insn_split_type, mips_split_move_insn_p, mips_split_move_insn):
+       New functions.
+       (mips_output_move): Use mips_split_move_p instead of
+       mips_split_64bit_move_p.  Handle MULT $0, $0 moves.
+       (mips_save_reg): Use mips_emit_move_or_split.
+       (mips_sim_reset): Assign to curr_state.  Call targetm.sched.init
+       and advance_state.
+       (mips_sim_init): Call targetm.sched.init_dfa_pre_cycle_insn and
+       targetm.sched.init_dfa_post_cycle_insn, if defined.
+       (mips_sim_next_cycle): Assign to curr_state.  Use advance_state
+       instead of state_transition.
+       (mips_sim_issue_insn): Assign to curr_state.  Use
+       targetm.sched.variable_issue to see how many more insns can be issued.
+       (mips_seq_time, mips_mult_zero_zero_cost)
+       (mips_set_fast_mult_zero_zero_p, mips_set_tuning_info)
+       (mips_expand_to_rtl_hook): New functions.
+       (TARGET_EXPAND_TO_RTL_HOOK): Define.
+       * config/mips/mips.md (move_type): Add imul.
+       (type): Map imul move_types to imul.
+       (*movdi_32bit, *movti): Add imul alternatives.
+       Use mips_split_move_insn_p and mips_split_move_insn instead of
+       mips_split_64bit_move_p and mips_split_doubleword_move in move
+       splitters.
+
+2012-10-06  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.c (print_operand) ['A']: Delete.
+
+2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/52764
+       * ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define
+       __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS.
+       * ginclude/stdint-gcc.h: In C++11 unconditionally define
+       limit and constant macros.
+
+2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/54249
+       * ginclude/stddef.h: In C++11 mode declare nullptr_t in the global
+       namespace.
+
+2012-10-06  Jan Hubicka  <jh@suse.cz>
+
+       PR lto/53831
+       PR lto/54776
+       * lto-streamer-out.c (produce_symtab): Cleanup; drop v1 API hack.
+
+2012-10-06  Dehao Chen  <dehao@google.com>
+
+       PR debug/54826
+       * gimple-low.c (lower_stmt): Set the block for call args.
+
+2012-10-06  Jan Hubicka  <jh@suse.cz>
+
+       * doc/invoke.texi (-fprofile-report): Document.
+       * common.opt (-fprofile-report): New option.
+       * toplev.c (finalize): Call dump_profile_report.
+       * toplev.h (profile_report): Declare.
+       * passes.c (profile_record): New static var.
+       (check_profile_consistency): New function.
+       (dump_profile_record): New function.
+       (execute_one_ipa_transform_pass): Call check_profile_consistency.
+       (execute_one_pass): Likewise.
+
+2012-10-06  Jan Hubicka  <jh@suse.cz>
+
+       PR lto/54790
+       * lto-streamer.h (lto_symtab_register_decl, lto_symtab_get_resolution,
+       lto_mark_nothrow_fndecl, lto_fixup_nothrow_decls): Remove.
+       * lto-symtab.c (lto_symtab_register_decl): Remove.
+
+2012-10-06  Andreas Schwab  <schwab@linux-m68k.org>
+
+       PR rtl-optimization/54739
+       * config/m68k/m68k.md (anddi3, iordi3, xordi3, one_cmpldi2): Remove.
+
+2012-10-06  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/54760
+       * config/sh/sh.md (define_constants): Add UNSPECV_GBR.
+       (get_thread_pointer, set_thread_pointer): New expanders.
+       (load_gbr): Rename to store_gbr.  Remove GBR_REG use.
+       (store_gbr): New insn.
+       * config/sh/sh.c (prepare_move_operands): Use gen_store_gbr instead of
+       gen_load_gbr in TLS_MODEL_LOCAL_EXEC case.
+       (sh1_builtin_p): New function.
+       (signature_args): Add SH_BLTIN_VP.
+       (bdesc): Add __builtin_thread_pointer and __builtin_set_thread_pointer.
+
+2012-10-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR rtl-optimization/54739
+       * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns
+       for 32-bit targets.  Adjust expanders.
+
+       * config/pa/pa.md: Adjust unamed HImode add insn pattern.
+
+2012-10-05  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/sh.c (builtin_description): Add is_enabled member.
+       (shmedia_builtin_p): New function.
+       (bdesc): Use shmedia_builtin_p for existing built-ins.
+       (sh_media_init_builtins, sh_init_builtins): Merge into single function
+       sh_init_builtins.  Add is_enabled checking.  Move variable declarations
+       to where they are actually used.
+       (sh_media_builtin_decl, sh_builtin_decl): Merge into single function
+       sh_builtin_decl.  Add is_enabled checking.
+       (sh_expand_builtin): Move variable declarations to where they are
+       actually used.
+
+2012-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-inline.c (expand_call_inline): Move VAR_DECLs with
+       PARM_DECL origins from remapped DECL_INITIAL's BLOCK_VARS
+       into id->block's BLOCK_VARS.
+
+       PR debug/54519
+       * ipa-split.c (split_function): Add debug args and debug source
+       and normal stmts for args_to_skip which are gimple regs.
+       * tree-inline.c (copy_debug_stmt): When inlining, adjust source
+       debug bind stmts to debug binds of corresponding DEBUG_EXPR_DECL.
+
+2012-10-05  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.md: Fix indentations of insn C snippets.
+
+2012-10-05  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/54811
+       * tree-ssa-live.c (clear_unused_block_pointer_1): Look at
+       DECL_DEBUG_EXPR again.
+
+2012-10-05  Jan Hubicka  <jh@suse.cz>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/33763
+       * tree-inline.c (expand_call_inline): Silently ignore always_inline
+       attribute for redefined extern inline functions.
+
+2012-10-04  Jan Hubicka  <jh@suse.cz>
+
+       * tree-vectorizer.h (vect_estimate_min_profitable_iters): Remove.
+       * tree-vect-loop.c (vect_estimate_min_profitable_iters): Declare here.
+       (vect_analyze_loop_operations): Use loop count estimate to rule out
+       unprofitable vectorization.
+       (vect_estimate_min_profitable_iters): Return
+       ret_min_profitable_estimate.
+
+2012-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/54810
+       * tree-vrp.c (register_edge_assert_for_2): Handle
+       NAME = (unsigned) NAME2; if (NAME cmp CST) for
+       narrowing casts to unsigned integral type like
+       NAME = NAME2 & CST2; if (NAME cmp CST) where CST2
+       is the max value of the unsigned integral type.
+
+2012-10-04  Jeff Law  <law@redhat.com>
+
+       * PR target/50356
+       * config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case.
+
+2012-10-04  Jason Merrill  <jason@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
+       ASM_WEAKEN_DECL with #if RS6000_WEAK.
+
+2012-10-04  Basile Starynkevitch  <basile@starynkevitch.net>
+
+        * gengtype.c (walk_type): Emit mark_hook when inside a
+          struct of a union member.
+
+2012-10-04  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/predicates.md (flash_operand): New predicate.
+       * config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
+       of memory_operand.
+
+2012-10-04  Tobias Burnus  <burnus@net-b.de>
+
+       * gcc.c (record_temp_file, add_sysrooted_prefix, process_command,
+       do_self_spec, compare_debug_dump_opt_spec_function): Plug memleaks.
+       (do_spec_1): Ditto, fix out-of-bound access.
+       * opts.c (common_handle_option): Plug memleak.
+
+2012-10-04  Jason Merrill  <jason@redhat.com>
+
+       * config/darwin.c (darwin_assemble_visibility): Treat
+       VISIBILITY_INTERNAL as hidden.
+
+       * config/darwin-c.c (find_subframework_file): Add missing const.
+       (framework_construct_pathname): Likewise.
+
+2012-10-04  Florian Weimer  <fweimer@redhat.com>
+
+       * doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma
+       GCC error.
+
+2012-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/54735
+       * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before
+       cleaning up the CFG.
+
+2012-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/47799
+       * tree-streamer-out.c (write_ts_block_tree_pointers): For
+       inlined functions outer scopes write the ultimate origin
+       as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION.
+       Do not stream the fragment chains.
+       * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise.
+       * dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL.
+       (dwarf2out_decl): Always output DECL_ABSTRACT function decls.
+
+2012-10-04  Arnaud Charlet  <charlet@adacore.com>
+
+       * dumpfile.h, dumpfile.c: Remove TDI_ada.
+
+2012-10-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
+
+       * config/i386/i386.c (ix86_dep_by_shift_count_body) : Add
+       check on reload_completed since it can be invoked before
+       register allocation phase in pre-reload schedule.
+       (ia32_multipass_dfa_lookahead) : Do not use dfa_lookahead for
+       pre-reload schedule to save compile time.
+       (ix86_sched_reorder) : Do not perform ready list reordering for
+       pre-reload schedule to save compile time.
+       (insn_is_function_arg) : New function. Returns true if lhs of insn is
+       HW function argument register.
+       (add_parameter_dependencies) : New function. Add output dependencies
+       for chain of function adjacent arguments if only there is a move to
+       likely spilled HW registers. Return first argument if at least one
+       dependence was added or NULL otherwise.
+       (avoid_func_arg_motion) : New function. Add output or anti dependency
+       from insn to first_arg to restrict code motion.
+       (add_dependee_for_func_arg) : New function. Avoid cross block motion of
+       function argument through adding dependency from the first non-jump
+       insn in bb.
+       (ix86_dependencies_evaluation_hook) : New function. Hook for
+       pre-reload schedule: avoid motion of function arguments passed in
+       likely spilled HW registers.
+       (ix86_adjust_priority) : New function. Hook for pre-reload schedule:
+       set priority of moves from likely spilled HW registers to maximum to
+       schedule them as soon as possible.
+       (ix86_sched_init_global): Do not perform multipass scheduling for
+       pre-reload schedule to save compile time.
+
+2012-10-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * configure.ac (noexception_flags): Add -fasynchronous-unwind-tables.
+       * configure: Regenerate.
+
+2012-10-04  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_can_use_simple_return_p): Return false for
+       SHmedia and SHcompact using call cookie.
+       * config/sh/sh.md (epilogue): Emit non-inlined return insns for
+       SHmedia and SHcompact using call cookie.
+
+2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/51244
+       * config/sh/sh.md (*mov_t_msb_neg): New insn and two accompanying
+       unnamed split patterns.
+
+2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/50457
+       * config/sh/sh.c (parse_validate_atomic_model_option): Handle name
+       strings in sh_atomic_model.
+       * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation
+       to ...
+       * config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function.
+       Add __SH1__ and __SH2__ defines.  Add __SH_ATOMIC_MODEL_*__ define.
+       * config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name
+       variables.
+       (sh_cpu_cpp_builtins): Declare new function.
+
 2012-10-03  Dehao Chen  <dehao@google.com>
 
        PR middle-end/54782
 
 2012-10-03  Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
 
-       *  config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
+       * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
        in SSE and YMM state support check for -march=native.
 
 2012-10-03  Nick Clifton  <nickc@redhat.com>
        * config/rx/rx.opt (mwarn-multiple-fast-interrupts): New option.
        * doc/invoke.texi: Document the option.
 
-2012-09-03  Mark Kettenis  <kettenis@openbsd.org>
+2012-10-03  Mark Kettenis  <kettenis@openbsd.org>
 
        * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
        default_use_cxa_atexit to yes.
 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/54741
-       *  config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
+       * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
        (XSTATE_FP): Likewise.
        (XSTATE_SSE): Likewise.
        (XSTATE_YMM): Likewise.
        * tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE
        CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE,
        and don't check index.
-       * tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR
-       ctor elements first if their type isn't compatible with vector
-       element type.
+       * tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR ctor
+       elements first if their type isn't compatible with vector element type.
 
 2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>
 
 
 2012-08-17  Nick Clifton  <nickc@redhat.com>
 
-       * config/fr30/fr30.md  (cbranchsi4): Remove mode from comparison.
+       * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
        (branch_true): Likewise.
        (branch_false): Likewise.
 
        * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
        (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
        (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
-       (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
+       (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
 
 2012-04-25  Sriraman Tallam  <tmsriram@google.com>