- 30 Jun, 2010 14 commits
-
-
* config/rx/rx-modes.def: New file. * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17. (CC_REGNUM): Define. (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc register. (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete. (SELECT_CC_MODE): Define. * config/rx/rx.md (CC_REG): Define. Update all patterns to use (reg:CC CC_REG) instead of (cc0). (attr "cc"): Delete. (cbranchsi4): Do not split compare and branch here. Instead move it to... (cbranchsi4_<code>): ... here. New patterns. (cmpsi): Call rx-compare_redundant to find out if it is necessary to emit the compare instruction. * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of cc_status flags. (rx_get_stack_layout): Iterate up to before CC_REGNUM not FIRST_PSEUDO_REGNUM. (rx_expand_prologue, rx_expand_epilogue): Likewise. (rx_notice_update_cc): Delete. (rx_cc_modes_compatible): New function. (flags_needed_for_conditional): New function. (flags_from_mode): New function. (rx_compare_redundant): New function - scans backwards through insn list to find out if condition flags are already set correctly. (TARGET_CC_MODES_COMPATIBLE): Define. * config/rx/rx-protos.h (rx_compare_redundant): Prototype. * config/rx/rx.h (BRANCH_COST): Define. (REGISTER_MOVE_COST): Define. * config/rx/predicates (rx_source_operand): Allow all constant types. * config/rx/rx.md (addsi3): Add alternative for swapped operands. (tstsi4): New pattern. * config/rx/rx.c (rx_memory_move_cost): Define. (TARGET_MEMORY_MOVE_COST): Define. From-SVN: r161592
Nick Clifton committed -
2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org> * tree.h (block_may_fallthru): Declare here. * tree-flow.h (block_may_fallthru): Do not declare here. * c-typeck.c: Do not include tree-flow.h. Include gimple.h and bitmap.h * Makefile.in (c-typeck.o): Update dependencies. c-family/ * c-gimplify.c: Do not include tree-flow.h cp/ * tree.c: Include gimple.h. Do not include tree-flow.h * decl.c: Do not include tree-flow.h * Make-lang.in: Adjust dependencies. ada/ * gcc-interface/trans.c: Do not include tree-flow.h. * gcc-interface/Make-lang.in: Adjust dependencies. From-SVN: r161591
Manuel López-Ibáñez committed -
PR debug/44694 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument. * cselib.c (cfa_base_preserved_regno): New static variable. (cselib_reset_table): Don't reset cfa_base_preserved_regno instead of REGNO (cfa_base_preserved_val->locs->loc). (cselib_preserve_cfa_base_value): Add regno argument, set cfa_base_preserved_regno to it. (cselib_invalidate_regno): Allow removal of registers other than cfa_base_preserved_regno from cfa_base_preserved_val. (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM. * var-tracking.c (adjust_mems): Replace sp or hfp even outside of MEM addresses, if not on LHS. (reverse_op): Don't add reverse ops for cfa_base_rtx. (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller. From-SVN: r161587
Jakub Jelinek committed -
2010-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/43298 * gfortran.dg/read_infnan_1.f90: New test. From-SVN: r161586
Jerry DeLisle committed -
2010-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/43298 * io/read.c: Add code to parse and read Inf, Infinity, NaN, and Nan with optional parenthesis. From-SVN: r161585
Jerry DeLisle committed -
* decl.c (incomplete_var): Declare. Declare VECs containing them. (incomplete_vars): Adjust comment. Change type to a VEC. (maybe_register_incomplete_var): Adjust for new type. (complete_vars): Adjust iteration over incomplete_vars. From-SVN: r161584
Nathan Froyd committed -
* decl.c (struct named_label_entry): Change type of bad_decls field to a VEC. (poplevel_named_label_1): Adjust for new type of bad_decls. (check_goto): Likewise. From-SVN: r161583
Nathan Froyd committed -
gcc/cp/ * class.c (add_implicitly_declared_members): A class with no explicitly declared copy or move constructor gets both declared implicitly, and similarly for operator=. (check_bases): A type with no copy ctor does not inhibit a const copy ctor in a derived class. (check_field_decl): Likewise. (check_bases_and_members): A nonexistent copy ctor/op= is non-trivial. * tree.c (type_has_nontrivial_copy_init): Adjust semantics. (trivially_copyable_p): Likewise. * call.c (convert_like_real): Use type_has_nontrivial_copy_init. * class.c (finish_struct_bits): Likewise. * tree.c (build_target_expr_with_type): Likewise. * typeck2.c (store_init_value): Likewise. libstdc++-v3/ * include/bits/unordered_map.h: Explicitly default copy constructors. * include/bits/unordered_set.h: Likewise. From-SVN: r161582
Jason Merrill committed -
Enable implicitly deleted functions (N2346) * class.c (check_bases_and_members): Adjust lambda flags. * method.c (implicitly_declare_fn): Set DECL_DELETED_FN if appropriate. From-SVN: r161581
Jason Merrill committed -
From-SVN: r161580
Jason Merrill committed -
* cp-tree.h: (struct lang_type_class): Add lazy_move_assign, has_complex_move_ctor, has_complex_move_assign bitfields. (CLASSTYPE_LAZY_MOVE_ASSIGN): New. (TYPE_HAS_COMPLEX_MOVE_ASSIGN): New. (TYPE_HAS_COMPLEX_MOVE_CTOR): New. (enum special_function_kind): Add sfk_move_assignment. (LOOKUP_SPECULATIVE): New. * call.c (build_over_call): Return early if it's set. (build_over_call): Use trivial_fn_p. * class.c (check_bases): If the base has no default constructor, the derived one is non-trivial. Handle move ctor/op=. (check_field_decl): Likewise. (check_bases_and_members): Handle move ctor/op=. (add_implicitly_declared_members): Handle CLASSTYPE_LAZY_MOVE_ASSIGN. (type_has_move_constructor, type_has_move_assign): New. * decl.c (grok_special_member_properties): Handle move ctor/op=. * method.c (type_has_trivial_fn, type_set_nontrivial_flag): New. (trivial_fn_p): New. (do_build_copy_constructor): Use it. (do_build_assign_ref): Likewise. Handle move assignment. (build_stub_type, build_stub_object, locate_fn_flags): New. (locate_ctor): Use locate_fn_flags. (locate_copy, locate_dtor): Remove. (get_dtor, get_default_ctor, get_copy_ctor, get_copy_assign): New. (process_subob_fn, synthesized_method_walk): New. (maybe_explain_implicit_delete): New. (implicitly_declare_fn): Use synthesized_method_walk, type_has_trivial_fn, and type_set_nontrivial_flag. (defaulted_late_check): Set DECL_DELETED_FN. (defaultable_fn_check): Handle sfk_move_assignment. (lazily_declare_fn): Clear CLASSTYPE_LAZY_* early. Don't declare implicitly deleted move ctor/op=. * search.c (lookup_fnfields_1): Handle sfk_move_assignment. (lookup_fnfields_slot): New. * semantics.c (omp_clause_info_fndecl): Remove. (cxx_omp_create_clause_info): Use get_default_ctor, get_copy_ctor, get_copy_assign, trivial_fn_p. (trait_expr_value): Adjust call to locate_ctor. * tree.c (special_function_p): Handle sfk_move_assignment. From-SVN: r161579
Jason Merrill committed -
* class.c (type_has_virtual_destructor): New. * cp-tree.h: Declare it. * semantics.c (trait_expr_value): Use it. * call.c (build_over_call): Only give warnings with tf_warning. * name-lookup.c (pop_scope): Handle NULL_TREE. From-SVN: r161578
Jason Merrill committed -
* cp-tree.h (TYPE_HAS_ASSIGN_REF): Rename to TYPE_HAS_COPY_ASSIGN. (TYPE_HAS_CONST_ASSIGN_REF): Rename to TYPE_HAS_CONST_COPY_ASSIGN. (TYPE_HAS_INIT_REF): Rename to TYPE_HAS_COPY_CTOR. (TYPE_HAS_CONST_INIT_REF): Rename to TYPE_HAS_CONST_COPY_CTOR. (TYPE_HAS_COMPLEX_ASSIGN_REF): Rename to TYPE_HAS_COMPLEX_COPY_ASSIGN. (TYPE_HAS_COMPLEX_INIT_REF): Rename to TYPE_HAS_COMPLEX_COPY_CTOR. (TYPE_HAS_TRIVIAL_ASSIGN_REF): Rename to TYPE_HAS_TRIVIAL_COPY_ASSIGN. (TYPE_HAS_TRIVIAL_INIT_REF): Rename to TYPE_HAS_TRIVIAL_COPY_CTOR. (CLASSTYPE_LAZY_ASSIGNMENT_OP): Rename to CLASSTYPE_LAZY_COPY_ASSIGN. (sfk_assignment_operator): Rename to sfk_copy_assignment. * decl.c, call.c, class.c, init.c, method.c, pt.c, ptree.c: Adjust. * search.c, semantics.c, tree.c: Adjust. From-SVN: r161577
Jason Merrill committed -
From-SVN: r161574
GCC Administrator committed
-
- 29 Jun, 2010 26 commits
-
-
* recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New static variables. (peep2_buf_position): New static function. (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register, peephole2_optimize): Use it. (peep2_attempt, peep2_update_life): New static functions, broken out of peephole2_optimize. (peep2_fill_buffer): New static function. (peephole2_optimize): Change the main loop to try to fill the buffer with the maximum number of insns before matching them against peepholes. Use a forward scan. Remove special case for targets with conditional execution. * genrecog.c (change_state): Delete dead code. * config/i386/i386.md (peephole2 for arithmetic ops with memory): Rewrite so as not to expect the second insn to have had a peephole applied yet. From-SVN: r161570
Bernd Schmidt committed -
2010-06-29 Janus Weil <janus@gcc.gnu.org> PR fortran/44718 * resolve.c (is_external_proc): Prevent procedure pointers from being regarded as external procedures. 2010-06-29 Janus Weil <janus@gcc.gnu.org> PR fortran/44718 * gfortran.dg/proc_ptr_28.f90: New. From-SVN: r161569
Janus Weil committed -
* genhooks.c (emit_findices): Cast field precision to int. (emit_documentation): Likewise. From-SVN: r161568
Nathan Froyd committed -
re PR tree-optimization/43801 (error: function causes a section type conflict with -fipa-cp -fipa-cp-clone) PR tree-optimization/43801 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME if old_decl was DECL_ONE_ONLY. * g++.dg/torture/pr43801.C: New test. From-SVN: r161564
Jakub Jelinek committed -
PR debug/44668 * dwarf2out.c (add_accessibility_attribute): New function. (gen_subprogram_die, gen_variable_die, gen_field_die): Use it instead of adding DW_AT_accessibility manually. (gen_enumeration_type_die, gen_struct_or_union_type_die, gen_typedef_die): Use it. * g++.dg/debug/dwarf2/accessibility1.C: New test. From-SVN: r161563
Jakub Jelinek committed -
* pt.c (dependent_scope_ref_p): Remove. (value_dependent_expression_p): Don't call it. (type_dependent_expression_p): Here either. * init.c (build_offset_ref): Set TREE_TYPE on a qualified-id if the scope isn't dependent. * pt.c (convert_nontype_argument): Use mark_lvalue_use if we want a reference. From-SVN: r161560
Jason Merrill committed -
PR c++/44587 * pt.c (has_value_dependent_address): New. (value_dependent_expression_p): Check it. (convert_nontype_argument): Likewise. Call decay_conversion before folding if we want a pointer. * semantics.c (finish_id_expression): Don't add SCOPE_REF if the scope is the current instantiation. From-SVN: r161559
Jason Merrill committed -
* config/m68k/m68k.c (targetm.sched.init_global): Update comment. (targetm.sched.init): Likewise. From-SVN: r161558
Joern Rennecke committed -
* vmsdbgout.c (full_name): Just output the file name if not native. From-SVN: r161557
Douglas B Rupp committed -
* vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables. (funcnam_table): New static table. (funcnum_table): New static table. (write_rtnbeg): Write value saved in funcnum_table. (write_rtnend): Write value saved in funcnum_table. (vmsdbgout_begin_function): Save current function info in (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting. (vmsdbgout_finish): Iterate over funcnum_table. From-SVN: r161556
Douglas B Rupp committed -
From-SVN: r161555
Joern Rennecke committed -
2010-06-29 Janus Weil <janus@gcc.gnu.org> PR fortran/44696 * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables passed as second argument of ASSOCIATED. 2010-06-29 Janus Weil <janus@gcc.gnu.org> PR fortran/44696 * gfortran.dg/associated_target_4.f90: New. From-SVN: r161554
Janus Weil committed -
* vmsdbgout.c (vmsdbgout_begin_epilogue): Declare (vmsdbgout_type_decl): Declare (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue. (FUNC_EPILOGUE_LABEL): New macro (vmsdbgout_begin_epilogue): New function. (vmsdbgout_type_decl): New function. From-SVN: r161553
Douglas B Rupp committed -
* vmsdbg.h: Update copyright. From-SVN: r161552
Douglas B Rupp committed -
re PR fortran/44582 (gfortran generates wrong results due to wrong ABI in function with array return) 2010-06-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/44582 * trans-expr.c (arrayfunc_assign_needs_temporary): New function to determine if a function assignment can be made without a temporary. (gfc_trans_arrayfunc_assign): Move all the conditions that suppress the direct function call to the above new functon and call it. 2010-06-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/44582 * gfortran.dg/aliasing_array_result_1.f90 : New test. From-SVN: r161550
Paul Thomas committed -
* vmsdbg.h (DST_K_TBG): New DST constant. * vmsdbgout.c (addr_const_to_string): Removed, not referenced. (write_modbeg): Cast module_language to avoid warning. (write_rtnbeg): Use DST_K_TBG vice magic mystery number. Minor reformatting. From-SVN: r161549
Douglas B Rupp committed -
gcc: PR other/44034 * target.def, doc/tm.texi.in, genhooks.c: New files. * target.h: Instead of defining individual hook members, define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and include target.def. * target-def.h: Instead of defining individual hook initializers, include target-hooks-def.h. * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members: targetm.live_on_entry -> targetm.extra_live_on_entry targetm.sched.md_finish ->targetm.sched.finish targetm.sched.md_init -> targetm.sched.init targetm.sched.md_init_global -> targetm.sched.init_global targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label targetm.asm_out.except_table_label -> targetm.asm_out.emit_except_table_label targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility targetm.target_help -> targetm.help targetm.vectorize.builtin_support_vector_misalignment -> targetm.vectorize.support_vector_misalignment targetm.file_start_app_off -> targetm.asm_file_start_app_off targetm.file_start_file_directive -> targetm.asm_file_start_file_directive * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise. * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise. * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros: TARGET_VECTOR_ALIGNMENT_REACHABLE -> TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE TARGET_SUPPORT_VECTOR_MISALIGNMENT -> TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT * config/rs6000/rs6000.c, config/arm/arm.c: Likewise. * Makefile.in (TARGET_H): Depend on target.def. (TARGET_DEF_H): Depend on target-hooks-def.h. (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules. (s-tm-texi, build/genhooks.o, build/genhooks): Likewise. * doc/tm.texi: Regenerate. gcc/c-family: * c-common.c: Rename targetm member: targetm.enum_va_list -> targetm.enum_va_list_p gcc/po: * EXCLUDES: Add genhooks.c. Index: gcc/doc/tm.texi From-SVN: r161547
Joern Rennecke committed -
From-SVN: r161541
Rainer Orth committed -
PR bootstrap/44713 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter. (function_arg_advance_32): Const-ify TYPE parameter. (function_arg_advance_64): Likewise. Change type of NAMED to bool. (ix86_function_arg_advance): Change type of NAMED to bool. (function_arg_32): Const-ify CUM and TYPE parameters. (function_arg_64): Likewise. Change type of NAMED to bool. (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED to bool. (ix86_function_arg): Change type of NAMED to bool. (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass last argument as a bool. From-SVN: r161540
Nathan Froyd committed -
From-SVN: r161539
Joern Rennecke committed -
* doc/tm.texi (TARGET_OPTION_OVERRIDE): Document. (OVERRIDE_OPTIONS): Add note of obsolescence. Replace references with references to TARGET_OPTION_OVERRIDE. (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to the macro). * targhooks.c (default_target_option_override): New function. * targhooks.h (default_target_option_override): Declare. * target.h (struct gcc_target): Add override member to target_option emmber. * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with targetm.target_option.override call. * target-def.h (TARGET_OPTION_OVERRIDE): Define. (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE. From-SVN: r161538
Joern Rennecke committed -
From-SVN: r161537
Jan Hubicka committed -
* predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is unreachable. (rebuild_frequencies): New function. * predict.h (rebuild_frequencies): Declare. * tree-inline.c (copy_cfg_body): Compute properly count & frequency of entry block and edge reaching new_entry. (tree_function_versioning): When doing partial cloning, rebuild frequencies when done. * passes.c (execute_function_todo): Use rebild_frequencies. From-SVN: r161536
Jan Hubicka committed -
2010-06-29 Richard Guenther <rguenther@suse.de> * tree-dfa.c (dump_variable): Remove noalias_state dumping. * tree-flow.h (enum noalias_state): Remove. (struct var_ann_d): Remove noalias_state member. From-SVN: r161535
Richard Guenther committed -
* cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare MEM_ALIAS_SET. From-SVN: r161534
Bernd Schmidt committed -
PR target/43902 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders. (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered. (maddhidi4): Likewise. testsuite/ PR target/43902 * gcc.target/arm/wmul-1.c: Test for smlabb instead of smulbb. * gcc.target/arm/wmul-3.c: New test. * gcc.target/arm/wmul-4.c: New test. From-SVN: r161533
Bernd Schmidt committed
-