Paul Thomas [Mon, 18 Sep 2006 06:24:54 +0000 (06:24 +0000)]
re PR fortran/29060 (spread causes ICE in gfc_trans_array_constructor)
2006-09-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29060
* iresolve.c (resolve_spread): Build shape for result if the
source shape is available and dim and ncopies are constants.
PR fortran/28817
PR fortran/21918
* trans-decl.c (generate_local_decl): Change from 'warning' to
'gfc_warning' to have line numbers correctly reported.
2006-09-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29060
* gfortran.dg/spread_shape_1.f90: New test.
Roger Sayle [Mon, 18 Sep 2006 01:54:33 +0000 (01:54 +0000)]
re PR tree-optimization/28887 (rejects valid code (bitfields and loops) with -O1 -fprefetch-loop-arrays)
2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/28887
* tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
component parts from the reference.
(gather_memory_references_ref): Record the reference without the
nonaddressable component parts.
Ira Rosen [Sun, 17 Sep 2006 09:17:51 +0000 (09:17 +0000)]
re PR tree-optimization/21591 (not vectorizing a loop with access to structs)
PR tree-opt/21591
* tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
tag first.
(ptr_ptr_may_alias_p): Likewise.
(record_record_differ_p): New function.
(base_object_differ_p): Call record_record_differ_p.
Andrew Pinski [Sat, 16 Sep 2006 22:52:11 +0000 (15:52 -0700)]
re PR tree-optimization/29059 (ICE: verify_stmts failed (invalid operand to unary operator ""[0];))
2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/29059
* gcc.c-torture/compile/strcpy-1.c: New test.
* gcc.c-torture/compile/strcpy-2.c: New test.
* gcc.c-torture/compile/memcpy-1.c: New test.
* gcc.c-torture/compile/memcpy-2.c: New test.
2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/29059
* tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
away for the expr argument.
Eric Botcazou [Fri, 15 Sep 2006 18:32:24 +0000 (18:32 +0000)]
re PR ada/15802 (ICE at expr.c:6764 (placeholder mechanism))
PR ada/15802
* decl.c (same_discriminant_p): New static function.
(gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
subtype and we have discriminants, fix up the COMPONENT_REFs
for the discriminants to make them reference the corresponding
fields of the parent subtype after it has been built.
Nick Clifton [Fri, 15 Sep 2006 15:27:43 +0000 (15:27 +0000)]
md.texi (Processor pipeline description): Fix typo in example of how to use the absence_set directive and reword the...
* doc/md.texi (Processor pipeline description): Fix typo in
example of how to use the absence_set directive and reword the
description to make it slightly easier to read.
bfin.c (struct loop_info): New members block_bitmap and bad.
* config/bfin/bfin.c (struct loop_info): New members block_bitmap and
bad.
(struct loop_work and related VEC declarations): Delete.
(bfin_dump_loops): Print out new member bad.
(bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
(bfin_scan_loop): Don't recurse.
(bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
loops. No longer need to update outer loops if the current one is
found bad. Move some validitiy checks to bfin_discover_loop.
(bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
but changed not to check for nesting. Also changed to use the new bad
flag.
(bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
time. Use bitmap based test to discover loop nesting.
* params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
* loop-doloop.c (doloop_optimize): Use it to limit costs of
expanding the number of iterations.
posix.cc (_Jv_platform_nanotime): Return nanoseconds, not microseconds; use gettimeofday when available.
* posix.cc (_Jv_platform_nanotime): Return nanoseconds, not
microseconds; use gettimeofday when available.
* posix-threads.cc (_Jv_CondWait): Improve accuracy and range of
timeout calculation.
* testsuite/libjava.lang/Thread_Sleep_2.java: New.
* testsuite/libjava.lang/Thread_Sleep_2.out: New.
* testsuite/libjava.lang/Thread_Sleep_2.xfail: New.
Eric Botcazou [Wed, 13 Sep 2006 21:23:28 +0000 (23:23 +0200)]
re PR other/23541 (All error messages produce segfault)
PR other/23541
PR other/26507
Backport from gettext repository:
2003-09-04 Bruno Haible <bruno@clisp.org>
* dgettext.c: Include <locale.h> after gettextP.h, not before. This
ensures that libintl_dcgettext is correctly declared on Solaris.
(Needed because Solaris <locale.h> includes libintl.h.)
* dngettext.c: Likewise, for the libintl_dcngettext declaration.
re PR ada/29025 (procedure doesn't modify In Out parameter)
PR ada/29025
* trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
of a SAVE_EXPR, just make the operand addressable/not-readonly and
let the common gimplifier code make and propagate a temporary copy.
(call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
out/in-out actuals and defer setting the addressable/readonly bits
to the gimplifier.
Eric Botcazou [Wed, 13 Sep 2006 18:40:26 +0000 (18:40 +0000)]
re PR ada/28591 (ICE in splice_child_die, at dwarf2out.c:5513)
PR ada/28591
* decl.c (components_to_record): Defer emitting debug info for the
record type associated with the variant until after we are sure to
actually use it.
Andreas Krebbel [Wed, 13 Sep 2006 10:59:03 +0000 (10:59 +0000)]
flow.c (calculate_global_regs_live): Invalidate eh registers on eh edges.
2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
* flow.c (calculate_global_regs_live): Invalidate eh registers
on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
(propagate_block): Handle eh registers as if they were set at basic
block start.
* except.c (dw2_build_landing_pads): Don't emit clobbers for eh
registers.
* global.c (global_conflicts): Make eh registers to conflict with
pseudos live at basic block begin.
* basic_block.h (bb_has_eh_pred): New function.
re PR rtl-optimization/28982 (Incorrect reloading of automodification expressions)
gcc/
PR rtl-optimization/28982
* reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
index of a PRE_MODIFY or POST_MODIFY address.
* reload1.c (inc_for_reload): Use find_replacement on the original
base and index registers.
gcc/testsuite/
PR rtl-optimization/28982
* gcc.c-torture/execute/pr28982a.c: New test.
* gcc.c-torture/execute/pr28982b.c: Likewise.
Andrew Pinski [Tue, 12 Sep 2006 19:31:09 +0000 (19:31 +0000)]
dwarf2out.c (file_table_last_lookup): Move this GC'd declaration outside of #ifdef DWARF2_DEBUGGING_INFO to fix...
* dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
on platforms that don't use dwarf for debug info.
Co-Authored-By: Roger Sayle <roger@eyesopen.com>
From-SVN: r116903
Roger Sayle [Tue, 12 Sep 2006 17:13:55 +0000 (17:13 +0000)]
re PR target/22223 (New testsuite failure on Tru64 UNIX V5.1B: gcc.c-torture/compile/20050622-1.c)
PR target/22223
* config/alpha/alpha.c (alpha_start_function): Don't emit stack
frame information for frames larger than 512 Kbytes on Tru64 when
using the native assembler.
Roger Sayle [Tue, 12 Sep 2006 16:02:31 +0000 (16:02 +0000)]
re PR middle-end/4520 (cselib.c hash_rtx incorrectly hashes based on rtx address)
PR middle-end/4520
PR bootstrap/28784
* cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
and symbols. Instead use the implementation from cse.c's hash_rtx.
Jan Hubicka [Tue, 12 Sep 2006 10:11:04 +0000 (12:11 +0200)]
re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)
PR rtl-optimization/28071
* tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
(vect_transform_loop): Likewise.
* tree-vectorizer.c (new_loop_vec_info): Likewise.
(new_loop_vec_info): Likewise.
(destroy_loop_vec_info): Likewise.
* tree-dfa.c (create_var_ann): Use GCC_CNEW.
(create_stmt_ann): Likewise.
(create_tree_ann): Rename to ...
(create_tree_common_ann): ... this one; allocate only the common part
of annotations.
* tree-vn.c (set_value_handle): Use get_tree_common_ann.
(get_value_handle): Likewise.
* tree-ssa-pre.c (phi_translate): Delay annotation allocation for
get_tree_common_ann.
* tree-vectorizer.h (set_stmt_info): Take stmt annotation.
(vinfo_for_stmt): Use stmt annotations.
* tree-flow.h (tree_ann_common_t): New type.
(tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
(tree_ann, get_tree_ann, create_tree_ann): New.
* tree-flow-inline.h (get_function_ann): Do more type checking.
(stmt_ann): Likewise.
(tree_ann): Rename to ...
(tree_common_ann): ... this one; return ony common_ann
(get_tree_ann): Rename to ...
(tree_common_ann): This one; return only common_ann.
* tree-vect-patterns.c (vect_pattern_recog_1): Update call
of set_stmt_info.
re PR target/28672 (Gcc went into infinite loop when building libstdc++)
2006-09-11 Alexandre Oliva <aoliva@redhat.com>
PR target/28672
* var-tracking.c (dump_dataflow_set): Start dumping at
register zero.
(clobber_variable_part): Kill only the variable part in
registers holding it, leaving other variables alone.
Eric Botcazou [Mon, 11 Sep 2006 19:28:11 +0000 (21:28 +0200)]
re PR rtl-optimization/28726 (-fsched2-use-superblock produces wrong code)
PR rtl-optimization/28726
* sched-deps.c (sched_analyze_reg): New function extracted from...
(sched_analyze_1): ...here. Call it to analyze references to
registers. Treat again writes to a stack register as writing to the
register.
(sched_analyze_2): ...and here. Call it to analyze references to
registers. Treat again reads of a stack register as reading the
register.