Ulrich Drepper [Fri, 4 May 2007 19:20:28 +0000 (19:20 +0000)]
crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
* crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
(__do_global_dtors_aux): Use more paranoid loop to run
destructors if HIDDEN_DTOR_LIST_END.
(__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r124444
Jakub Jelinek [Fri, 4 May 2007 19:17:57 +0000 (21:17 +0200)]
varasm.c (align_variable): Don't increase alignment for DECL_THREAD_LOCAL_P variables above BITS_PER_WORD...
* varasm.c (align_variable): Don't increase alignment for
DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
* testsuite/util/testsuite_iterators.h: Do not include the entire
<iterator>.
* include/bits/stl_iterator_base_types.h: Adjust includes.
* testsuite/25_algorithms/unique_copy/2.cc: Include <functional>.
Jan Hubicka [Fri, 4 May 2007 15:32:42 +0000 (17:32 +0200)]
opts.c (decode_options): Do not fiddle with inlining parameters in case of optimizing for size.
* opts.c (decode_options): Do not fiddle with inlining
parameters in case of optimizing for size.
* ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
for size do nothing.
(cgraph_decide_inlining_of_small_function): When optimizing for
size never inline functions increasing caller size.
(cgraph_early_inlining): Inline for size when optimizing for size.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r124431
re PR libfortran/31210 (I/O of string with (non-constant) zero length)
PR libfortran/31210
* io/transfer.c (transfer_character): Avoid passing a NULL
pointer as source to the transfer routines, if the string length
is zero.
Bernd Schmidt [Fri, 4 May 2007 11:00:00 +0000 (11:00 +0000)]
bfin.md (<optab>di3): Now a define_expand which expands logical operations piecewise.
* config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
logical operations piecewise.
(<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
subdi_sesidi_di): Delete.
(add_with_carry): Produce carry in CC instead of a DREG to shorten
the generated sequence. Allow three-reg add in constraints. Rewrite
the rtl expression for carry to avoid zero_extend of a constant.
(sub_with_carry): New pattern.
(adddi3, subdi3): Change into define_expand. For subtract, generate a
different sequence not involving jumps.
(notbi): Now a named pattern.
Brad Lucier [Fri, 4 May 2007 10:19:31 +0000 (12:19 +0200)]
invoke.texi (i386 and x86-64 Options): Add the note about a significant loss of accuracy of some mathematical routines...
* doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
Add the note about a significant loss of accuracy of some
mathematical routines when these options are used.
Maxim Kuvyrkov [Fri, 4 May 2007 07:21:20 +0000 (07:21 +0000)]
haifa-sched.c (rtx_vec_t): New typedef.
* haifa-sched.c (rtx_vec_t): New typedef.
(contributes_to_priority_p): Extract piece of priority () into new
static function.
(priority): Use the function. Add assertion.
(rank_for_schedule, set_priorities): Add assertion to check that
insn's priority is initialized.
(clear_priorities, calc_priorities): Change signature. Make it update
all relevant insns. Update all callers ('add_to_speculative_block ()'
and 'create_block_check_twin ()').
* sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
Add new field 'priority_status'.
(INSN_PRIORITY_STATUS): New macro.
(INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
Maxim Kuvyrkov [Fri, 4 May 2007 07:13:28 +0000 (07:13 +0000)]
sched-ebb.c (debug_ebb_dependencies): New static function.
* sched-ebb.c (debug_ebb_dependencies): New static function.
(init_ready_list): Use it.
* sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
with changed signature and 'debug_rgn_dependencies ()'.
(debug_rgn_dependencies): New static function.
(init_ready_list): Use it.
Joel Brobecker [Thu, 3 May 2007 23:39:35 +0000 (23:39 +0000)]
filename_cmp.c: Replace include of ctype.h by include of safe-ctype.h.
* filename_cmp.c: Replace include of ctype.h by include of
safe-ctype.h.
(filename_cmp): Use TOLOWER instead of tolower for conversions
that are locale-independent.
* Makefile.in (filename_cmp.o): Add dependency on safe-ctype.h.
Andrew Haley [Thu, 3 May 2007 18:38:37 +0000 (18:38 +0000)]
Server.java (Server): Record the delegate.
2007-05-03 Andrew Haley <aph@redhat.com>
* gnu/javax/management/Server.java (Server): Record the delegate.
(registerMBean): Notify the delegate.
(unregisterMBean): Likewise.
(notify): New method.
Andrew Haley [Thu, 3 May 2007 18:35:55 +0000 (18:35 +0000)]
Server.java (Server): Record the delegate.
2007-05-03 Andrew Haley <aph@redhat.com>
* gnu/javax/management/Server.java (Server): Record the delegate.
(registerMBean): Notify the delegate.
(unregisterMBean): Likewise.
(notify): New method.
Andrew Haley [Thu, 3 May 2007 18:30:33 +0000 (18:30 +0000)]
Server.java (Server): Record the delegate.
2007-05-03 Andrew Haley <aph@redhat.com>
* gnu/javax/management/Server.java (Server): Record the delegate.
(registerMBean): Notify the delegate.
(unregisterMBean): Likewise.
(notify): New method.
Bernd Schmidt [Thu, 3 May 2007 13:24:03 +0000 (13:24 +0000)]
frmul.c (__v2hi): Use short as base type, not itn.
* gcc.target/bfin/frmul.c (__v2hi): Use short as base type, not itn.
* gcc.target/bfin/arith.c (__v2hi): Likewise.
* gcc.target/bfin/mul-combine.c (__v2hi): Likewise.
* gcc.target/bfin/shift.c (__v2hi): Likewise.
Bernd Schmidt [Thu, 3 May 2007 13:17:51 +0000 (13:17 +0000)]
bfin.md (addpdi3, [...]): New patterns.
* config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
(umulsi3_highpart): Use them.
* config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
for final accumulator to D regisster tranfser.
Tom Tromey [Wed, 2 May 2007 19:33:44 +0000 (19:33 +0000)]
re PR preprocessor/28709 (Bad diagnostic pasting tokens with ##)
libcpp
PR preprocessor/28709:
* macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
gcc/testsuite
PR preprocessor/28709:
* gcc.dg/cpp/pr28709.c: New file.
re PR tree-optimization/31146 (forwprop does not look through casts)
2007-05-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/31146
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
argument, single_use_p. If we have a single use that is
a conversion to the definition rhs type, propagate that rhs.
(forward_propagate_addr_expr): Pass single_use_p argument
to forward_propagate_addr_expr_1.
Pascal Obry [Wed, 2 May 2007 08:43:30 +0000 (08:43 +0000)]
re PR ada/29856 (broken if..else in gcc/ada/adaint.c)
2007-04-20 Pascal Obry <obry@adacore.com>
* gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
to use Stream_IO.File_Type. This is needed to make use of the UTF-8
encoding support of Stream_IO.
(Write_Unit): Idem.
* adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
filename and corresponding encoding to match the OS requirement.
(__gnat_file_exists): Do not call __gnat_stat() on Windows as this
routine will fail on specific devices like CON: AUX: ...
* config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
and athlon64-sse3 as improved versions of k8, opteron and athlon64
with SSE3 instruction set support.
* doc/invoke.texi: Likewise.
Mark Mitchell [Tue, 1 May 2007 17:51:21 +0000 (17:51 +0000)]
gmon-sol2.c (size_t): New type.
* config/i386/gmon-sol2.c (size_t): New type.
(intptr_t): Likewise.
(s_textsize): Declare as size_t.
(sbrk): Declare.
(monstartup): Use size_t for sizes.
(_mcount): Save and restore registers.
(internal_mcount): Pass 0 as the first argument to monstartup
in 64-bit mode.
(moncontrol): Convert pointer to appropriately sized integer
before passing to profil.
Joseph Myers [Tue, 1 May 2007 17:41:48 +0000 (18:41 +0100)]
darwin-ldouble.c (__gcc_qunord): Define if __NO_FPRS__, not just if _SOFT_DOUBLE.
* config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
__NO_FPRS__, not just if _SOFT_DOUBLE.
* config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
also for E500 double.
* config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
&& !TARGET_FPRS).
i386.c (override_options): Tuning 32-byte loop alignment for amdfam10 architecture.
* config/i386/i386.c (override_options): Tuning 32-byte loop
alignment for amdfam10 architecture. Increasing the max loop
alignment padding to 24 bytes.
Thomas Koenig [Tue, 1 May 2007 13:11:36 +0000 (13:11 +0000)]
re PR fortran/31732 (Assignment to array slice affects whole array)
2007-05-01 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/31732
* dependency.c (gfc_full_array_ref_p): If the reference is
to a single element, check that the array has a single
element and that the correct element is referenced.
2007-05-01 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/31732
* gfortran.dg/array_memset_2: New test case.
* tree.h (maybe_fold_offset_to_component_ref): Remove.
(maybe_fold_offset_to_reference): Declare.
* fold-const.c (fold_unary): Do not fold
(type *)&A into &A->field_of_type_and_offset_0
* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
size is unknown, give up.
(maybe_fold_offset_to_component_ref): Ignore firelds with unknown
offsets.
(maybe_fold_offset_to_reference): New.
(maybe_fold_stmt_indirect): Use it.
(fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
* gimplify.c (gimplify_conversion): Canonicalize conversions to
field references.
(gimplify_expr): Likewise for plus_expr.
Zdenek Dvorak [Tue, 1 May 2007 10:17:43 +0000 (12:17 +0200)]
tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use bsi_after_labels.
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
bsi_after_labels. Always insert statements before bsi.
* tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
* predict.c (apply_return_prediction): Check for empty blocks.
* cfgexpand.c (lab_rtx_for_bb): New variable.
(label_rtx_for_bb): Do not create new tree labels.
(expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
(tree_expand_cfg): Initialize lab_rtx_for_bb.
* tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
creating edges.
(label_for_bb): Add field used.
(update_eh_label, main_block_label): Mark the label used.
(cleanup_dead_labels): Remove unused labels.
tree-vrp.c (set_value_range): Do not allocate equiv bitmap if it is not about to be set.
2007-05-01 Richard Guenther <rguenther@suse.de>
* tree-vrp.c (set_value_range): Do not allocate equiv bitmap
if it is not about to be set.
(get_value_range): Do not pre-allocate equiv bitmap.
(update_value_range): No need to clear equiv field.
(add_equivalence): Change prototype to get bitmap pointer.
Allocate bitmap here if it is not already.
(extract_range_from_assert): Do not allocate bitmap here.
Update callers to add_equivalence.
(extract_range_from_ssa_name): Likewise.
(get_vr_for_comparison): New static helper.
(compare_name_with_value): Handle NULL equiv bitmap by
peeling the first iteration of the comparison loop.
Use get_vr_for_comparison.
(compare_names): Handle NULL equiv bitmaps by using fake
ones. Use get_vr_for_comparison.
2007-05-01 Daniel Franke <franke.daniel@gmail.com>
* intrinsic.c (add_functions): Fixed ELEMENTAL specifications.
(add_subroutines): Replaced magic numbers in function calls by
ELEMENTAL and NOT_ELEMENTAL respectively.
* intrinsic.texi (MVBITS): Changed class to elemental subroutine.
(RANDOM_NUMBER): Changed class to subroutine.
(HUGE, TINY): Changed class to inquiry function.
Keith Seitz [Tue, 1 May 2007 02:50:02 +0000 (02:50 +0000)]
interpret-run.cc (NEXT_INSN): Advance PC before executing the instruction.
* interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before
executing the instruction.
* include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract
one insn from the frame's PC. _Jv_InterpMethod::run et al
will advance the PC before executing the instruction.
trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int.
* trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int.
(gfc_conv_tree_to_mpz): New function.
(gfc_conv_mpfr_to_tree): Use real_from_mpfr.
(gfc_conv_tree_to_mpfr): New function.
* trans-const.h: (gfc_conv_tree_to_mpz): New prototype.
(gfc_conv_tree_to_mpfr): New prototype.
double-int.c (mpz_set_double_int): Moved from tree-ssa-loop-niter.c.
* double-int.c (mpz_set_double_int): Moved from
tree-ssa-loop-niter.c.
(mpz_get_double_int): Likewise; also, add option to wrap
out-of-range integers.
* double-int.h: New prototypes for above.
* tree.c (get_static_type_bounds): Moved from
tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
TYPE_MAX_VALUE if they exist..
* tree.h: New prototype for above.
* tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
get_type_bounds calls.
(mpz_set_double_int): Move to double-int.c.
(get_type_bounds): Move to tree.c, rename to
get_static_type_bounds.
(mpz_to_double_int): Move to double-int.c, rename to
mpz_get_double_int.