1. 30 Jun, 2009 11 commits
    • * raise-gcc: Include dwarf2.h conditionally. · a2350322
      From-SVN: r149084
      Eric Botcazou committed
    • re PR bootstrap/40597 (Powerpc bootstrap is broken due to changes in expmed.c) · ef12ae45
      2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR boostrap/40597
      	* expmed.c (emit_cstore): New name of emit_store_flag_1.
      	(emit_store_flag_1): Extract from emit_store_flag, adjust
      	calls to (what now is) emit_cstore.
      	(emit_store_flag): Call emit_store_flag_1 and also use it
      	for what used to be recursive calls.
      
      From-SVN: r149083
      Paolo Bonzini committed
    • tree-ssa-sink.c (statement_sink_location): Stop sinking expression if the target… · 791b59e3
      tree-ssa-sink.c (statement_sink_location): Stop sinking expression if the target bb post dominates from bb.
      
      	* tree-ssa-sink.c (statement_sink_location): Stop sinking expression
      	if the target bb post dominates from bb.
      
      	* config/i386/i386.c (memory_address_length): Check existence of base
      	register before using it.
      
      	* gcc.dg/tree-ssa/ssa-sink-5.c: New testcase.
      
      From-SVN: r149082
      Wei Guozhi committed
    • MAINTAINERS: Add my name to Write After Approval list. · 6d984927
              * MAINTAINERS: Add my name to Write After Approval list.
      
      From-SVN: r149080
      Wei Guozhi committed
    • * doc/install.texi (mep-x-elf): Correct chip's full name. · 5a99fe3e
      From-SVN: r149079
      DJ Delorie committed
    • 2009-06-29 Paolo Carlini <paolo.carlini@oracle.com> · 462ac91e
      	* include/bits/random.tcc
      	(linear_congruential_engine<>::seed(seed_seq&)): Use uint_least32_t
      	as array type.
      
      From-SVN: r149078
      Paolo Carlini committed
    • extend.texi: Fix typo. · ddaa3488
      2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* doc/extend.texi: Fix typo.
      
      From-SVN: r149076
      H.J. Lu committed
    • re PR fortran/40576 (Endless loop in internal write) · 93ab3a3d
      2009-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/40576
      	* io/transfer.c (sset): Adjust exit condition for loop.
      
      From-SVN: r149075
      Jerry DeLisle committed
    • random.h (__mod(_Tp)): Use defaults. · b94f4bef
      2009-06-29  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/bits/random.h (__mod(_Tp)): Use defaults.
      	(struct _Mod): Adjust template parameters.
      	(linear_congruential_engine<>::operator()()): Adjust.
      	(typedef _UInt32Type): Remove.
      	(mersenne_twister_engine<>::initialization_multiplier): Fix type.
      	* include/bits/random.tcc (struct _Mod): Adjust template parameters.
      	(linear_congruential_engine<>::seed(result_type)): Adjust __mod
      	calls.
      	(mersenne_twister_engine<>::seed(result_type)): Likewise.
      	(mersenne_twister_engine<>::seed(seed_seq&)): Likewise.
      	(subtract_with_carry_engine<>::seed(result_type)): Likewise.
      	(subtract_with_carry_engine<>::seed(seed_seq&)): Likewise.
      	(seed_seq::seed_seq(std::initializer_list<>)): Likewise.
      	(seed_seq::seed_seq(_InputIterator, _InputIterator)): Likewise.
      	(seed_seq::generate(_RandomAccessIterator, _RandomAccessIterator)):
      	Likewise.
      
      	* include/bits/random.tcc
      	(mersenne_twister_engine<>::seed(result_type)): Fix i usage in the
      	formula (i mod n).
      	(mersenne_twister_engine<>::seed(seed_seq&)): Use uint_least32_t
      	as array type.
      	(subtract_with_carry_engine<>::seed(seed_seq&)): Likewise; fix array
      	size.
      	(subtract_with_carry_engine<>::seed(result_type)): Fix; also use
      	uint_least32_t.
      
      From-SVN: r149074
      Paolo Carlini committed
    • Daily bump. · 15ab11cb
      From-SVN: r149073
      GCC Administrator committed
    • dwarf2.h: Remove. · bbf531f0
      gcc
      	* dwarf2.h: Remove.
      	* Makefile.in (DWARF2_H): New variable.
      	(except.o): Use it.
      	(dwarf2out.o): Likewise.
      	(dwarf2asm.o): Likewise.
      	* config/i386/t-i386: Use DWARF2_H.
      	* except.c: Include elf/dwarf2.h.
      	* unwind-dw2.c: Include elf/dwarf2.h.
      	* dwarf2out.c: Include elf/dwarf2.h.
      	(dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
      	<dtprel>: New field.
      	(dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
      	(size_of_loc_descr): Likewise.
      	(output_loc_operands_raw): Likewise.
      	(output_loc_operands): Handle new dtprel field.
      	(loc_checksum): Update.
      	(loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
      	* unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
      	* unwind-dw2-fde.c: Include elf/dwarf2.h.
      	* dwarf2asm.c: Include elf/dwarf2.h.
      	* unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
      	* config/mmix/mmix.c: Include elf/dwarf2.h.
      	* config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
      	* config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
      	* config/sh/sh.c: Include elf/dwarf2.h.
      	* config/i386/i386.c: Include elf/dwarf2.h.
      gcc/ada
      	* raise-gcc.c: Include elf/dwarf2.h.
      include
      	* elf/dwarf2.h: New file.  Merged with gdb.
      
      From-SVN: r149070
      Tom Tromey committed
  2. 29 Jun, 2009 16 commits
    • * config/mep/mep.h (CPP_SPEC): Remove __cop macro. · bae38135
      From-SVN: r149069
      DJ Delorie committed
    • extend.texi: Add MeP attributes and pragmas. · e2491744
      * doc/extend.texi: Add MeP attributes and pragmas.
      * doc/invoke.text: Add MeP Options.
      * doc/contrib.texi: Add MeP contribution.
      * doc/md.texi: Add MeP constraints.
      * doc/install.texi: Add MeP target.
      
      From-SVN: r149068
      DJ Delorie committed
    • re PR c++/40274 (Revision 145566 caused ICE in tsubst, at cp/pt.c:9289) · 2fcefcb2
      	PR c++/40274
      	* error.c (dump_template_parms): Pass all args to
      	count_non_default_template_args.
      	(count_non_default_template_args): Pull out the inner ones.
      
      From-SVN: r149067
      Jason Merrill committed
    • re PR c++/40274 (Revision 145566 caused ICE in tsubst, at cp/pt.c:9289) · 8cc77ebe
      	PR c++/40274
      	* error.c (dump_template_parms): Pass all args to
      	count_non_default_template_args.
      	(count_non_default_template_args): Pull out the inner ones.
      
      From-SVN: r149066
      Jason Merrill committed
    • target.h (struct gcc_target): Add frame_pointer_required field. · b52b1749
      	* target.h (struct gcc_target): Add frame_pointer_required field.
      	* target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
      	(TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
      	* ira.c (setup_eliminable_regset): Use frame_pointer_required target
      	hook.
      	* reload1.c (update_eliminables): (Ditto.).
      	* gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
      	* doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
      	(INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
      
      	* config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(arm_frame_pointer_required): New function.
      
      	* config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(avr_frame_pointer_required_p): Declare as static.
      	* config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
      
      	* config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(bfin_frame_pointer_required): Make as static, change return type
      	to bool.
      	* config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
      
      	* config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(cris_frame_pointer_required): New function.
      	
      	* config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(fr30_frame_pointer_required): New function.
      	
      	* config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(frv_frame_pointer_required): Make as static, change return type
      	to bool.
      	* config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
      
      	* config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(ix86_frame_pointer_required): Make as static, change return type to
      	bool.
      	* config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
      
      	* config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      
      	* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
      	
      	* config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(mips_frame_pointer_required): Make as static.
      	* config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
      	
      	* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(mmix_frame_pointer_required): Mew function.
      
      	* config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      
      	* config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/sh/sh.h (CAN_ELIMINATE): Remove macro.
      
      	* config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
      	(CAN_ELIMINATE): Redefine.
      	* config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(sparc_frame_pointer_required): New function.
      	(sparc_can_eliminate): New function.
      	* config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
      
      	* config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      
      	* config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(xtensa_frame_pointer_required): Make as static, change return type
      	to bool.
      	* config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
      	Remove.
      
      From-SVN: r149065
      Anatoly Sokolov committed
    • plugins.texi: Document PLUGIN_START_UNIT. · 78bf7bd0
      2009-06-29  Olatunji Ruwase   <tjruwase@google.com>
      
      	* doc/plugins.texi: Document PLUGIN_START_UNIT.
      	* toplev.c (compile_file): Call PLUGIN_START_UNIT.
      	* gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
      	* plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
      	(register_callback): Handle PLUGIN_START_UNIT.
      	(invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
      
      From-SVN: r149064
      Olatunji Ruwase committed
    • re PR fortran/40580 (Add -fcheck=pointer with runtime check for using an unallocated argument) · 20460eb9
      2009-06-29  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/40580
              * trans-expr.c  (gfc_conv_procedure_call): Add -fcheck=pointer
              * check.
              * libgfortran.h: Add GFC_RTCHECK_POINTER.
              * invoke.texi (-fcheck): Document new pointer option.
              * options.c (gfc_handle_runtime_check_option): Handle pointer
              * option.
      
              * gfortran.texi (C Binding): Improve wording.
              * iso-c-binding.def: Remove obsolete comment.
      
      
      2009-06-29  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/40580
              * pointer_check_1.f90: New test.
              * pointer_check_2.f90: New test.
              * pointer_check_3.f90: New test.
              * pointer_check_4.f90: New test.
              * pointer_check_5.f90: New test.
      
      From-SVN: r149063
      Tobias Burnus committed
    • re PR fortran/40551 (Optimizations possible using gfc_full_array_ref_p) · a61a36ab
      2009-06-29  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/40551
      	* dependency.h : Add second bool* argument to prototype of
      	gfc_full_array_ref_p.
      	* dependency.c (gfc_full_array_ref_p): If second argument is
      	present, return true if last dimension of reference is an
      	element or has unity stride.
      	* trans-array.c : Add NULL second argument to references to
      	gfc_full_array_ref_p.
      	* trans-expr.c : The same, except for;
      	(gfc_trans_arrayfunc_assign): Return fail if lhs reference
      	is not a full array or a contiguous section.
      
      2009-06-29  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/40551
      	* gfortran.dg/func_assign_2.f90 : New test.
      
      From-SVN: r149062
      Paul Thomas committed
    • tree.c (process_call_operands): Propagate TREE_READONLY from the operands. · 96da8066
      	* tree.c (process_call_operands): Propagate TREE_READONLY from the
      	operands.
      	(PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
      	(build3_stat): Propagate TREE_READONLY for COND_EXPR.
      
      From-SVN: r149060
      Eric Botcazou committed
    • re PR java/40590 (namespace namespace broken in CNI) · 3ad1aba1
      2009-06-29  Andrew Haley  <aph@redhat.com>
      
      	PR java/40590	
      	* tools/gnu/classpath/tools/javah/FieldHelper.java (print):
      	Use printName().
      	* tools/gnu/classpath/tools/javah/MethodHelper.java (print):
      	Use printName().
      	* tools/gnu/classpath/tools/javah/CniStubPrinter.java (printDecl):
      	Use printName().
      	* tools/gnu/classpath/tools/javah/Keywords.java (words): Replace
      	with keywords list from  gcc/java/mangle.c.
      	* tools/gnu/classpath/tools/javah/ClassWrapper.java (printMethods):
      	Don't pre-convert a C++ keyword.
      	(print(CniPrintStream)): Call CniPrintStream.printName().
      	(printContents): Likewise.
      	* tools/gnu/classpath/tools/javah/CniPrintStream.java
      	(getClassName): Don't call replaceAll("/", "::").
      	(print(Type)): Add ""::" befor name, " *" after.  Use printName(), not
      	print.
      	(printName(PrintStream, String), printName(String), printlnName):
      	New methods.
      	(moveToPackage): Use printName().
      
      2009-06-29  Andrew Haley  <aph@redhat.com>
      
      	PR java/40590
      	* java-tree.h (cxx_keyword_p): New declaration.
      	* mangle_name.c (utf8_cmp): Move here from mangle.c.
      	(cxx_keywords): Likewise.
      	(cxx_keyword_p): Likewise.
      	(MANGLE_CXX_KEYWORDS): New macro.
      	(append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
      	(append_gpp_mangled_name): Likewise.
      	* mangle.c: Move code to mangle_name.c.
      	(mangle_member_name): Don't call cxx_keyword_p.
      
      From-SVN: r149059
      Andrew Haley committed
    • arm.h (REGISTER_MOVE_COST): Increase VFP register move cost. · 356ecb15
      	* config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
      	move cost.
      
      From-SVN: r149057
      Daniel Jacobowitz committed
    • extend.texi (Additional Floating Types): __float128 is also supported on i386 targets. · 897eef7b
      	* doc/extend.texi (Additional Floating Types): __float128 is also
      	supported on i386 targets.
      
      From-SVN: r149054
      Uros Bizjak committed
    • re PR middle-end/14187 ([tree-ssa] C restricted pointers are not properly implemented) · 74d27244
      2009-06-29  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/14187
      	* tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
      	flag.
      	(pt_solutions_same_restrict_base): Declare.
      	* tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
      	flag.
      	(new_var_info): Initialize is_global_var properly for SSA_NAMEs.
      	(make_constraint_from, make_copy_constraint): Move earlier.
      	(make_constraint_from_heapvar): New function.
      	(make_constraint_from_restrict): Likewise.
      	(handle_lhs_call): Use it.
      	(find_func_aliases): Use it to track conversions to restrict
      	qualified pointers.
      	(struct fieldoff): Add only_restrict_pointers flag.
      	(push_fields_onto_fieldstack): Initialize it.
      	(create_variable_info_for): Track global restrict qualified pointers.
      	(intra_create_variable_infos): Use make_constraint_from_heapvar.
      	Track restrict qualified pointer arguments.
      	(set_uids_in_ptset): Use varinfo is_global_var flag.
      	(find_what_var_points_to): Set the vars_contains_restrict flag.
      	Always create the points-to solution for sets including restrict tags.
      	(pt_solutions_same_restrict_base): New function.
      	* tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
      	qualified pointers use pt_solutions_same_restrict_base as
      	additional source for disambiguation.
      
      	* gcc.dg/tree-ssa/restrict-1.c: New testcase.
      	* gcc.dg/tree-ssa/restrict-2.c: Likewise.
      	* gcc.dg/tree-ssa/restrict-3.c: Likewise.
      	* gcc.c-torture/execute/20090623-1.c: Likewise.
      	* gcc.dg/tree-ssa/ldist-13.c: Likewise.
      	* gcc.dg/tree-ssa/ldist-14.c: Likewise.
      
      From-SVN: r149048
      Richard Guenther committed
    • re PR middle-end/38212 (restrict implementation causes wrong-code) · 5b21f0f3
      2009-06-29  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/38212
      	* alias.c (find_base_decl): Remove.
      	(get_deref_alias_set_1): Remove restrict handling.
      	* c-common.c (c_apply_type_quals_to_decl): Do not set
      	DECL_POINTER_ALIAS_SET.
      	* gimplify.c (find_single_pointer_decl_1): Remove.
      	(find_single_pointer_decl): Likewise.
      	(internal_get_tmp_var): Remove restrict handling.
      	(gimple_regimplify_operands): Likewise.
      	* omp-low.c (expand_omp_atomic_pipeline): Do not set
      	DECL_POINTER_ALIAS_SET. Use ref-all pointers.
      	* print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
      	* tree.c (restrict_base_for_decl): Remove.
      	(init_ttree): Do not allocate it.
      	(make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
      	LABEL_DECL_UID for label decls.
      	(copy_node_stat): Do not copy restrict information.
      	(decl_restrict_base_lookup): Remove.
      	(decl_restrict_base_insert): Likewise.
      	(print_restrict_base_statistics): Likewise.
      	(dump_tree_statistics): Do not call print_restrict_base_statistics.
      	* tree.h (DECL_POINTER_ALIAS_SET): Remove.
      	(DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
      	(struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
      	(LABEL_DECL_UID): Adjust.
      	(DECL_BASED_ON_RESTRICT_P): Remove.
      	(DECL_GET_RESTRICT_BASE): Likewise.
      	(SET_DECL_RESTRICT_BASE): Likewise.
      	(struct tree_decl_with_vis): Remove based_on_restrict_p flag.
      
      	* config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
      	instead of DECL_POINTER_ALIAS_SET.
      	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
      	* config/s390/s390.c (s390_gimplify_va_arg): Likewise.
      	* config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
      
      	* gcc.c-torture/execute/pr38212.c: New testcase.
      
      From-SVN: r149047
      Richard Guenther committed
    • re PR tree-optimization/40579 (gcc -O2 optimization causes infinite loop and wrong output) · 09a782eb
      2009-06-29  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/40579
      	* tree-vrp.c (vrp_evaluate_conditional): Bail out early if
      	the IL to simplify has constants that overflowed.
      
      	* gcc.c-torture/execute/pr40579.c: New testcase.
      
      From-SVN: r149046
      Richard Guenther committed
    • Daily bump. · 152413f7
      From-SVN: r149043
      GCC Administrator committed
  3. 28 Jun, 2009 10 commits
    • re PR tree-optimization/40550 (Segmentation fault caused by alignment error in sse code) · 1e9ae5ab
      	PR tree-optimization/40550
      	* tree-vect-generic.c (expand_vector_operations_1): Compute in
      	vector_compute_type only when the size of vector_compute_type is
      	less than the size of type.
      
      testsuite/ChangeLog:
      
      	PR tree-optimization/40550
      	* gcc.dg/pr40550.c: New test.
      
      From-SVN: r149038
      Uros Bizjak committed
    • fold-const.c (contains_label_1): Fix comments. · c703e618
      	* fold-const.c (contains_label_1): Fix comments.
      	(contains_label_p): Do not walk trees multiple time.
      
      From-SVN: r149037
      Eric Botcazou committed
    • re PR fortran/34112 (Add $!DEC ATTRIBUTE support for 32bit Windows' STDCALL) · 08a6b8e0
      2009-06-28  Tobias Burnus  <burnus@net-b.de>
      	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
      
      	PR fortran/34112
      	* symbol.c (gfc_add_ext_attribute): New function.
      	(gfc_get_sym_tree): New argument allow_subroutine.
      	(gfc_get_symbol,gfc_get_ha_sym_tree,gen_cptr_param,gen_fptr_param
      	gen_shape_param,generate_isocbinding_symbol): Use it.
      	* decl.c (find_special): New argument allow_subroutine.
      	(add_init_expr_to_sym,add_hidden_procptr_result,attr_decl1,
      	match_procedure_in_type,gfc_match_final_decl): Use it.
      	(gfc_match_gcc_attributes): New function.
      	* gfortran.texi (Mixed-Language Programming): New section
      	"GNU Fortran Compiler Directives".
      	* gfortran.h (ext_attr_t): New struct.
      	(symbol_attributes): Use it.
      	(gfc_add_ext_attribute): New prototype.
      	(gfc_get_sym_tree): Update pototype.
      	* expr.c (gfc_check_pointer_assign): Check whether call
      	convention is the same.
      	* module.c (import_iso_c_binding_module, create_int_parameter,
      	use_iso_fortran_env_module): Update gfc_get_sym_tree call.
      	* scanner.c (skip_gcc_attribute): New function.
      	(skip_free_comments,skip_fixed_comments): Use it.
      	(gfc_next_char_literal): Support !GCC$ lines.
      	* resolve.c (check_host_association): Update
      	gfc_get_sym_tree call.
      	* match.c (gfc_match_sym_tree,gfc_match_call): Update
      	gfc_get_sym_tree call.
      	* trans-decl.c (add_attributes_to_decl): New function.
      	(gfc_get_symbol_decl,get_proc_pointer_decl,
      	gfc_get_extern_function_decl,build_function_decl: Use it.
      	* match.h (gfc_match_gcc_attributes): Add prototype.
      	* parse.c (decode_gcc_attribute): New function.
      	(next_free,next_fixed): Support !GCC$ lines.
      	* primary.c (match_actual_arg,check_for_implicit_index,
      	gfc_match_rvalue,gfc_match_rvalue): Update
      	gfc_get_sym_tree call.
      
      2009-06-28  Tobias Burnus  <burnus@net-b.de>
      
      	PR fortran/34112
      	* gfortran.dg/compiler-directive_1.f90: New test.
      	* gfortran.dg/compiler-directive_2.f: New test.
      
      
      Co-Authored-By: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
      
      From-SVN: r149036
      Tobias Burnus committed
    • i386.h (enum ix86_fpcmp_strategy): New. · 0948ccb2
      2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
      
              * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
              * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
              cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
              ix86_fp_comparison_operator.
              (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
              *fp_jcc_2_sse, *fp_jcc_2_387): Delete
              (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
              *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
              !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
              to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
              (related splits): Change predicate to ix86_fp_comparison_operator.
              * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
              instead of ix86_fp_comparison_codes.
              (ix86_trivial_fp_comparison_operator,
              ix86_fp_comparison_operator): New.
              * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
              (ix86_expand_compare): Eliminate last two parameters.
              (ix86_fp_jump_nontrivial_p): Kill.
              * config/i386/i386.c (put_condition_code): Eliminate call to
              ix86_fp_comparison_codes and subsequent assertion.
              (ix86_fp_comparison_codes): Eliminate.
              (ix86_fp_swap_condition): New.
              (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
              ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
              into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
              (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
              and ix86_fp_swap_condition.
              (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
              Use ix86_fp_comparison_strategy.
              (ix86_expand_compare): Likewise.  Eliminate last two arguments.
              (ix86_fp_jump_nontrivial_p): Eliminate.
              (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
              call to ix86_expand_compare.
              (ix86_split_fp_branch, ix86_expand_setcc,
              ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
              ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
      
      From-SVN: r149035
      Paolo Bonzini committed
    • arm.c (arm_final_prescan_ins): Eliminate code related to jump_clobbers. · accbd151
      2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
      
              * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
              related to jump_clobbers.
              * config/arm/arm.md (conds): Remove jump_clob case.
              (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
              splits): Change comparison_operator to arm_comparison_operator.
              (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
              Eliminate.
      
      From-SVN: r149034
      Paolo Bonzini committed
    • dojump.c (do_compare_rtx_and_jump): Try swapping the condition for floating point modes. · 45475a3f
      2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
      
              * dojump.c (do_compare_rtx_and_jump): Try swapping the
              condition for floating point modes.
              * expmed.c (emit_store_flag_1): Move here a bigger part
              of emit_store_flag.
              (emit_store_flag): Try swapping the condition for floating point
              modes.
              * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
      
      From-SVN: r149033
      Paolo Bonzini committed
    • expr.c (expand_expr_real_1): Just use do_store_flag. · 495499da
      2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
      
              * expr.c (expand_expr_real_1): Just use do_store_flag.
              (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
              emit_store_flag_force.
              * expmed.c (emit_store_flag_force): Copy here trick
              previously in expand_expr_real_1.  Try reversing the comparison.
              (emit_store_flag_1): Work if target is NULL.
              (emit_store_flag): Work if target is NULL, using the result mode
              from the comparison.  Use split_comparison, restructure final part
              to simplify conditionals.
      
      From-SVN: r149032
      Paolo Bonzini committed
    • builtins.c (expand_errno_check): Use do_compare_rtx_and_jump. · 337e5d98
      2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
      
              * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
              * dojump.c (do_jump): Change handling of floating-point
              ops to use just do_compare_and_jump.
              (split_comparison): New.
              (do_compare_rtx_and_jump): Add here logic coming previously
              in do_jump, using split_comparison.
      
      From-SVN: r149031
      Paolo Bonzini committed
    • gfortran.h: Define HAVE_mpc_pow. · 7991661b
      gcc/fortran:
      
      	* gfortran.h: Define HAVE_mpc_pow.
      	* arith.c (complex_reciprocal, complex_pow): If HAVE_mpc_pow,
      	don't define these functions.
      	(arith_power): If HAVE_mpc_pow, use mpc_pow.
      
      gcc/testsuite:
      	* gfortran.dg/integer_exponentiation_4.f90: Temporarily
      	comment out some values and add some cases.
      
      From-SVN: r149023
      Kaveh R. Ghazi committed
    • Daily bump. · 6f8b0efc
      From-SVN: r149022
      GCC Administrator committed
  4. 27 Jun, 2009 3 commits