Jan Hubicka [Sat, 23 Dec 2006 14:30:36 +0000 (15:30 +0100)]
toplev.c (dump_memory_report): Break out from...
* toplev.c (dump_memory_report): Break out from...
(finalize): Here.
* toplev.h (dump_memory_report): Declare.
(cmp_statistic): Rename to ...
(final_cmp_statistic): ... this one
(cmp_statistic): New.
(dump_ggc_loc_staitsitcs): New FINAL parpameter.
* common.opt (-fpre-ipa-mem-report, -fpost-ipa-mem-report): Declare.
* varray.c (dump_varray_staitiscs): Do not segfault when no varray was
allocated so far.
Kazu Hirata [Fri, 22 Dec 2006 23:59:34 +0000 (23:59 +0000)]
basic-block.h: Remove the prototype for commit_edge_insertions_watch_calls.
* basic-block.h: Remove the prototype for
commit_edge_insertions_watch_calls.
* cfgrtl.c (commit_edge_insertion): Drop the last argument.
Simplify.
(commit_edge_insertions_watch_calls): Remove.
(commit_edge_insertions): Adjust the call to
commit_one_edge_insertion.
Paul Thomas [Fri, 22 Dec 2006 20:49:00 +0000 (20:49 +0000)]
re PR fortran/25818 ([4.1 only] Problem with handling optional and entry master arguments)
2006-12-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25818
* trans-array.c (gfc_trans_g77_array): If the variable is
optional or not always present, make the statement conditional
on presence of the argument.
* gfortran.h : Add symbol_attribute not_always_present.
* resolve.c (check_argument_lists): New function to check if
arguments are not present in all entries.
PR fortran/30084
* module.c (mio_component_ref): Move treatment of unique name
variables, during output, to fix_mio_expr.
(fix_mio_expr): New function that fixes defective expressions
before they are written to the module file.
(mio_expr): Call the new function.
(resolve_entries): Call check_argument_lists.
2006-12-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25818
* gfortran.dg/entry_array_specs_2.f: New test.
PR fortran/30084
* gfortran.dg/nested_modules_6.f90: New test.
Roger Sayle [Fri, 22 Dec 2006 03:56:43 +0000 (03:56 +0000)]
trans-array.c (gfc_trans_create_temp_array): When the size is known at compile-time, avoid an unnecessary conditional assignment.
* trans-array.c (gfc_trans_create_temp_array): When the size is known
at compile-time, avoid an unnecessary conditional assignment.
(gfc_array_init_size): Likewise.
Ulrich Weigand [Thu, 21 Dec 2006 23:23:34 +0000 (23:23 +0000)]
spu.h (ARG_POINTER_CFA_OFFSET): Define.
* config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Define.
* config/spu/spu.c (spu_expand_prologue): Set RTX_FRAME_RELATED_P
for insn setting up the frame pointer. Do not set it for insns
setting up scratch registers or storing the backchain.
Eric Botcazou [Thu, 21 Dec 2006 22:10:30 +0000 (22:10 +0000)]
re PR other/29639 (ext/bitmap_allocator/check_allocate_max_size.cc execution test)
PR other/29639
* configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables
are kept for .gnu.linkonce.t sections if COMDAT groups are disabled.
* configure: Regenerate.
Paul Thomas [Thu, 21 Dec 2006 13:59:57 +0000 (13:59 +0000)]
re PR fortran/30202 ([4.1 only] ICE in trans-array.c)
2006-12-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30202
* trans-array.c (gfc_conv_function_call): Use parmse.expr for
the nullifying of intent(out) arguments rather than the backend
declaration.
2006-12-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30202
* gfortran.dg/alloc_comp_basics_3.f90: New test.
Tobias Schlüter [Thu, 21 Dec 2006 03:04:43 +0000 (04:04 +0100)]
re PR fortran/25392 (ICEs with -ff2c)
PR fortran/25392
fortran/
* trans-stmt.c (gfc_trans_return): Fix comment formatting.
* trans-types.c (gfc_sym_type): Don't return early for functions.
Remove special handling for -ff2c.
(gfc_get_function_type): Add special handling for -ff2c.
* trans-decl.c (gfc_create_function_decl): Fix comment formatting.
(gfc_get_fake_result_decl): Make sure we get the right type for
functions.
(gfc_generate_function_code): Convert type of result variable to
type of function.
testsuite/
* gfortran.dg/f2c_8.f90: New test.
Geoffrey Keating [Thu, 21 Dec 2006 01:29:27 +0000 (01:29 +0000)]
cp-demangle.h: Add comment explaining what to do to avoid overrunning string.
* cp-demangle.h: Add comment explaining what to do to avoid
overrunning string.
(d_check_char): New.
(d_next_char): Don't advance past trailing '\0'.
* cp-demangle.c (cplus_demangle_mangled_name): Use d_check_char.
(d_nested_name): Likewise.
(d_special_name): Likewise.
(d_call_offset): Likewise.
(d_function_type): Likewise.
(d_array_type): Likewise.
(d_pointer_to_member_type): Likewise.
(d_template_param): Likewise.
(d_template_args): Likewise.
(d_template_arg): Likewise.
(d_expr_primary): Likewise.
(d_local_name): Likewise.
(d_substitution): Likewise.
(d_ctor_dtor_name): Use d_advance rather than d_next_char.
* testsuite/test-demangle.c: Include sys/mman.h.
(MAP_ANONYMOUS): Define.
(protect_end): New.
(main): Use protect_end.
* testsuite/demangle-expected: Add testcases for overrunning
the end of the string.
Jan Hubicka [Wed, 20 Dec 2006 22:40:48 +0000 (23:40 +0100)]
tree-flow-inline.h (gimple_var_anns): New function.
* tree-flow-inline.h (gimple_var_anns): New function.
(var_ann): Use hashtable for static functions.
* tree-dfa.c (create_var_ann): Likewise.
* tree-ssa.c (var_ann_eq, var_ann_hash): New functions.
(init_tree_ssa): Initialize var anns.
(delete_tree_ssa): Delete var anns; also clear out gimple_df.
* tree-flow.h (struct static_var_ann_d): New structure.
(gimple_df): Add var_anns.
Roger Sayle [Wed, 20 Dec 2006 17:23:43 +0000 (17:23 +0000)]
trans-expr.c (is_zero_initializer_p): Determine whether a given constant expression is a zero initializer.
* trans-expr.c (is_zero_initializer_p): Determine whether a given
constant expression is a zero initializer.
(gfc_trans_zero_assign): New function to attempt to optimize
"a(:) = 0.0" as a call to __builtin_memset (a, 0, sizeof(a));
(gfc_trans_assignment): Special case array assignments to a
zero initializer constant, using gfc_trans_zero_assign.
Paul Thomas [Wed, 20 Dec 2006 13:48:06 +0000 (13:48 +0000)]
re PR fortran/29992 ([4.1 only] INTERFACE equivalent to MODULE PROCEDURE?!)
2006-12-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29992
* interface.c (check_sym_interfaces): Module procedures in a
generic must be use associated or contained in the module.
* decl.c (gfc_match_modproc): Set attribute mod_proc.
* gfortran.h (symbol_attribute): Add mod_proc atribute.
PR fortran/30081
* resolve.c (resolve_generic_f, resolve_generic_s): Use
gfc_intrinsic_name to find out if the function is intrinsic
because it does not have to be a generic intrinsic to be
overloaded.
2006-12-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29992
* gfortran.dg/generic_9.f90: New test.
PR fortran/30081
* gfortran.dg/generic_10.f90: New test.
Paolo Bonzini [Tue, 19 Dec 2006 11:28:35 +0000 (11:28 +0000)]
configure.in: Remove "$build" case for powerpc-*-darwin* since it only affects bootstrap and...
2006-12-19 Paolo Bonzini <bonzini@gnu.org>
* configure.in: Remove "$build" case for powerpc-*-darwin* since
it only affects bootstrap and could be tested on "$host" as well.
* configure: Regenerate.
* config/mh-ppc-darwin: Add to the stage1 cflags here.
Andrew Pinski [Tue, 19 Dec 2006 08:28:46 +0000 (00:28 -0800)]
re PR fortran/29779 (vectorizer fortran testcases failing)
2006-12-18 Andrew Pinski <pinskia@gmail.com>
PR target/29779
* config/rs6000/rs6000.c (altivec_init_builtins): Change to set
READONLY on __builtin_altivec_mask_for_load instead of adding
the attribute.
Brooks Moses [Tue, 19 Dec 2006 00:46:46 +0000 (00:46 +0000)]
advance.f90: Renamed to advance_1.f90
* gfortran.dg/advance.f90: Renamed to advance_1.f90
* gfortran.dg/append-1.f90: Renamed to append_1.f90
* gfortran.dg/array-1.f90: Renamed to array_1.f90
* gfortran.dg/assign_4.f90: Renamed to assign_8.f90
* gfortran.dg/backspace.f: Renamed to backspace_1.f
* gfortran.dg/backspace.f90: Renamed to backspace_7.f90
* gfortran.dg/default_initialization.f: Renamed to default_initialization_1.f
* gfortran.dg/dollar_edit_descriptor-1.f: Renamed to dollar_edit_descriptor_1.f
* gfortran.dg/dollar_edit_descriptor-2.f: Renamed to dollar_edit_descriptor_2.f
* gfortran.dg/dollar_edit_descriptor-3.f: Renamed to dollar_edit_descriptor_3.f
* gfortran.dg/logint-1.f: Renamed to logint_1.f
* gfortran.dg/logint-2.f: Renamed to logint_2.f
* gfortran.dg/logint-3.f: Renamed to logint_3.f
* gfortran.dg/advance_1.f90: Renamed from advance.f90
* gfortran.dg/append_1.f90: Renamed from append-1.f90
* gfortran.dg/array_1.f90: Renamed from array-1.f90
* gfortran.dg/assign_8.f90: Renamed from assign_4.f90
* gfortran.dg/backspace_1.f: Renamed from backspace.f
* gfortran.dg/backspace_7.f90: Renamed from backspace.f90
* gfortran.dg/default_initialization_1.f: Renamed from default_initialization.f
* gfortran.dg/dollar_edit_descriptor_1.f: Renamed from dollar_edit_descriptor-1.f
* gfortran.dg/dollar_edit_descriptor_2.f: Renamed from dollar_edit_descriptor-2.f
* gfortran.dg/dollar_edit_descriptor_3.f: Renamed from dollar_edit_descriptor-3.f
* gfortran.dg/logint_1.f: Renamed from logint-1.f
* gfortran.dg/logint_2.f: Renamed from logint-2.f
* gfortran.dg/logint_3.f: Renamed from logint-3.f
Ian Lance Taylor [Mon, 18 Dec 2006 19:56:58 +0000 (19:56 +0000)]
c.opt (Wmissing-declarations): Add C++ and ObjC++.
./: * c.opt (Wmissing-declarations): Add C++ and ObjC++.
* doc/invoke.texi (Warning Options): -Wmissing-declarations now
works for C++.
cp/:
* decl.c (start_preparsed_function): Add support for
-Wmissing-declarations.
testsuite:
* g++.dg/warn/Wmissing-declarations-1.C: New test.
Andrew MacLeod [Mon, 18 Dec 2006 16:21:08 +0000 (16:21 +0000)]
Add memory reuse to virtual operands in the operand scanner.
2006-12-18 Andrew MacLeod <amacleod@redhat.com>
* tree-ssa-operands.h (struct vdef_optype_d): Rename to voptype_d.
(struct vuse_optype_d): Delete.
(SSA_OPERAND_MEMORY_SIZE): Delete.
(struct ssa_operand_memory_d): Change mem array to size one.
(NUM_VOP_FREE_BUCKETS): Define.
(free_vuses, free_vdefs): Replace with vop_free_buckets array.
(vdef_ops, vuse_ops, struct ssa_operand_iterator_d): Use voptype_d type.
* tree-pretty-print.c (dump_vops): Use voptype_d type.
* tree-ssa-operands.c (vop_free_bucket_size): New. Number of operands
which fit into a chunk of memory from a specific bucket.
(vop_free_bucket_index): New. Find correct size memory bucket.
(init_vop_buckets): New. Initialize VOP free memory buckets.
(add_vop_to_freelist): New. Add a VOP to the correct free list.
(ssa_operand_mem_size): New. Current size of an operand memory chunk.
(init_ssa_operands): Initialize operand memory and free lists.
(fini_ssa_operands): Remove references to free_vuses and free_vdefs.
(ssa_operand_alloc): Use graduated size memory allocation.
(APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
INITIALIZE_USE): Remove.
(alloc_vop): New. Allocate a virtual operand.
(alloc_vdef, alloc_vuse): Delete.
(add_def_op, add_use_op): Directly setup pointers.
(add_vop): New. Add a virtual operand.
(add_vuse_op, add_vdef_op): Call add_vop.
(realloc_vop): New. Reallocate a virtual operand.
(realloc_vdef, realloc_vuse): Call realloc_vop.
(finalize_ssa_def_ops): Delete. Move content to finalize_ssa_defs.
(finalize_ssa_defs): Optimize for common case, remove code based on
sorted pointers which was a waste of time.
(finalize_ssa_use_ops): Delete. Move content to finalize_ssa_uses.
(finalize_ssa_uses): Update last pointer.
(finalize_ssa_vdef_ops): Delete. Move content to finalize_ssa_vdefs.
(finalize_ssa_vdefs, finalize_ssa_vuse_ops): Use voptype_d and
directly manipulate pointers.
(copy_virtual_operands): Use voptype_d, and no need to update pointers.
Steven Bosscher [Sun, 17 Dec 2006 20:27:25 +0000 (20:27 +0000)]
cse.c (have_eh_succ_edges): New function.
* cse.c (have_eh_succ_edges): New function.
(cse_insn): Don't remove dead EH edges here
(cse_extended_basic_block): Do it here.
(rest_of_handle_cse, rest_of_handle_cse2): Don't assert
that we have removed all dead edges.
Roger Sayle [Sun, 17 Dec 2006 18:28:07 +0000 (18:28 +0000)]
re PR fortran/30207 (ICE in gfc_dep_resolver with where (a < 0) a(:) = 1)
2006-12-17 Roger Sayle <roger@eyesopen.com>
Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/30207
* dependency.c (gfc_full_array_ref_p): New function to test whether
the given array ref specifies the entire array.
(gfc_dep_resolver): Use gfc_full_array_ref_p to analyze AR_FULL
array refs against AR_SECTION array refs, and vice versa.
* dependency.h (gfc_full_array_ref_p): Prototype here.
* trans-array.c (gfc_conv_expr_descriptor): Use gfc_full_array_ref_p.
* gfortran.fortran-torture/execute/where21.f90: New test.
Steven Bosscher [Sun, 17 Dec 2006 13:12:37 +0000 (13:12 +0000)]
cse.c (cse_find_path): Don't wrap a gcc_assert in ENABLE_CHECKING.
* cse.c (cse_find_path): Don't wrap a gcc_assert in ENABLE_CHECKING.
(cse_extended_basic_block): When truncating a path while processing
it, make sure to clear the visited bit on the basic blocks in the
truncated part of the path.
(cse_main): Use reverse completion order, not DFS order, to walk
the CFG.
(gate_handle_cse): Revert erroneous commit of a counter.
Steven Bosscher [Sun, 17 Dec 2006 13:11:06 +0000 (13:11 +0000)]
cse.c (this_insn_cc0, [...]): New global variables, moved out from cse_insn.
* cse.c (this_insn_cc0, this_insn_cc0_mode): New global
variables, moved out from cse_insn.
(prev_insn): Remove this global variable).
(new_basic_block): Don't set it.
(cse_insn): Idem. Also, move code to delete unused CC0-setter
insns and code to set prev_insn_cc0 and prev_insn_cc0_mode
from here...
(cse_extended_basic_block): ...to here. Do not clear
prev_insn_cc0 until after recording equivalences from jumps.
Brooks Moses [Sun, 17 Dec 2006 02:41:48 +0000 (02:41 +0000)]
gfortran.texi: Added TeX support for document parts...
* gfortran.texi: Added TeX support for document parts;
rearranged existing text into "About GNU Fortran",
"Invoking GNU Fortran", and "Language Reference" parts.