aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2008-08-28stormy16.h (IRA_COVER_CLASSES): Define.Nick Clifton3-5/+14
* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define. * config/stormy16/stormy16.md (zero_extendqihi2): Fix length attribute. From-SVN: r139723
2008-08-28v850.h (IRA_COVER_CLASSES): Define.Nick Clifton3-2/+10
* config/v850/v850.h (IRA_COVER_CLASSES): Define. * config/v850/v850.md (return): Remove frame size restriction. From-SVN: r139722
2008-08-28* config/mcore/mcore.h (IRA_COVER_CLASSES): Define.Nick Clifton2-2/+10
From-SVN: r139721
2008-08-28* config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.Nick Clifton2-1/+9
From-SVN: r139720
2008-08-28* config/fr30/fr30.h (IRA_COVER_CLASSES): Define.Nick Clifton2-1/+8
From-SVN: r139719
2008-08-28* config/m32r/m32r.h (IRA_COVER_CLASSES): Define.Nick Clifton2-1/+10
From-SVN: r139718
2008-08-28vfp11.md: Update license notice.Paul Brook3-16/+24
2008-08-28 Paul Brook <paul@codesourcery.com> * config/arm/vfp11.md: Update license notice. * config/arm/cortex-r4.md: Ditto. From-SVN: r139717
2008-08-28re PR tree-optimization/37207 (ice at tree-ssa-ifcombine.c:222 for -Os)Richard Guenther4-1/+33
2008-08-28 Richard Guenther <rguenther@suse.de> PR tree-optimization/37207 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix tuplification bug. * gcc.c-torture/compile/pr37207.c: New testcase. From-SVN: r139714
2008-08-28re PR fortran/37253 (Segmentation fault with procedure pointer)Janus Weil4-1/+54
2008-08-28 Janus Weil <janus@gcc.gnu.org> PR fortran/37253 * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of saving attr.procedure and attr.proc_ptr to the module file. 2008-08-28 Janus Weil <janus@gcc.gnu.org> PR fortran/37253 * gfortran.dg/proc_ptr_10.f90: New. From-SVN: r139713
2008-08-28re PR c++/36741 (Bogus "large integer implicitly truncated" passing size_t ↵Dodji Seketeli4-0/+36
constant to new) 2008-08-28 Dodji Seketeli <dodji@redhat.com> PR c++/36741 * tree.c (int_fits_type_p): Don't forget unsigned integers of type sizetype which higher end word equals -1. From-SVN: r139712
2008-08-28target.h (struct vectorize): Add new target builtin.Ira Rosen21-113/+1461
* target.h (struct vectorize): Add new target builtin. * tree-vectorizer.c (destroy_loop_vec_info): Call vect_free_slp_instance instead of vect_free_slp_node. * tree-vectorizer.h (enum slp_load_perm_type): New. (struct _slp_instance): Add new fields. (SLP_INSTANCE_LOAD_PERMUTATION): New. (SLP_INSTANCE_LOADS): New. (vect_free_slp_tree): Remove. (vect_free_slp_instance): Declare. (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New. (vectorizable_load): Add argument. (vect_transform_slp_perm_load): New. * tree-vect-analyze.c (vect_analyze_operations): Add an argument to vectorizable_load. (vect_get_place_in_interleaving_chain): New function. (vect_free_slp_tree): Make static. (vect_free_slp_instance): New function. (vect_build_slp_tree): Add new arguments. Allow load permutations and collect the load location in the interleaving chain. (vect_supported_slp_permutation_p): New function. (vect_supported_load_permutation_p): Likewise. (vect_analyze_slp_instance): In case of loads permutation, call vect_supported_load_permutation_p to check that the permutation is supported. * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New. * tree-vect-transform.c (vect_transform_stmt): Add new argument. (vect_create_mask_and_perm): New function. (vect_get_mask_element, vect_transform_slp_perm_load): Likewise. (vectorizable_load): Add an argument. Don't keep the created vectors statements in the node if permutation is required. Call vect_transform_slp_perm_load to generate the permutation. (vect_transform_stmt): Add new argument. Call vectorizable_load with additional argument. (vect_schedule_slp_instance): In case of loads permutation, allocate vectorized statements structure for all the related SLP nodes. Call vect_transform_stmt with addditional argument. (vect_transform_loop): Call vect_transform_stmt with correct arguments. * config/spu/spu.c (spu_builtin_vec_perm): New. (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine. * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define. * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New. (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine. From-SVN: r139706
2008-08-28gthr-posix.h (__gthread_create, [...]): New functions.Chris Fairles4-9/+191
2008-08-28 Chris Fairles <chris.fairles@gmail.com> * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach, __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock, __gthread_cond_signal, __gthread_cond_timedwait, __gthread_cond_timedwait_recursive): New functions. * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait): Likewise. * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming thread interfaces. From-SVN: r139704
2008-08-28re PR tree-optimization/37005 (GNAT Bug Box for cd2a24e.adb:37 at ↵Richard Guenther2-34/+33
tree-vrp.c:392) 2008-08-28 Richard Guenther <rguenther@suse.de> PR middle-end/37005 * fold-const.c (maybe_canonicalize_comparison_1): Require undefined overflow only for canonicalizing A +- CST cmp CST. Make sure to not generate new constants that are not inside their TYPE_MIN/MAX_VALUE range. (maybe_canonicalize_comparison): Remove undefined overflow checking from here. (fold_binary): Remove now duplicate folding. From-SVN: r139702
2008-08-28c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT use not ↵Paolo Carlini2-1/+6
updated in the last change. 2008-08-27 Paolo Carlini <paolo.carlini@oracle.com> * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT use not updated in the last change. From-SVN: r139689
2008-08-28sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.Kaz Kojima2-2/+7
* config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS. (IRA_COVER_CLASSES): Add FPUL_REGS. From-SVN: r139688
2008-08-28Daily bump.GCC Administrator1-1/+1
From-SVN: r139686
2008-08-28ChangeLog: Fix spelling mistake.Manuel López-Ibáñez1-1/+1
2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * ChangeLog: Fix spelling mistake. From-SVN: r139683
2008-08-28re PR c++/37217 (-Wconversion causes ICE with __builtin_strcmp with one char ↵Manuel López-Ibáñez4-1/+21
compare) 2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 37217 * c-common.c (conversion_warning): Check for null operands. testsuite/ * gcc.dg/pr37217.c: New. From-SVN: r139682
2008-08-27re PR c/31673 ("`for' loop initial declaration used outside C99 mode" is ↵Manuel López-Ibáñez4-3/+21
confusing) 2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/31673 * c-decl.c (check_for_loop_decls): Improve error message. Give hint. testsuite/ * gcc.dg/c90-fordecl-1.c: Update. From-SVN: r139681
2008-08-27re PR c/37186 (-Wno-error=pointer-sign does not work)Manuel López-Ibáñez4-14/+35
2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/37186 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter. (convert_for_assignment): Pass corrent OPT_W* parameter to WARN_FOR_ASSIGNMENT. testsuite/ * gcc.dg/pr37186.c: New. From-SVN: r139680
2008-08-27type-generic-1.c: Revert previous change.Janis Johnson3-4/+5
* gcc.dg/torture/type-generic-1.c: Revert previous change. * g++.dg/torture/type-generic-1.C: Ditto. From-SVN: r139679
2008-08-27ipacost-1.c: Remove template matching only x86-64Jan Hubicka9-9/+19
* gcc.dg/ipa/ipacost-1.c: Remove template matching only x86-64 * gcc.dg/ipa/ipacost-2.c: Add -fipa-cp-clone; remove template matching only x86-64 * gcc.dg/ipa/ipa-1.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-2.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-3.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-4.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-5.c: Add -fipa-cp-clone * gcc.dg/ipa/ipa-7.c: Add -fipa-cp-clone From-SVN: r139677
2008-08-27gcc.pot: Regenerate.Joseph Myers2-7255/+7608
gcc/po: * gcc.pot: Regenerate. libcpp/po: * cpplib.pot: Regenerate. From-SVN: r139630
2008-08-27re PR c++/35321 (ICE with invalid use of __builtin_offsetof)Paolo Carlini4-0/+27
2008-08-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/35321 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR. /testsuite 2008-08-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/35321 * g++.dg/parse/offsetof8.C: New. From-SVN: r139628
2008-08-27config.gcc: Loosen checks for arm uclinux eabi targets.Paul Brook2-1/+5
2008-08-27 Paul Brook <paul@codesourcery.com> * config.gcc: Loosen checks for arm uclinux eabi targets. From-SVN: r139627
2008-08-27re PR c++/17880 (-Wsequence-point doesn't warn inside if, while, do ↵Manuel López-Ibáñez5-1/+187
conditions, for beg/cond/end expressions etc.) 2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c++/17880 cp/ * semantics.c (maybe_convert_cond): Call verify_sequence_points. (finish_return_stmt): Likewise. (finish_switch_condition): Likewise. testsuite/ * g++.dg/warn/sequence-pt-1.C: New. * g++.dg/warn/sequence-pt-pr17880.C: New. From-SVN: r139625
2008-08-27t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on _clzsi2.Paul Brook3-2/+8
2008-08-27 Paul Brook <paul@codesourcery.com> * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on _clzsi2. * config/arm/t-linux (LIB1ASMFUNCS): Ditto. From-SVN: r139624
2008-08-27cp-tree.h: Fix #error directive.Manuel López-Ibáñez2-2/+6
2008-08-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * cp-tree.h: Fix #error directive. From-SVN: r139623
2008-08-27Daily bump.GCC Administrator1-1/+1
From-SVN: r139615
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