aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2008-08-26Neglected to commit two ChangeLogsDoug Gregor2-0/+14
From-SVN: r139612
2008-08-26c-common.c (do_switch_warnings): Look through the CONST_DECLs in the ↵Douglas Gregor17-156/+647
enumerators of an ENUMERAL_TYPE. 2008-08-26 Douglas Gregor <doug.gregor@gmail.com> * c-common.c (do_switch_warnings): Look through the CONST_DECLs in the enumerators of an ENUMERAL_TYPE. * dbxout.c (dbxout_type): Ditto. 2008-08-26 Douglas Gregor <doug.gregor@gmail.com> * typeck.c (type_after_usual_arithmetic_conversions): Don't do the usual arithmetic conversions on scoped enumeration types. (common_type): Ditto. (default_conversion): Don't perform integral promotions on scoped enumeration types. (build_array_ref): Scoped enumeration types can't be used as subscripts. * decl.c (start_enum): If building a C++0x scoped enumeration, enter its scope. If provided with an underlying type, check that underlying type and set up the enumeration type accordingly. (finish_enum): Only compute an underlying type if the underlying type isn't already fixed, and only convert the enumerator values now if we've just computed the underlying type. Finish the scope of C++0x scoped enumerations. (build_enumerator): For enumerations with a fixed underlying type, check the enumerator values when the enumerator is defined. (lookup_enumerator): New. * call.c (standard_conversion): Don't allow assignment from integers to scoped enumeration types, even with -fpermissive. Don't convert from scoped enumerations to bool or any arithmetic types. (build_conditional_expr): Don't per the usual arithmetic conversions for scoped enumeration types. (convert_like_real): Check complain to see if we should produce warnings. * error.c (class_key_or_enum_as_string): Print scoped enums. * cp-tree.h (MAYBE_CLASS_TYPE_P): Check CLASS_TYPE_P, not TYPE_LANG_FLAG_5. (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P): New. (SCOPED_ENUM_P): New. (UNSCOPED_ENUM_P): New. (SET_SCOPED_ENUM_P): New. (ENUM_UNDERLYING_TYPE): New. * pt.c (lookup_template_class): Update the instantiation of enum types to deal with C++0x scoped enumerations and underlying types. * name-lookup.c (begin_scope): Deal with scoped enumeration scopes. (lookup_qualified_name): Deal with lookup into enumeration types. * name-lookup.h (enum scope_kind): Add sk_scoped_enum. * parser.c (cp_parser_class_or_namespace_name): Rename to... (cp_parser_qualifying_entity): ... this. Also, in C++0x mode, parse a type-name that can be an enumeration type. (cp_parser_nested_name_specifier_opt): Update with C++0x grammar. (cp_parser_elaborated_type_specifier): Parse the optional `struct' or `class' following enum (in C++0x). (cp_parser_enum_specifier): Parse C++0x scoped enumerations and enum-base clauses. 2008-08-26 Douglas Gregor <doug.gregor@gmail.com> * g++.dg/cpp0x/scoped_enum_examples.C: New. * g++.dg/cpp0x/scoped_enum.C: New. * g++.dg/cpp0x/scoped_enum_98.C: New. * g++.dg/cpp0x/enum_base_warn.C: New. * g++.dg/cpp0x/enum_base.C: New. From-SVN: r139611
2008-08-26altivec-macros.c: Fix dg-message directives.Janis Johnson8-14/+31
* gcc.target/powerpc/altivec-macros.c: Fix dg-message directives. * gcc.target/powerpc/ppu-intrinsics.c: Ignore some warnings. * gcc.target/powerpc/darwin-save-world-1.c: Require AltiVec hardware. * gcc.target/powerpc/altivec-types-1.c: Expect some notes. * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: Ignore a warning. * g++.dg/ext/altivec-2.C: Initialize a local variable. * g++.dg/ext/altivec-3.C: Move AltiVec code out of main. From-SVN: r139610
2008-08-26gcc.dg/torture/type-generic-1.c: Don't use IBM 128-bit long double.Janis Johnson3-0/+9
g++.dg/torture/type-generic-1.C: Ditto. From-SVN: r139609
2008-08-26re PR rtl-optimization/37219 (fwprop1 is broken for addresses)Andrew Pinski2-3/+13
2008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com> PR rtl-opt/37219 * fwprop.c (fwprop): Check that the loop_father is the outer loop. (fwprop_addr): Check that the loop_father is not the outer loop. From-SVN: r139605
2008-08-26vfp.md: Document fmul{s,d} and fmac{s,d} types.Paul Brook5-28/+35
2008-08-28 Paul Brook <paul@codesourcery.com> * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types. Remove documentation entry for fmul type. Use fmuls to annotate single-precision multiplication patterns, fmuld to annotate double-precision multiplication patterns, fmacs to annotate single-precision multiply-accumulate patterns and fmacd to annotate double-precision multiply-accumulate patterns. * config/arm/vfp11.md: Update reservations accordingly. * config/arm/arm.md: Note that certain values of the "type" attribute are documented in vfp.md. * config/arm/arm1020e.md: Remove out of date duplicate comment. (v10_cvt): Use new fmul types. From-SVN: r139604
2008-08-26vfp.md: Move pipeline description for VFP11 to...Paul Brook1-0/+6
2008-08-26 Paul Brook <paul@codesourcery.com> * config/arm/vfp.md: Move pipeline description for VFP11 to... * config/arm/vfp11.md: ...here. New. * config/arm/arm.md: Include vfp11.md. From-SVN: r139603
2008-08-26opts.c (decode_options): Add missing parameter to inform call.Hans-Peter Nilsson2-1/+6
* opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing parameter to inform call. From-SVN: r139601
2008-08-26mn10300.md (movqi, movhi): Split i->d*a case into two cases to avoid the ↵Jeff Law2-10/+20
possibility of getting... * mn10300.md (movqi, movhi): Split i->d*a case into two cases to avoid the possibility of getting DATA_OR_ADDRESS_REGS as the preferred class when copying a constant into a partial word register. From-SVN: r139600
2008-08-26vfp.md: Move pipeline description for VFP11 to...Paul Brook3-83/+97
2008-08-26 Paul Brook <paul@codesourcery.com> * config/arm/vfp.md: Move pipeline description for VFP11 to... * config/arm/vfp11.md: ...here. New. * config/arm/arm.md: Include vfp11.md. From-SVN: r139599
2008-08-26rtlanal.c: Fix uses of "it's" with "its" where appropriate.Ben Elliston6-8/+16
* rtlanal.c: Fix uses of "it's" with "its" where appropriate. * cp/typeck.c: Likewise. * cp/tree.c: Likewise. * gimple-low.c: Likewise. * jump.c: Likewise. From-SVN: r139591
2008-08-26[multiple changes]Vladimir Makarov52-179/+14707
2008-08-26 Vladimir Makarov <vmakarov@redhat.com> * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c, ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files. * doc/passes.texi: Describe IRA. * doc/tm.texi (IRA_COVER_CLASSES, IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros. * doc/invoke.texi (ira-max-loops-num): Describe the new parameter. (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills, -fira-propagate-cost, -fno-ira-share-save-slots, -fno-ira-share-spill-slots, -fira-verbose): Describe new options. * flags.h (ira_algorithm): New enumeration. (flag_ira_algorithm, flag_ira_verbose): New external variable declarations. * postreload.c (gate_handle_postreload): Don't do post reload optimizations unless the reload is completed. * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for IRA. * tree-pass.h (pass_ira): New external variable declaration. * reload.h: Add 2008 to the Copyright. * cfgloopanal.c: Include params.h. (estimate_reg_pressure_cost): Decrease cost for IRA optimization mode. * params.h (IRA_MAX_LOOPS_NUM): New macro. * toplev.c (ira.h): New include. (flag_ira_algorithm, flag_ira_verbose): New external variables. (backend_init_target): Call ira_init. (backend_init): Call ira_init_once. (finalize): Call finish_ira_once. * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills, flag_ira_share_save_slots, flag_ira_share_spill_slots): New external variables. * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost, may_move_out_cost): New external variable declarations. (move_table): New typedef. * caller-save.c: Include headers output.h and ira.h. (no_caller_save_reg_set): New global variable. (save_slots_num, save_slots): New variables. (reg_save_code, reg_restore_code, add_stored_regs): Add prototypes. (init_caller_save): Set up no_caller_save_reg_set. (init_save_areas): Reset save_slots_num. (saved_hard_reg): New structure. (hard_reg_map, saved_regs_num, all_saved_regs): New variables. (initiate_saved_hard_regs, new_saved_hard_reg, finish_saved_hard_regs, saved_hard_reg_compare_func): New functions. (setup_save_areas): Add code for sharing stack slots. (all_blocks): New variable. (save_call_clobbered_regs): Process pseudo-register too. (mark_set_regs): Process pseudo-register too. (insert_one_insn): Put the insn after bb note in a empty basic block. Add insn check. * global.c (eliminable_regset): Make it external. (mark_elimination): Use DF_LR_IN for IRA. (pseudo_for_reload_consideration_p): New. (build_insn_chain): Make it external. Don't ignore spilled pseudos for IRA. Use pseudo_for_reload_consideration_p. (gate_handle_global_alloc): New function. (pass_global_alloc): Add the gate function. * opts.c (decode_options): Set up flag_ira. Print the warning for -fira. (common_handle_option): Process -fira-algorithm and -fira-verbose. * timevar.def (TV_IRA, TV_RELOAD): New passes. * regmove.c (regmove_optimize): Don't do replacement of output for IRA. * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses): New external variable declarations. * local-alloc.c (update_equiv_regs): Make it external. Return true if jump label rebuilding should be done. Rescan new_insn for notes. (gate_handle_local_alloc): New function. (pass_local_alloc): Add the gate function. * alias.c (value_addr_p, stack_addr_p): New functions. (nonoverlapping_memrefs_p): Use them for IRA. * common.opt (fira, fira-algorithm, fira-coalesce, fira-move-spills, fira-share-save-slots, fira-share-spill-slots, fira-verbose): New options. * regclass.c (reg_class_subclasses, contains_reg_of_mode, move_cost, may_move_in_cost, may_move_out_cost): Make the variables external. (move_table): Remove typedef. (init_move_cost): Make it external. (allocate_reg_info, resize_reg_info, setup_reg_classes): New functions. * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info, setup_reg_classes): New function prototypes. (eliminable_regset): New external variable declaration. (build_insn_chain, update_equiv_regs): New function prototypes. * Makefile.in (IRA_INT_H): New definition. (OBJS-common): Add ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o. (reload1.o, toplev.o): Add dependence on ira.h. (cfgloopanal.o): Add PARAMS_H. (caller-save.o): Add dependence on output.h and ira.h. (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o, ira-emit.o, ira-lives.o): New entries. * passes.c (pass_ira): New pass. * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter. * reload1.c (ira.h): Include the header. (changed_allocation_pseudos): New bitmap. (init_reload): Initiate the bitmap. (compute_use_by_pseudos): Permits spilled registers in FROM. (temp_pseudo_reg_arr): New variable. (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for IRA. Call alter_reg with the additional parameter. Don't clear spilled_pseudos for IRA. Restore original insn chain for IRA. Clear changed_allocation_pseudos at the end of reload. (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion. (hard_regno_to_pseudo_regno): New variable. (count_pseudo): Check spilled pseudos. Set up hard_regno_to_pseudo_regno. (count_spilled_pseudo): Check spilled pseudos. Update hard_regno_to_pseudo_regno. (find_reg): Use better_spill_reload_regno_p. Check hard_regno_to_pseudo_regno. (alter_reg): Set up spilled_pseudos. Add a new parameter. Add code for IRA. (eliminate_regs_1): Use additional parameter for alter_reg. (finish_spills): Set up pseudo_previous_regs only for spilled pseudos. Call reassign_pseudos once for all spilled pseudos, pass more arguments. Don't clear live_throughout and dead_or_set for spilled pseudos. Use additional parameter for alter_reg. Call mark_allocation_change. Set up changed_allocation_pseudos. Remove sanity check. (emit_input_reload_insns, delete_output_reload): Use additional parameter for alter_reg. Call mark_allocation_change. (substitute, gen_reload_chain_without_interm_reg_p): New functions. (reloads_conflict): Use gen_reload_chain_without_interm_reg_p. * testsuite/gcc.dg/20080410-1.c: New file. * config/s390/s390.h (IRA_COVER_CLASSES, IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define. * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro. * config/i386/i386.h (IRA_COVER_CLASSES): Ditto. * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto. * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto. * config/arm/arm.h (IRA_COVER_CLASSES): Ditto. * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto. 2008-08-24 Jeff Law <law@redhat.com> * ira.c (setup_reg_class_intersect_union): Prefer smallest class when ignoring unavailable registers. 2008-08-24 Jeff Law <law@redhat.com> * ira-color.c (coalesced_pseudo_reg_slot_compare): Check FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD. * ira.c (setup_eliminable_regset): Check stack_realign_needed. * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro. 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com> * ira-build.c (allocno_range_compare_func): Stabilize sort. 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com> * config/avr/avr.h (IRA_COVER_CLASSES): New macro. * reload1.c (find_reg): Process registers in register allocation order. 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk> * toplev.c (backend_init_target): Move ira_init call from here... (lang_dependent_init_target): ...to here. 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk> * ira.c (setup_class_subset_and_memory_move_costs): Don't calculate memory move costs for NO_REGS. 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org> * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if STACK_REGS is defined. 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com> * config/spu/spu.h (IRA_COVER_CLASSES): New macro. 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com> * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro. 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org> * config/sh/sh.h (IRA_COVER_CLASSES): Define. * config/sh/sh.md (movsicc_true+3): Check if emit returns a barrier. From-SVN: r139590
2008-08-26spu.md (vec_extract_evenv4si, [...]): Implement.SVictor Kaplansky7-5/+506
2008-08-26 Victor Kaplansky <victork@il.ibm.com> Dorit Nuzman <dorit@il.ibm.com> * gcc/config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf, vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si, vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi, vec_interleave_highv4sf, vec_interleave_lowv4sf, vec_interleave_highv4si, vec_interleave_lowv4si, vec_interleave_highv8hi, vec_interleave_lowv8hi, vec_interleave_highv16qi, vec_interleave_lowv16qi, vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S Testsuite * gcc.dg/vect/slp-18.c: Require vect_intfloat_cvt. * gcc.dg/vect/slp-11.c: Likewise. * gcc.dg/vect/fast-math-pr35982.c: Likewise. * lib/target-supports.exp: (check_effective_target_vect_pack_trunc): Add SPU to the list. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_extract_even_odd_wide): Likewise. (check_effective_target_vect_interleave): Likewise. Co-Authored-By: Dorit Nuzman <dorit@il.ibm.com> From-SVN: r139589
2008-08-26Daily bump.GCC Administrator1-1/+1
From-SVN: r139580
2008-08-25re PR target/36756 (g++.dg/tls-3.C ICE with section-anchors, unit-at-a-time, ↵Janis Johnson2-2/+11
no-toplevel-reorder) PR target/36756 * config/rs6000/rs6000.c (optimization_options): Don't default to section anchors without toplevel reorder. From-SVN: r139572
2008-08-25spu_mfcio.h (mfc_begin_critical_section): New function.Ulrich Weigand2-0/+33
* config/spu/spu_mfcio.h (mfc_begin_critical_section): New function. (mfc_end_critical_section): Likewise. From-SVN: r139570
2008-08-25rs6000.c (rs6000_handle_altivec_attribute): Propagate all type qualifiers ↵Ulrich Weigand3-2/+14
from element type to vector type. ChangeLog: * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate all type qualifiers from element type to vector type. testsuite/ChangeLog: * gcc.target/powerpc/altivec-volatile.c: New test. Co-Authored-By: Andrew Pinski <andrew_pinski@playstation.sony.com> From-SVN: r139569
2008-08-25mips.md (immediate_insn): Move up in file, fix comment typo, reformat.David Daney3-505/+552
2008-08-25 David Daney <ddaney@avtrex.com> * config/mips/mips.md (immediate_insn): Move up in file, fix comment typo, reformat. (fetchop_bit, atomic_hiqi_op memory_barrier, sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>, sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>, sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12, sync_nand<mode>, sync_nand_12, sync_old_nand<mode>, sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12, sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, sync_new_nand<mode>, sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>, test_and_set_12): Moved to sync.md. (sync.md): Include. * config/mips/sync.md: New file. From-SVN: r139568
2008-08-25gfortran.h (gfc_find_component): Add new arguments.Daniel Kraft10-18/+186
2008-08-25 Daniel Kraft <d@domob.eu> * gfortran.h (gfc_find_component): Add new arguments. * parse.c (parse_derived_contains): Check if the derived-type containing the CONTAINS section is SEQUENCE/BIND(C). * resolve.c (resolve_typebound_procedure): Check for name collision with components. (resolve_fl_derived): Check for name collision with inherited type-bound procedures. * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'. (gfc_add_component): Adapt for new arguments. * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto. 2008-08-25 Daniel Kraft <d@domob.eu> * gfortran.dg/extends_7.f03: New test. * gfortran.dg/typebound_proc_7.f03: New test. * gfortran.dg/typebound_proc_8.f03: New test. From-SVN: r139566
2008-08-25dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.Richard Henderson2-58/+58
* dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT. (regsave): Likewise. (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT. (output_cfi_directive): Likewise. (div_data_align): New. (output_cfi): Use it. From-SVN: r139565
2008-08-25config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.Adam Nemet9-5/+88
* config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*. * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON. (TARGET_OCTEON): New macro. (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon. (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon. (ISA_HAS_POP): New macro. * config/mips/driver-native.c (host_detect_local_cpu): Handle Octeon. * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data): Handle Octeon. * config/mips/mips.md (cpu): Add octeon. (type): Add pop attribute value. (popcount<mode>2): New pattern. * doc/invoke.texi (-march=@var{arch}): Add octeon. testsuite/ * gcc.target/mips/octeon-pop-1.c: New test. From-SVN: r139554
2008-08-25Daily bump.GCC Administrator1-1/+1
From-SVN: r139552
2008-08-24re PR fortran/37201 (ICE in in gfc_conv_string_parameter)Tobias Burnus4-15/+50
2008-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/37201 * decl.c (verify_bind_c_sym): Reject array/string returning functions. 2008-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/37201 * gfortran.dg/bind_c_18.f90: New. From-SVN: r139545
2008-08-24ipacost-1.c: New testcase.Jan Hubicka2-0/+119
* gcc.dg/ipa/ipacost-1.c: New testcase. * gcc.dg/ipa/ipacost-2.c: New testcase. * gcc.dg/ipa/ipa-7.c: Update template. From-SVN: r139544
2008-08-24invoke.texi (-fipa-cp-clone): New option.Jan Hubicka7-25/+237
* doc/invoke.texi (-fipa-cp-clone): New option. (-fipa-cp): Update docs. (--param ipcp-unit-growth):New. * ipa-cp.c: Include fibheap.h, params.h (ipcp_initialize_node_lattices): When not cloning, all externally visible functions are bottom. (ipcp_need_redirect_p): Accept clones. (ipcp_insert_stage): Use cost driven heuristics. (max_count, dead_nodes): New static vars. (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost, ipcp_const_param_count): New functions. * common.opt (ipa-cp-clone): New command line option. * params.def (ipcp-unit-growth): New. * gcc.dg/ipa/ipacost-1.c: New testcase. * gcc.dg/ipa/ipacost-2.c: New testcase. * gcc.dg/ipa/ipa-7.c: Update template. From-SVN: r139543
2008-08-24tree-inline.c (tree_function_versioning): Look harder for referenced vars.Jan Hubicka2-2/+14
* tree-inline.c (tree_function_versioning): Look harder for referenced vars. From-SVN: r139542
2008-08-24re PR tree-optimization/37185 (gcc.dg/matrix/transpose-3.c:16: internal ↵Razya Ladelsky2-0/+6
compiler error: verify_stmts failed) 2008-08-24 Razya Ladelsky <razya@il.ibm.com> PR tree-optimization/37185 * matrix-reorg.c (transform_access_sites): Update changed stmt. From-SVN: r139539
2008-08-24re PR fortran/37201 (ICE in in gfc_conv_string_parameter)Tobias Burnus5-1/+57
2008-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/37201 * trans-expr.c (gfc_conv_function_call): Add string_length for character-returning bind(C) functions. 2008-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/37201 * gfortran.dg/bind_c_usage_17.f90: New. * gfortran.dg/bind_c_usage_17_c.c: New. From-SVN: r139537
2008-08-24ipa-cp.c (ipcp_analyze_node): New function.Jan Hubicka3-41/+66
* ipa-cp.c (ipcp_analyze_node): New function. (ipcp_update_cloned_node): Use it. (ipcp_init_stage): Likewise. * ipa-inline.c (function_insertion_hook_holder): New static var. (analyze_function): Break out from .... (inline_generate_summary): Here; register insertion hook. (cgraph_decide_inlining): Remove hook. (add_new_function): New function. From-SVN: r139536
2008-08-24gfortran.h (gfc_typebound_proc): New struct.Daniel Kraft15-67/+1331
2008-08-24 Daniel Kraft <d@domob.eu> * gfortran.h (gfc_typebound_proc): New struct. (gfc_symtree): New member typebound. (gfc_find_typebound_proc): Prototype for new method. (gfc_get_derived_super_type): Prototype for new method. * parse.h (gfc_compile_state): New state COMP_DERIVED_CONTAINS. * decl.c (gfc_match_procedure): Handle PROCEDURE inside derived-type CONTAINS section. (gfc_match_end): Handle new context COMP_DERIVED_CONTAINS. (gfc_match_private): Ditto. (match_binding_attributes), (match_procedure_in_type): New methods. (gfc_match_final_decl): Rewrote to make use of new COMP_DERIVED_CONTAINS parser state. * parse.c (typebound_default_access): New global helper variable. (set_typebound_default_access): New callback method. (parse_derived_contains): New method. (parse_derived): Extracted handling of CONTAINS to new parser state and parse_derived_contains. * resolve.c (resolve_bindings_derived), (resolve_bindings_result): New. (check_typebound_override), (resolve_typebound_procedure): New methods. (resolve_typebound_procedures): New method. (resolve_fl_derived): Call new resolving method for typebound procs. * symbol.c (gfc_new_symtree): Initialize new member typebound to NULL. (gfc_find_typebound_proc): New method. (gfc_get_derived_super_type): New method. 2008-08-24 Daniel Kraft <d@domob.eu> * gfortran.dg/finalize_5.f03: Adapted expected error message to changes to handling of CONTAINS in derived-type declarations. * gfortran.dg/typebound_proc_1.f08: New test. * gfortran.dg/typebound_proc_2.f90: New test. * gfortran.dg/typebound_proc_3.f03: New test. * gfortran.dg/typebound_proc_4.f03: New test. * gfortran.dg/typebound_proc_5.f03: New test. * gfortran.dg/typebound_proc_6.f03: New test. From-SVN: r139534
2008-08-24* opts.c (decode_options): Revert accidental change enabling ipa-cp.Jan Hubicka2-1/+4
From-SVN: r139532
2008-08-24Daily bump.GCC Administrator1-1/+1
From-SVN: r139528
2008-08-23ipa-cp.c (constant_val_insert): Remove.Jan Hubicka4-141/+98
* ipa-cp.c (constant_val_insert): Remove. (ipcp_propagate_one_const): Remove. (ipcp_create_replace_map): Always insert replacements to the map. (ipcp_insert_stage): Do not try to insert statements by hand. * tree-inline.c (insert_init_stmt): Break out from ... (setup_one_parameter): ... here; allow NULL BB pointer. (tree_function_versioning): Use setup_one_parameter to process replacement map. From-SVN: r139525
2008-08-23gfortran.h (gfc_component): Add field "symbol_attribute attr"...Janus Weil17-112/+106
2008-08-23 Janus Weil <janus@gcc.gnu.org> * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove fields "pointer", "allocatable", "dimension", "access". Remove functions "gfc_set_component_attr" and "gfc_get_component_attr". * interface.c (gfc_compare_derived_types): Ditto. * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto. * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign, gfc_conv_structure): Ditto. * symbol.c (gfc_find_component,free_components,gfc_set_component_attr, gfc_get_component_attr,verify_bind_c_derived_type, generate_isocbinding_symbol): Ditto. * decl.c (build_struct): Ditto. * dump-parse-tree.c (show_components): Ditto. * trans-stmt.c (gfc_trans_deallocate): Ditto. * expr.c (gfc_check_assign,gfc_check_pointer_assign, gfc_default_initializer): Ditto. * module.c (mio_component): Ditto. * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto. * resolve.c (has_default_initializer,resolve_structure_cons, gfc_iso_c_func_interface,find_array_spec,resolve_ref, resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived, resolve_equivalence_derived): Ditto. * trans-io.c (transfer_expr): Ditto. * parse.c (parse_derived): Ditto. * dependency.c (gfc_check_dependency): Ditto. * primary.c (gfc_variable_attr): Ditto. From-SVN: r139524
2008-08-23tree.c (decl_address_ip_invariant_p): New function.Jan Hubicka9-86/+156
* tree.c (decl_address_ip_invariant_p): New function. * tree.h (decl_address_ip_invariant_p): Declare. * gimple.c (strip_invariant_refs): Break out from ... (is_gimple_invariant_address): ... here (is_gimple_ip_invariant_address): New function. (is_gimple_ip_invariant): New function. * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant): Declare. * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF. (ipcp_lat_is_insertable): All constants are insertable. (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of IPA_CONST_VALUE_REF. (ipcp_initialize_node_lattices): Propagate all types of operands. (build_const_val): Do not handle IPA_CONST_VALUE_REF. (ipcp_create_replace_map): Reformat. (ipcp_need_redirect_p): Simplify. (ipcp_insert_stage): Check that argument is used before clonning. * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF. (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat. (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members. (update_call_notes_after_inlining): Expect ADDR_EXPR in operand. * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF. (jump_func_type): Remove IPA_CONST_VALUE_REF. * tree-inline.c (tree_function_versioning): Add variables referenced by replacing trees. From-SVN: r139523
2008-08-23re PR target/37094 (Ada build broken for i586)Jan Hubicka2-1/+6
PR target/37094 * i386.c (standard_80387_constant_p): Use optimize_size. From-SVN: r139522
2008-08-23re PR fortran/37076 (Concatenation of KIND=4 strings with KIND=4 parameters ↵Tobias Burnus4-1/+26
fails) 2008-08-23 Tobias Burnus <burnus@net-b.de> PR fortran/37076 * arith.c (gfc_arith_concat): Fix concat of kind=4 strings. 2008-08-23 Tobias Burnus <burnus@net-b.de> PR fortran/37076 * gfortran.dg/widechar_9.f90: New. From-SVN: r139521
2008-08-23re PR fortran/37025 (ICE with TRANSFER to non-default-kind character: ↵Tobias Burnus4-3/+61
transfer(int(z'bde4'),4_'a')) 2008-08-23 Tobias Burnus <burnus@net-b.de> PR fortran/37025 * target-memory.c (gfc_interpret_character): Support kind=4 characters. 2008-08-23 Tobias Burnus <burnus@net-b.de> PR fortran/37025 * gfortran.dg/widechar_8.f90: New. From-SVN: r139520
2008-08-23re PR middle-end/37161 (Revision 139225 caused gfortran.dg/vect/pr33301.f -O)Ira Rosen4-41/+84
PR tree-optimization/37161 * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare. * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function. (vect_determine_vectorization_factor): Move the scalar type retrieval to vect_get_smallest_scalar_type. (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get scalar type. Remove redundant computation. * tree-vect-transform.c (vect_get_constant_vectors): Add argument. (vect_get_slp_defs): Take the type of RHS into account if necessary by calling vect_get_smallest_scalar_type. Call vect_get_constant_vectors with additional argument. From-SVN: r139518
2008-08-23re PR other/35648 (-Wall includes -Wwrite-strings)Manuel López-Ibáñez2-10/+16
2008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 35648 * doc/invoke.texi (Wwrite-strings): Clarify description. From-SVN: r139517
2008-08-23re PR middle-end/37174 (ICE: in vinfo_for_stmt, at tree-vectorizer.h:546)Ira Rosen4-1/+38
PR tree-optimization/37174 * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the def stmt is a part of the loop before accessing its stmt_vec_info. From-SVN: r139508
2008-08-23Daily bump.GCC Administrator1-1/+1
From-SVN: r139505
2008-08-23re PR target/11259 ([avr] gcc Double 'andi' missed optimization)Anatoly Sokolov2-2/+184
PR target/11259 * config/avr/avr.md (UNSPEC_SWAP): New constants. (*swap): New insn pattern. (*ashlqi3): Rename from ashlqi3 insn pattern. (ashlqi3): New expanders. (*lshrqi3): Rename from lshrqi3 insn pattern. (lshrqi3): New expanders. (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4, lshrqi3_const5, lshrqi3_const6): New splitters. (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define peephole2 patterns. From-SVN: r139502
2008-08-22re PR middle-end/37078 (ICE in set_value_range, at tree-vrp.c:401 when ↵Richard Guenther4-1/+19
compiling gmp 4.2.3) 2008-08-22 Richard Guenther <rguenther@suse.de> PR tree-optimization/37078 * tree-vrp.c (extract_range_from_unary_expr): Avoid generating [+INF, +INF] ranges. * gcc.c-torture/compile/pr37078.c: New testcase. From-SVN: r139501
2008-08-22re PR tree-optimization/37143 (ICE in VRP with the auto-vectorizer)Richard Guenther4-1/+36
2008-08-22 Richard Guenther <rguenther@suse.de> PR tree-optimization/37143 * tree-vect-transform.c (vect_create_cond_for_align_checks): Build a conversion statement instead of a copy. * g++.dg/vect/pr37143.C: New testcase. From-SVN: r139500
2008-08-22re PR fortran/30239 (duplicate data type assignment not detected)Daniel Kraft6-2/+68
2008-08-22 Daniel Kraft <d@domob.eu> PR fortran/30239 * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result type is re-declared but neither -pedantic nor -std=f* is given and so this is no error. * invoke.texi (-Wsurprising): Document this new behaviour. From-SVN: r139499
2008-08-22pr21658.c (dg-options): Use -fdump-tree-ccp1-details.Uros Bizjak8-4/+20
* gcc.dg/tree-ssa/pr21658.c (dg-options): Use -fdump-tree-ccp1-details. (dg-final): Use cleanup-tree-dump "ccp1". * gcc.dg/tree-prof/ic-misattribution-1a.c: Cleanup tree_profile. * gcc.dg/ipa/iinline-1.c: Cleanup ipa dump, not tree dump. * g++.dg/ipa/iinline-1.C: Ditto. * gfortran.dg/intrinsic_std_1.f90: Cleanup "original" tree dump. * gfortran.dg/char_eoshift_5.f90: Ditto. * gfortran.dg/index_2.f90: Ditto. From-SVN: r139496
2008-08-22Minor code fix to avoid warning.Robert Dewar2-7/+4
From-SVN: r139491
2008-08-22s-wwdcha.adb: Minor code reorganization Remove dead codeArnaud Charlet2-30/+30
2008-08-22 Robert Dewar <dewar@adacore.com> * s-wwdcha.adb: Minor code reorganization Remove dead code From-SVN: r139490
2008-08-22s-utf_32.adb (Get_Category): Fix obvious typoRobert Dewar1-2/+2
2008-08-22 Robert Dewar <dewar@adacore.com> * s-utf_32.adb (Get_Category): Fix obvious typo From-SVN: r139489