* 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.
David Daney [Mon, 11 Sep 2006 18:15:27 +0000 (18:15 +0000)]
re PR classpath/28580 (HTTP HEAD fails on chuncked encoding)
PR classpath/28580
* gnu/java/net/protocol/http/Request.java (readResponse): Call
createResponseBodyStream in more cases and with new parameter.
(createResponseBodyStream): Added new parameter mayHaveBody. Handle
HEAD and !mayHaveBody responses specially.
Paul Thomas [Mon, 11 Sep 2006 05:02:58 +0000 (05:02 +0000)]
re PR fortran/28890 (ICE on write)
2006-09-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28890
trans-expr.c (gfc_conv_function_call): Obtain the string length
of a dummy character(*) function from the symbol if it is not
already translated. For a call to a character(*) function, use
the passed, hidden string length argument, which is available
from the backend_decl of the formal argument.
resolve.c (resolve_function): It is an error if a function call
to a character(*) function is other than a dummy procedure or
an intrinsic.
2006-09-11 Paul Thomas <pault@gcc.gnu.org>
PR libfortran/28890
gfortran.dg/assumed_charlen_function_5.f90: New test.
Mark Mitchell [Mon, 11 Sep 2006 00:40:15 +0000 (00:40 +0000)]
re PR c++/28991 (Static constructor emitted instead of initialized variable)
PR c++/28991
* cp-objcp-common.c (cxx_staticp): New function.
* cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
* cp-tree.h (cxx_staticp): New function.
PR c++/289991
* g++.dg/init/static3.C: New test.
Eric Botcazou [Sun, 10 Sep 2006 21:27:36 +0000 (23:27 +0200)]
re PR rtl-optimization/28636 (Miscompiled loop)
PR rtl-optimization/28636
* combine.c (force_to_mode): Test for side-effects before
substituting by zero.
(simplify_shift_const): Likewise for zero or other constants.
re PR target/29006 (Incorrect zeroing of unaligned 64-bit fields on MIPS targets)
gcc/
PR target/29006
* config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
* config/mips/mips.c (mips_expand_unaligned_store): Use the mode
returned by mode_for_size, rather than the mode of src itself,
to choose between 32-bit and 64-bit patterns.
(mips_mem_fits_mode_p): New function.
* config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
that the size of the source matches the size of the destination.
(mov_<store>l, mov_<store>r): Likewise.
gcc/testsuite/
PR target/29006
* gcc.c-torture/execute/pr29006.c: New test.
Paul Thomas [Sun, 10 Sep 2006 17:21:44 +0000 (17:21 +0000)]
re PR fortran/28947 (Double MATMUL() uses wrong array elements)
2006-09-10 Paul Thomas <pault@gcc.gnu.org>
PR libfortran/28947
* m4/matmul.m4: For the case where the second input argument is
transposed, ensure that the case with rank (a) == 1 is
correctly calculated.
* generated/matmul_r4.c: Regenerate.
* generated/matmul_r8.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
2006-09-10 Paul Thomas <pault@gcc.gnu.org>
PR libfortran/28947
gfortran.dg/matmul_4.f90: New test.
Paul Thomas [Sun, 10 Sep 2006 04:53:18 +0000 (04:53 +0000)]
re PR fortran/28914 (Code inside loop hangs; outside loop runs normally; runs OK on other compilers)
2006-09-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28914
* trans-array.c (gfc_trans_array_constructor_value): Create a temporary
loop variable to hold the current loop variable in case it is modified
by the array constructor.
Paolo Bonzini [Sat, 9 Sep 2006 12:43:32 +0000 (12:43 +0000)]
re PR target/26778 (GCC4 moves the result of a conditional block through inadequate registers)
gcc:
2006-09-09 Paolo Bonzini <bonzini@gnu.org>
Dale Johannesen <dalej@apple.com>
PR target/26778
* regclass.c (struct reg_pref): Update documentation.
(regclass): Set prefclass to NO_REGS if memory is the best option.
(record_reg_classes): Cope with a prefclass set to NO_REGS.
gcc/testsuite:
2006-09-09 Eric Christopher <echristo@apple.com>
PR target/26778
* gcc.target/i386/pr26778.c: New testcase.