aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2010-04-22re PR middle-end/29274 (not using mulsidi3)Bernd Schmidt3-0/+36
PR middle-end/29274 * gcc.target/arm/wmul-1.c: New test. * gcc.target/arm/wmul-2.c: New test. From-SVN: r158642
2010-04-22re PR tree-optimization/43845 (Segfault when using __attribute__((const)), ↵Richard Guenther4-13/+51
versions 4.4.3 and 4.6) 2010-04-22 Richard Guenther <rguenther@suse.de> PR tree-optimization/43845 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly lookup the CALL_EXPR function and arguments. * gcc.c-torture/compile/pr43845.c: New testcase. From-SVN: r158641
2010-04-22* config/stormy16/stormy16.cNick Clifton7-290/+120
(xstormy16_asm_output_aligned_common): Handle a NULL decl parameter. * config/stormy16/stormy16.h: Tidy up formatting. (DONT_USE_BUILTIN_SETJMP): Remove definition. * config/stormy16/stormy16.c (cbranchsi4): Delete pattern. (ineqbranchsi): Delete pattern. * config/stormy16/stormy16-lib2-ucmpsi2.c: New file. * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function. * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add stormy16-lib2-ucmpsi2.c. From-SVN: r158640
2010-04-22ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and ↵Bernd Schmidt4-18/+44
df_simulate_find_noclobber_defs as appropriate. * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and df_simulate_find_noclobber_defs as appropriate. Keep track of an extra set merge_set_noclobber, and use it to relax the final test slightly. * df.h (df_simulate_find_noclobber_defs): Declare. * df-problems.c (df_simulate_find_defs): Don't ignore partial or conditional defs. (df_simulate_find_noclobber_defs): New function. From-SVN: r158639
2010-04-22i386.md: Use {} around multi-line preparation statements.Uros Bizjak2-16/+26
* config/i386/i386.md: Use {} around multi-line preparation statements. From-SVN: r158635
2010-04-222010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>Laurynas Biveinis4-86/+147
* c-tree.h (push_init_level, pop_init_level, set_init_index) (process_init_element): New argument of type struct obstack *. * c-typeck.c (push_init_level, pop_init_level, set_designator) (set_init_index, set_init_label, set_nonincremental_init) (set_nonincremental_init_from_string, find_init_member) (output_init_element, output_pending_init_elements) (process_init_element): New argument braced_init_obstack. Pass it down. (push_range_stack, add_pending_init): New argument braced_init_obstack. Use obstack allocation. * c-parser.c (c_parser_initelt, c_parser_initval): New argument braced_init_obstack. Pass it down. (c_parser_braced_init): New variables ret, braced_init_obstack. Initialize obstack, pass it down and finally free it. From-SVN: r158634
2010-04-22re PR middle-end/29274 (not using mulsidi3)Bernd Schmidt13-102/+356
gcc/ PR middle-end/29274 * optabs.h (expand_widening_mult): Declare. * tree-pass.h (pass_optimize_widening_mul): Declare. * tree-ssa-math-opts.c (execute_optimize_widening_mul, gate_optimize_widening_mul): New static functions. (pass_optimize_widening_mul): New. * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case. <case MULT_EXPR>: Remove support for widening multiplies. * tree.def (WIDEN_MULT_EXPR): Tweak comment. * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use simplify_gen_unary rather than directly building extensions. * tree-cfg.c (verify_gimple_assign_binary): Add tests for WIDEN_MULT_EXPR. * expmed.c (expand_widening_mult): New function. * passes.c (init_optimization_passes): Add pass_optimize_widening_mul. gcc/testsuite/ PR middle-end/29274 * gcc.target/i386/wmul-1.c: New test. * gcc.target/i386/wmul-2.c: New test. * gcc.target/bfin/wmul-1.c: New test. * gcc.target/bfin/wmul-2.c: New test. From-SVN: r158633
2010-04-22re PR fortran/43829 (Scalarization of reductions)Richard Guenther6-8/+70
2010-04-22 Richard Guenther <rguenther@suse.de> PR fortran/43829 * resolve.c (gfc_resolve_index): Wrap around ... (gfc_resolve_index_1): ... this. Add parameter to allow any integer kind index type. (resolve_array_ref): Allow any integer kind for the start index of an array ref. * gfortran.dg/vector_subscript_6.f90: New testcase. * gfortran.dg/assign_10.f90: Adjust. From-SVN: r158632
2010-04-22Daily bump.GCC Administrator1-1/+1
From-SVN: r158628
2010-04-21timevar.def (TV_WHOPR_WPA_FIXUP): Remove.Jan Hubicka9-318/+26
* timevar.def (TV_WHOPR_WPA_FIXUP): Remove. * lto-section-in.c (lto_section_name): Remove wpa_fixup. * lto-wpa-fixup.c: Remove. * Makefile.in (lto-wpa-fixup.o): Remove. * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup. (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA. * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section. * lto.c (lto_fixup_tree): Do not call wpa fixup. (materialize_cgraph): Likewise. From-SVN: r158622
2010-04-21re PR fortran/43836 (ice with -fexceptions and -fopenmp)Jakub Jelinek4-1/+23
PR fortran/43836 * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on the decl. * gfortran.dg/gomp/pr43836.f90: New test. From-SVN: r158619
2010-04-21tree-pass.h (ipa_opt_pass_d): Rename function_read_summary...Jan Hubicka12-26/+191
* tree-pass.h (ipa_opt_pass_d): Rename function_read_summary; add write_optimization_summary, read_optimization_summary. (ipa_write_summaries_of_cgraph_node_set): Remove. (ipa_write_optimization_summaries): Declare. (ipa_read_optimization_summaries): Declare. * ipa-cp.c (pass_ipa_cp): Update. * ipa-reference.c (pass_ipa_reference): Update. * ipa-pure-const.c (pass_ipa_pure_const): Update. * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish): Update. * ipa-inline.c (pass_ipa_inline): Update. * ipa.c (pass_ipa_whole_program): Update. * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update. * passes.c (ipa_write_summaries_1): Do not test wpa. (ipa_write_optimization_summaries_1): New. (ipa_write_optimization_summaries): New. (ipa_read_summaries): Do not test ltrans. (ipa_read_optimization_summaries_1): New. (ipa_read_optimization_summaries): New. * lto.c (lto_wpa_write_files): Update. (read_cgraph_and_symbols): Be more verbose. (materialize_cgraph): Likewise. (do_whole_program_analysis): Likewise. From-SVN: r158616
2010-04-21lto-cgraph.c (lto_output_node): Do not output comdat groups for boundary nodes.Jan Hubicka2-23/+7
* lto-cgraph.c (lto_output_node): Do not output comdat groups for boundary nodes. (output_cgraph): Do not arrange comdat groups for boundary nodes. From-SVN: r158615
2010-04-21re PR debug/40040 (gfortran invalid DW_AT_location for overridable variables)Jakub Jelinek2-2/+7
PR debug/40040 * dwarf2out.c (add_name_and_src_coords_attributes): Add DW_AT_{,MIPS_}linkage_name even for Fortran decls. From-SVN: r158612
2010-04-21* ipa-prop.c (ipa_edge_removal_hook): Check for bounds.Jan Hubicka2-0/+8
From-SVN: r158610
2010-04-21lto.c (globalize_cross_file_statics): When function has address taken, it ↵Jan Hubicka4-1/+18
needs to be public. * lto.c (globalize_cross_file_statics): When function has address taken, it needs to be public. * varpool.c (decide_is_variable_needed): Variable is always needed during ltrans. From-SVN: r158609
2010-04-21* opts.c (decode_options): Enable pure-const pass for whopr.Jan Hubicka2-1/+4
From-SVN: r158608
2010-04-21cgraph.c (dump_cgraph_node): Dump also assembler name.Jan Hubicka3-6/+19
* cgraph.c (dump_cgraph_node): Dump also assembler name. * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice at WPA dumping. (cgraph_decide_inlining): Do not expect callee to be removed in all cases. From-SVN: r158607
2010-04-21Add missing comma.Eric B. Weddington2-1/+5
From-SVN: r158604
2010-04-21i386.md (x86_shrd): Add athlon_decode and amdfam10_decode attributes.Uros Bizjak2-1/+8
* config/i386/i386.md (x86_shrd): Add athlon_decode and amdfam10_decode attributes. From-SVN: r158596
2010-04-21re PR middle-end/43570 (OpenMP: Invalid read of size 1 ↵Jakub Jelinek2-10/+27
(libgomp.fortran/vla6.f90)) PR middle-end/43570 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE. (lower_copyprivate_clauses): Use private var in outer context instead of original var. Make sure the types are correct for VLAs. * testsuite/libgomp.fortran/vla8.f90: New test. From-SVN: r158594
2010-04-21tree-ssa-structalias.c (do_ds_constraint): Avoid escaping to non-pointer ↵Richard Guenther4-17/+30
objects. 2010-04-21 Richard Guenther <rguenther@suse.de> * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping to non-pointer objects. * gcc.dg/ipa/ipa-pta-11.c: Adjust. From-SVN: r158591
2010-04-21dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.Jakub Jelinek2-18/+80
* dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop last chain entry if it starts with the still current label. (add_location_or_const_value_attribute): Check that loc_list->first->next is NULL instead of comparing ->first with ->last. (dwarf2out_var_location): Pass last_label resp. last_postcall_label to add_var_loc_to_decl. From-SVN: r158590
2010-04-21dwarf2out.c (output_call_frame_info): For dw_cie_version >= 4 add also ↵Jakub Jelinek4-5/+61
address size and segment size fields into CIE... * dwarf2out.c (output_call_frame_info): For dw_cie_version >= 4 add also address size and segment size fields into CIE header. * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as long as address size is the same as sizeof (void *) and segment size is 0. * unwind-dw2-fde.c (get_cie_encoding): Likewise. If address size or segment size is unexpected, return DW_EH_PE_omit. (classify_object_over_fdes): If get_cie_encoding returned DW_EH_PE_omit, return -1. (init_object): If classify_object_over_fdes returned -1, pretend there were no FDEs at all. From-SVN: r158589
2010-04-21builtin-cproj-3.c: New.Kaveh R. Ghazi2-0/+29
* gcc.dg/torture/builtin-cproj-3.c: New. From-SVN: r158588
2010-04-21i386.md (bswap<mode>2): Macroize expander from bswap{si,di}2 using SWI48 ↵Uros Bizjak2-47/+29
mode iterator. * config/i386/i386.md (bswap<mode>2): Macroize expander from bswap{si,di}2 using SWI48 mode iterator. (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using SWI48 mode iterator. Set type attribute of bswap insn to bitmanip, set modrm attribute of bswap insn to 0 and remove length attribute. (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode iterator. Set type attribute to bitmanip, set modrm attribute to 0, set mode attribute to <MODE> and remove length attribute. From-SVN: r158587
2010-04-21re PR c++/9335 (repeated diagnostic when maximum template depth is exceeded)Jason Merrill10-4/+41
PR c++/9335 gcc/cp: * init.c (constant_value_1): Treat error_mark_node as a constant if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set. * cvt.c (ocp_convert): Handle getting error_mark_node from integral_constant_value. * decl.c (compute_array_index_type): Likewise. gcc/testsuite: * lib/prune.exp: Prune "skipping N instantiation contexts". From-SVN: r158586
2010-04-20re PR rtl-optimization/43520 (gcc.dg/pr43058.c uses way too memory on ia64)James E. Wilson2-1/+9
PR rtl-optimization/43520 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with zero available registers. From-SVN: r158584
2010-04-21Daily bump.GCC Administrator1-1/+1
From-SVN: r158583
2010-04-20intrinsic.c (sort_actual): Remove 'is' in error message.Harald Anlauf2-1/+5
2010-04-20 Harald Anlauf <anlauf@gmx.de> * intrinsic.c (sort_actual): Remove 'is' in error message. From-SVN: r158577
2010-04-20* es.po: Update.Joseph Myers2-105/+102
From-SVN: r158575
2010-04-20builtins.c (fold_builtin_cproj): Fold more cases.Kaveh R. Ghazi4-1/+123
* builtins.c (fold_builtin_cproj): Fold more cases. testsuite: * gcc.dg/torture/builtin-cproj-1.c: Test more cases. From-SVN: r158574
2010-04-20builtins.c (build_complex_cproj, [...]): New.Kaveh R. Ghazi6-3/+196
* builtins.c (build_complex_cproj, fold_builtin_cproj): New. (fold_builtin_1): Fold builtin cproj. * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL): Use ATTR_CONST_NOTHROW_LIST. From-SVN: r158573
2010-04-20re PR c++/43800 (FAIL: libgomp.c++/for-4.C)Dodji Seketeli5-3/+53
Fix PR c++/43800 gcc/cp/ChangeLog: PR c++/43800 PR c++/43704 * typeck.c (incompatible_dependent_types_p): If one of the compared types if not a typedef then honour their main variant equivalence. gcc/testsuite/ChangeLog: PR c++/43800 PR c++/43704 * g++.dg/template/typedef32.C: Adjust. * g++.dg/template/typedef33.C: New test. From-SVN: r158571
2010-04-20re PR fortran/43227 (ICE: segmentation fault in mio_expr)Paul Thomas6-4/+132
2010-04-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/43227 * resolve.c (resolve_fl_derived): If a component character length has not been resolved, do so now. (resolve_symbol): The same as above for a symbol character length. * trans-decl.c (gfc_create_module_variable): A 'length' decl is not needed for a character valued, procedure pointer. PR fortran/43266 * resolve.c (ensure_not_abstract_walker): If 'overriding' is not found, return FAILURE rather than ICEing. 2010-04-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/43227 * gfortran.dg/proc_decl_23.f90: New test. PR fortran/43266 * gfortran.dg/abstract_type_6.f03: New test. From-SVN: r158570
2010-04-20i386.md (ffs<mode>2): Macroize expander from ffs_cmove and ffsdi2 using ↵Uros Bizjak2-240/+154
SWI48 mode iterator. * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove and ffsdi2 using SWI48 mode iterator. Expand SImode insn through ffsi2_no_cmove for !TARGET_CMOVE. (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public. (ffssi2): Remove expander. (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48 mode iterator. (ctz<mode>2): Ditto from ctz{si,di}2. (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248 mode iterator. (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248 mode iterator. From-SVN: r158569
2010-04-20dwarf2out.c (AT_linkage_name): Define.Jakub Jelinek2-7/+22
* dwarf2out.c (AT_linkage_name): Define. (clone_as_declaration): Handle DW_AT_linkage_name. (add_name_and_src_coords_attributes): Use AT_linkage_name instead of DW_AT_MIPS_linkage_name. (move_linkage_attr): Likewise. (dwarf2out_finish): Likewise. From-SVN: r158568
2010-04-20new folding ruleXinliang David Li4-2/+63
From-SVN: r158567
2010-04-20double-int.h (double_int_setbit): Declare.Anatoly Sokolov12-123/+110
* double-int.h (double_int_setbit): Declare. * double-int.c (double_int_setbit): New function. * rtl.h (immed_double_int_const): Declare. * emit-rtl.c (immed_double_int_const): New function. * builtins.c (expand_builtin_signbit): Clean up, use double_int_* and immed_double_int_const functions. * optabs.c (expand_absneg_bit, expand_copysign_absneg, expand_copysign_bit): (Ditto.). * simplify-rtx.c (simplify_binary_operation_1): (Ditto.). * tree-ssa-address.c (addr_for_mem_ref): (Ditto.). * dojump.c (prefer_and_bit_test): (Ditto.). * expr.c (convert_modes, reduce_to_bit_field_precision, const_vector_from_tree): (Ditto.). * expmed.c (mask_rtx, lshift_value): (Ditto.). From-SVN: r158566
2010-04-20cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.Jan Hubicka10-97/+116
* cgraph.c (cgraph_remove_node): Kill bodies in other partitoin. (dump_cgraph_node): Dump new flags. * cgraph.h (struct cgraph_node): Add flags reachable_from_other_partition and in_other_partition. (cgraph_can_remove_if_no_direct_calls_p): Functions used by other partition can not be removed. * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by the other partition must be output; silence sanity checking on leaking functions bodies from other paritition. * lto-cgraph.c (reachable_from_other_partition_p): New function. (lto_output_node): Output new flags; do not sanity check that inline clones are output; drop lto_forced_extern_inline_p code; do not mock visibility flags at partition boundaries. (add_node_to): New function. (output_cgraph): Use it to sort functions so masters appear before clones. (input_overwrite_node): Input new flags. * passes.c (ipa_write_summaries): Do not call lto_new_extern_inline_states. * lto-section-out.c (forced_extern_inline, lto_new_extern_inline_states, lto_delete_extern_inline_states, lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill. * lto-streamer.h (lto_new_extern_inline_states, * lto_delete_extern_inline_states, lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill. * lto.c (lto_add_inline_clones): Do not track inlined_decls. (lto_add_all_inlinees): Likewise. (lto_wpa_write_files): Likewise. From-SVN: r158563
2010-04-20re PR tree-optimization/39417 (Incorrect values computed with -ftree-copy-prop)Richard Guenther2-0/+61
2010-04-20 Richard Guenther <rguenther@suse.de> PR tree-optimization/39417 * g++.dg/torture/pr39417.C: New testcase. From-SVN: r158560
2010-04-20tree-ssa-structalias.c (do_sd_constraint): Add edges only from vars that can ↵Richard Guenther2-1/+18
have pointers. 2010-04-20 Richard Guenther <rguenther@suse.de> * tree-ssa-structalias.c (do_sd_constraint): Add edges only from vars that can have pointers. (process_constraint): Dump useless constraints. From-SVN: r158558
2010-04-20tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.Richard Guenther4-8/+60
2010-04-20 Richard Guenther <rguenther@suse.de> * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF. (dump_sa_points_to_info): Remove asserts. (init_base_vars): nothing_id isn't an escape point nor does it have pointers. * gcc.dg/ipa/ipa-pta-14.c: New testcase. From-SVN: r158553
2010-04-20tree.h (TYPE_REF_IS_RVALUE): Define.Jakub Jelinek7-8/+56
* tree.h (TYPE_REF_IS_RVALUE): Define. * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die, should_move_die_to_comdat, prune_unused_types_walk): Handle DW_TAG_rvalue_reference_type like DW_TAG_reference_type. (modified_type_die, gen_reference_type_die): Emit DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type if TYPE_REF_IS_RVALUE and -gdwarf-4. * cp-tree.h (TYPE_REF_IS_RVALUE): Remove. * g++.dg/debug/dwarf2/rv1.C: New test. From-SVN: r158542
2010-04-20re PR target/43635 (ICE in s390_emit_call, at config/s390/s390.c:9484)Andreas Krebbel4-5/+37
2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> PR target/43635 * config/s390/s390.c (s390_emit_call): Turn direct into indirect calls for -fpic -m31 if they have been sibcall optimized. 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> PR target/43635 * gcc.c-torture/compile/pr43635.c: New testcase. From-SVN: r158540
2010-04-19partial fix, make all 'e' class regs fixed PR rtl-optimization/43520James E. Wilson2-2/+6
partial fix, make all 'e' class regs fixed PR rtl-optimization/43520 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make ar.lc fixed and call-used. From-SVN: r158539
2010-04-19Enable doloop optimization on loops with calls.James E. Wilson2-0/+7
* config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define. From-SVN: r158538
2010-04-20Daily bump.GCC Administrator1-1/+1
From-SVN: r158537
2010-04-19opts.c (decode_options): Disable whpr incompatible passes.Jan Hubicka3-23/+26
* opts.c (decode_options): Disable whpr incompatible passes. * lto/lto.c (lto_1_to_1_map): Skip clones. (read_cgraph_and_symbols): Do not mark everything as needed. (do_whole_program_analysis): Do map only after optimizing; set proper cgraph_state; use passmanager. From-SVN: r158533
2010-04-19cfgexpand.c (expand_debug_expr): Check for mismatched modes in ↵DJ Delorie2-0/+21
POINTER_PLUS_EXPR and fix them. * cfgexpand.c (expand_debug_expr): Check for mismatched modes in POINTER_PLUS_EXPR and fix them. From-SVN: r158532