Eric Botcazou [Sun, 17 Jun 2007 11:17:10 +0000 (13:17 +0200)]
sparc.c (sparc_vis_init_builtins): Retrieve the return mode from the builtin itself.
* config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
return mode from the builtin itself.
(sparc_fold_builtin): Fix cast of zero constant.
From-SVN: r125768
Uros Bizjak [Sun, 17 Jun 2007 07:20:21 +0000 (09:20 +0200)]
sse-recip-vec.c: Add file, missing from my previous commit.
* gcc.target/i386/sse-recip-vec.c: Add file, missing from my
previous commit.
From-SVN: r125767
Janne Blomqvist [Sun, 17 Jun 2007 06:18:38 +0000 (09:18 +0300)]
gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n environment variables.
2007-06-17 Janne Blomqvist <jb@gcc.gnu.org>
* gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n
environment variables. Fix documentation for
GFORTRAN_UNBUFFERED_ALL environment variable.
From-SVN: r125766
GCC Administrator [Sun, 17 Jun 2007 00:16:58 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125764
Uros Bizjak [Sat, 16 Jun 2007 19:36:50 +0000 (21:36 +0200)]
* Fix mis-merge from PTR-PLUS branch.
From-SVN: r125759
Uros Bizjak [Sat, 16 Jun 2007 18:52:11 +0000 (20:52 +0200)]
targhooks.c (default_builtin_reciprocal): New default target hook.
* targhooks.c (default_builtin_reciprocal): New default target hook.
* targhooks.h (default_builtin_reciprocal): Add prototype.
* hooks.c (hook_tree_tree_bool_null): Remove hook.
* hooks.h (hook_tree_tree_bool_null): Remove prototype.
* target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
default_builtin_reciprocal.
From-SVN: r125758
Vladimir Prus [Sat, 16 Jun 2007 12:30:49 +0000 (12:30 +0000)]
cppfiles.c (open_file): Prevent the call for stat from overwriting errno.
* cppfiles.c (open_file): Prevent the call
for stat from overwriting errno.
From-SVN: r125757
Uros Bizjak [Sat, 16 Jun 2007 09:52:48 +0000 (11:52 +0200)]
re PR middle-end/31723 (Use reciprocal and reciprocal square root with -ffast-math)
PR middle-end/31723
* hooks.c (hook_tree_tree_bool_null): New hook.
* hooks.h (hook_tree_tree_bool_null): Add prototype.
* tree-pass.h (pass_convert_to_rsqrt): Declare.
* passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
and convert it to reciprocal a*rfunc(b).
(execute_convert_to_rsqrt): New function.
(gate_convert_to_rsqrt): New function.
(pass_convert_to_rsqrt): New pass definition.
* target.h (struct gcc_target): Add builtin_reciprocal.
* target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
(TARGET_INITIALIZER): Initialize builtin_reciprocal with
TARGET_BUILTIN_RECIPROCAL.
* doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
* config/i386/i386.h (TARGET_RECIP): New define.
* config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(*rcpsf2_sse): New insn pattern.
(*rsqrtsf2_sse): Ditto.
(rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
* config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(*sse_rsqrtv4sf2): Do not export.
(sqrtv4sf2): Ditto.
(sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(sqrtv4sf2): Ditto.
* config/i386/i386.opt (mrecip): New option.
* config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
(ix86_emit_swsqrtsf): Ditto.
* config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
(ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
builtin definition.
(ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
ix86_expand_unop1_builtin.
(ix86_emit_swdivsf): New function.
(ix86_emit_swsqrtsf): Ditto.
(ix86_builtin_reciprocal): New function.
(TARGET_BUILTIN_RECIPROCAL): Use it.
(ix86_vectorize_builtin_conversion): Rename from
ix86_builtin_conversion.
(TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
* doc/invoke.texi (Machine Dependent Options): Add -mrecip to
"i386 and x86_64 Options" section.
(Intel 386 and AMD x86_64 Options): Document -mrecip.
testsuite/ChangeLog:
PR middle-end/31723
* gcc.target/i386/recip-divf.c: New test.
* gcc.target/i386/recip-sqrtf.c: Ditto.
* gcc.target/i386/recip-vec-divf.c: Ditto.
* gcc.target/i386/recip-vec-sqrtf.c: Ditto.
* gcc.target/i386/sse-recip.c: Ditto.
From-SVN: r125756
Andrew Pinski [Sat, 16 Jun 2007 05:42:36 +0000 (22:42 -0700)]
[multiple changes]
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
Zdenek Dvorak <dvorakz@suse.cz>
Richard Guenther <rguenther@suse.de>
Kaz Kojima <kkojima@gcc.gnu.org>
* tree-vrp.c (compare_values_warnv): Convert val2 to
the type of val1.
(extract_range_from_assert): Create
POINTER_PLUS_EXPR for pointer types.
(extract_range_from_binary_expr): Handle
only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
for pointer types.
* doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
* tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
POINTER_PLUS_EXPR as PLUS_EXPR.
(number_of_iterations_lt_to_ne):
For pointer types, use sizetype when
creating MINUS_EXPR/PLUS_EXPRs.
(assert_loop_rolls_lt): For pointer types, use sizetype when
creating MINUS_EXPR/PLUS_EXPRs.
(number_of_iterations_le): Likewise.
(expand_simple_operations): POINTER_PLUS_EXPR are simple also.
(derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
like PLUS_EXPR and MINUS_EXPR.
* tree-pretty-print.c (dump_generic_node): Handle
POINTER_PLUS_EXPR.
(op_prio): Likewise.
(op_symbol_1): Likewise.
* optabs.c (optab_for_tree_code): Likewise.
* tree-ssa-loop-manip.c (create_iv): Handle pointer base
specially.
* tree-tailcall.c (process_assignment): Mention
POINTER_PLUS_EXPR in a TODO comment.
* tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
not used with a pointer and an integer type.
* tree-scalar-evolution.c (add_to_evolution_1): Convert the
increment using chrec_convert_rhs instead of chrec_convert.
(follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
PLUS_EXPR except for the right hand side's type will be
sizetype.
(interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
(fold_used_pointer_cast): Kill.
(pointer_offset_p): Kill.
(fold_used_pointer): Kill.
(pointer_used_p): Kill.
(analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
call fold_used_pointer.
(instantiate_parameters_1): Convert the increment
using chrec_convert_rhs instead of chrec_convert.
Handle POINTER_PLUS_EXPR as PLUS_EXPR.
* builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
instead of PLUS_EXPR.
(expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
PLUS_EXPR for pointers.
(std_gimplify_va_arg_expr): Likewise.
(fold_builtin_memory_op): Likewise.
(fold_builtin_strstr): Likewise.
(fold_builtin_strchr): Likewise.
(fold_builtin_strrchr): Likewise.
(fold_builtin_strpbrk): Likewise.
(expand_builtin_memory_chk): Likewise.
(fold_builtin_memory_chk): Likewise.
(std_expand_builtin_va_start): Use
sizetype for the call to make_tree and then convert
to the pointer type.
(fold_builtin_memchr): Use POINTER_PLUS_EXPR
instead of PLUS_EXPR for adding to a pointer.
(std_gimplify_va_arg_expr): Use fold_build2 for
the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
the operands to sizetype first and then cast the BIT_AND_EXPR
back to the pointer type.
* fold-const.c (build_range_check): Handle pointer types
specially.
(extract_array_ref): Look for POINTER_PLUS_EXPR instead
of PLUS_EXPR's. Make sure the offset is converted to
sizetype.
(try_move_mult_to_index): Strip the NOPs from the offset.
Remove code argument and replace all uses with PLUS_EXPR.
(fold_to_nonsharp_ineq_using_bound): Handle pointer types
specially. Don't use a pointer type for MINUS_EXPR.
(fold_unary): Handle for (T1)(X op Y),
only p+ as that is the only as that can be handled for
binary operators now.
(fold_binary <case POINTER_PLUS_EXPR>): Add folding of
POINTER_PLUS_EXPR.
<case PLUS_EXPR>: Add folding of PTR+INT into
PTR p+ INT.
Don't call try_move_mult_to_index.
<case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
(PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
Don't call try_move_mult_to_index.
(tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
(tree_expr_nonzero_p): Likewise.
(fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
of PLUS_EXPR for the complex expression folding.
* tree-chrec.c (chrec_fold_plus_poly_poly): If the
first chrec is a pointer type, then the second should
be sizetype and not the first's type.
For POINTER_PLUS_EXPR, use a different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
(chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
(chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
instead of PLUS_EXPR.
When either operand is zero, convert the other operand.
(chrec_apply): Use chrec_convert_rhs
on the argument x instead of chrec_convert.
(reset_evolution_in_loop): For pointer types, the new_evol
should be sizetype.
(convert_affine_scev): For POINTER_PLUS_EXPR, use a
different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
(chrec_convert_rhs): New function.
(chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
* tree-chrec.h (chrec_convert_rhs): New prototype.
(build_polynomial_chrec): For pointer types, the right hand
* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
POINTER_PLUS_EXPR instead of PLUS_EXPR's.
Remove subtraction case as it is always addition now.
Make sure the offset is converted to sizetype.
(fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
* tree-ssa-loop-ivopts.c (determine_base_object): Abort for
PLUS_EXPR in pointer type.
Handle POINTER_PLUS_EXPR.
(tree_to_aff_combination): Likewise.
(force_expr_to_var_cost): Likewise.
(force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
* c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
instead of PLUS_EXPR of pointer types.
* tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
as PLUS_EXPR.
(check_va_list_escapes): Likewise.
(check_all_va_list_escapes): Likewise.
* dwarf2out.c (loc_descriptor_from_tree_1):
Handle POINT_PLUS_EXPR as a PLUS_EXPR.
* expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
(string_constant): Likewise.
* tree-ssa-address.c (tree_mem_ref_addr): When adding
the offset to the base, use POINTER_PLUS_EXPR.
(add_to_parts): Convert the index to sizetype.
(create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
* matrix-reorg.c (collect_data_for_malloc_call): Stmt
will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
Offset only holds something for PLUS_EXPR.
(ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
a PLUS_EXPR.
(analyze_transpose): POINTER_PLUS_EXPR will only show up now
and not PLUS_EXPR.
(analyze_accesses_for_modify_stmt): Likewise.
Remove comment about the type being integral type as it is
wrong now.
(can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
PLUS_EXPR.
(transform_access_sites): POINTER_PLUS_EXPR will only show up now
and not PLUS_EXPR.
Correct the type which the artimentic is done in (is now
sizetype).
Reindent one loop.
* tree-data-ref.c (split_constant_offset): Handle
POINTER_PLUS_EXPR
* tree-affine.c (tree_to_aff_combination): Likewise.
* c-typeck.c (build_unary_op): For pointers create the increment
as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
for pointers.
* gimplify.c (gimplify_self_mod_expr): Create a
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
(gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
* tree.def (POINTER_PLUS_EXPR): New tree code.
* tree-predcom.c (ref_at_iteration): If we have a pointer
type do the multiplication in sizetype.
* tree-mudflap.c (mf_xform_derefs_1): Create a
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
* tree-ssa-forwprop.c
(forward_propagate_addr_into_variable_array_index):
Don't expect there to be a cast for the index as that
does not exist anymore.
(forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
instead of PLUS_EXPR.
Don't check for the first operand of the POINTER_PLUS_EXPR
was the index as it cannot be.
Call forward_propagate_addr_into_variable_array_index with
the SSA_NAME instead of the statement.
* varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
(compare_constant): Likewise.
(copy_constant): Likewise.
(compute_reloc_for_constant): Likewise.
(output_addressed_constants): Likewise.
(initializer_constant_valid_p): Likewise.
* tree-ssa.c (tree_ssa_useless_type_conversion_1):
Convert the MIN/MAX of the inner type to the outer
type before comparing them.
* tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
POINTER_PLUS_EXPR instead of PLUS_EXPR.
(issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
of PLUS_EXPR for pointers.
* tree-inline.c (estimate_num_insns_1): Handle
POINTER_PLUS_EXPR.
* tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
(bump_vector_ptr): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for the pointer increment statement.
(vect_update_ivs_after_vectorizer): For pointer types, create
POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
MULT_EXPR in sizetype.
(vect_gen_niters_for_prolog_loop): Add a cast when creating
byte_misalign.
* tree-object-size.c (plus_expr_object_size): Handle
POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
code which is trying to figure out which side is a pointer and
is the index.
(check_for_plus_in_loops_1): Likewise.
(check_for_plus_in_loops): Likewise.
* c-common.c (pointer_int_sum): Create a
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
* tree-ssa-structalias.c (handle_ptr_arith): Handle
only POINTER_PLUS_EXPR. Removing all the extra
code which is trying to figure out which side is a pointer and
is the index.
* tree-cfg.c (verify_expr): Add extra checking for pointers and
PLUS_EXPR and MINUS_EXPR.
Also add checking to make sure the operands of POINTER_PLUS_EXPR
are correct.
* config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
with make_tree, instead of a pointer type.
* config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
for pointers instead of PLUS_EXPR.
(s390_gimplify_va_arg): Likewise.
* config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
instead of PLUS_EXPR when doing addition on pointer
types. Use sizetype for the second operand.
(spu_gimplify_va_arg_expr): Likewise.
* config/sparc/sparc.c (sparc_gimplify_va_arg): Use
POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
a pointer. Don't create a BIT_AND_EXPR for pointer types.
* config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
for the pointer addition and also use size_int/sizetype
for the offset.
(ix86_gimplify_va_arg): Likewise.
Perform BIT_AND_EXPR on sizetype arguments.
* config/sh/sh.c (sh_va_start): Call make_tree with sizetype
and convert its result to a pointer type. Use POINTER_PLUS_EXPR
for the pointer additions and also use size_int for the offsets.
(sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
additions and also use size_int for the offsets. Perform
BIT_AND_EXPR on sizetype arguments.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Use
POINTER_PLUS_EXPR for pointers and create the
BIT_AND_EXPR in sizetype.
* config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointer addition.
(rs6000_va_start): Likewise.
Also use sizetype for the offset.
* config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
as PLUS_EXPR/MINUS_EXPR.
(hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
Don't use BIT_AND_EXPR on a pointer type, convert the
expression to sizetype first.
* config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
for pointers.
(mips_gimplify_va_arg_expr): Likewise.
Don't create BIT_AND_EXPR in a pointer type.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointer addition.
* trans-expr.c (gfc_trans_string_copy): Create
POINTER_PLUS_EXPR instead of a PLUS_EXPR
for pointer types.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* typeck.c (build_binary_op): For templates build the
expression in pieces to avoid the assert in build2_stat.
(get_member_function_from_ptrfunc):
Change over to using POINTER_PLUS_EXPR and convert
the second operand to sizetype.
* typeck2.c (build_m_component_ref): Likewise.
* init.c (expand_virtual_init): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
(build_new_1): Likewise.
(build_vec_delete_1): Likewise.
(build_vec_delete): Likewise.
* class.c (build_base_path): Likewise.
(build_base_path): Likewise.
(convert_to_base_statically): Likewise.
(fixed_type_or_null): Handle POINTER_PLUS_EXPR.
(get_vtbl_decl_for_binfo): Handle POINTER_PLUS_EXPR
instead of PLUS_EXPR.
(dfs_accumulate_vtbl_inits): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
* call.c (build_special_member_call): Likewise.
* rtti.c (build_headof): Likewise.
Use sizetype instead of ptrdiff_type_node.
(tinfo_base_init): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
* except.c (expand_start_catch_block): Do a
NEGATIVE and then a POINTER_PLUS_EXPR instead
of a MINUS_EXPR.
* cp-gimplify.c (cxx_omp_clause_apply_fn): Convert
PLUS_EXPR on pointer types over to use
POINTER_PLUS_EXPR and remove the conversion
to the pointer types.
* method.c (thunk_adjust): Use POINTER_PLUS_EXPR for
adding to a pointer type. Use size_int instead of
ssize_int. Convert the index to sizetype before
adding it to the pointer.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* trans.c (Attribute_to_gnu): When subtracting an
offset from a pointer, use POINTER_PLUS_EXPR with
NEGATE_EXPR instead of MINUS_EXPR.
(gnat_to_gnu): Likewise.
* utils.c (convert): When converting between
thin pointers, use POINTER_PLUS_EXPR and sizetype
for the offset.
* utils2.c (known_alignment): POINTER_PLUS_EXPR
have the same semantics as PLUS_EXPR for alignment.
(build_binary_op): Add support for the semantics of
POINTER_PLUS_EXPR's operands.
When adding an offset to a pointer, use POINTER_PLUS_EXPR.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* class.c (make_class_data): Build the index in sizetype.
Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
adding to a pointer type.
(build_symbol_entry): Likewise.
* expr.c (build_java_arrayaccess): Likewise.
(build_field_ref): Likewise.
(build_known_method_ref): Likewise.
(build_invokevirtual): Likewise.
* except.c (build_exception_object_ref): Do a
NEGATIVE and then a POINTER_PLUS_EXPR instead
of a MINUS_EXPR.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/32225
* gcc.c-torture/compile/
20070605-1.c: New test.
* gcc.c-torture/compile/
20070603-1.c: New testcase.
* gcc.c-torture/compile/
20070603-2.c: New testcase.
* gcc.c-torture/compile/
20070531-1.c: New test.
PR tree-opt/32167
* gcc.c-torture/compile/
20070531-2.c: New test.
PR tree-opt/32144
* gcc.c-torture/compile/
20070529-1.c: New test.
PR tree-opt/32145
* gcc.c-torture/compile/
20070529-2.c: New test.
PR tree-opt/32015
* gcc.c-torture/compile/
20070520-1.c: New test.
* g++.dg/ext/java-1.C: New test.
* gcc.dg/vect/vect-106.c: We are now able to vectorize two
loops instead of one. Remove the "can't determine dependence"
check.
* gcc.dg/tree-ssa/
20030815-1.c: Remove testcase which is no longer
needed as the cast is gone in the first place.
* gcc.dg/max-1.c: Change local variable a to be a global one.
* gcc.dg/tree-ssa/ssa-pre-8.c: Update testcase since we don't
have a cast which is PREd.
From-SVN: r125755
Eric Christopher [Sat, 16 Jun 2007 02:43:57 +0000 (02:43 +0000)]
config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
2007-06-15 Eric Christopher <echristo@apple.com>
* config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
(x86_64-*-darwin*): Ditto.
* config/i386/darwin.h (CRTEND_SPEC): New. Add support
for above.
From-SVN: r125754
GCC Administrator [Sat, 16 Jun 2007 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125751
Matthew Wilcox [Fri, 15 Jun 2007 17:33:01 +0000 (00:33 +0700)]
extend.texi: Document behavior of __attribute__((aligned)) on typedefs.
* doc/extend.texi: Document behavior of __attribute__((aligned))
on typedefs.
From-SVN: r125747
Mark Mitchell [Fri, 15 Jun 2007 17:31:53 +0000 (17:31 +0000)]
* rtlanal.c (note_stores): Improve documentation.
From-SVN: r125746
Mark Mitchell [Fri, 15 Jun 2007 16:58:29 +0000 (16:58 +0000)]
cp-tree.h (DECL_VAR_MARKED_P): Remove.
* cp-tree.h (DECL_VAR_MARKED_P): Remove.
(DECL_ANON_UNION_VAR_P): New macro.
* class.c (fixed_type_or_null): Tidy. Use a hash table, rather
than DECL_VAR_MARKED_P, to keep track of which variables we have
seen.
* decl.c (redeclaration_error_message): Complain about redeclaring
anonymous union members at namespace scope.
* decl2.c (build_anon_union_vars): Set DECL_ANON_UNION_VAR_P.
* g++.dg/lookup/anon6.C: New test.
From-SVN: r125745
Bernd Schmidt [Fri, 15 Jun 2007 11:54:51 +0000 (11:54 +0000)]
elf.h (ASM_GENERATE_INTERNAL_LABEL, [...]): Delete.
* config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
LOCAL_LABEL_PREFIX): Delete.
* config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
(bfin_internal_label): Delete.
From-SVN: r125740
Rainer Orth [Fri, 15 Jun 2007 10:26:16 +0000 (10:26 +0000)]
re PR libfortran/32345 (Unconditional snprintf use breaks all gfortran exec tests on Tru64 UNIX V4.0F)
PR libfortran/32345
* runtime/backtrace.c (show_backtrace): Only use snprintf if
available.
From-SVN: r125739
Arnaud Charlet [Fri, 15 Jun 2007 08:27:59 +0000 (10:27 +0200)]
Add new tests
From-SVN: r125738
Uros Bizjak [Fri, 15 Jun 2007 07:01:31 +0000 (09:01 +0200)]
libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3...
* libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
otherwise define to LIBGCC2_TF_CEXT.
* config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
(LIBGCC_TF_CEXT): Ditto.
(TF_SIZE): Ditto.
From-SVN: r125737
Seongbae Park [Fri, 15 Jun 2007 06:33:24 +0000 (06:33 +0000)]
re PR rtl-optimization/32339 (ICE in insert_save, at caller-save.c:726)
2007-06-14 Seongbae Park <seongbae.park@gmail.com>
PR rtl-optimization/32339
* df-scan.c (df_uses_record): Don't modify flags but just add to it for
df_ref_record.
From-SVN: r125736
Keith Seitz [Fri, 15 Jun 2007 03:53:52 +0000 (03:53 +0000)]
java-interp.h (_Jv_LocalVarTableEntry): Add union for bytecode_pc and direct-threaded pc.
* include/java-interp.h (_Jv_LocalVarTableEntry): Add union
for bytecode_pc and direct-threaded pc.
Add field descriptions inline.
* defineclass.cc (read_one_code_attribute): Change from
bytecode_start_pc to bytecode_pc.
Remove unused variable "len".
* interpret.cc (compile): Remap the variable table, too.
(get_local_var_table) [DIRECT_THREADED]: Use insn_index on the
start location to map from pc_t to code index.
From-SVN: r125734
Andrew Pinski [Fri, 15 Jun 2007 03:39:31 +0000 (03:39 +0000)]
tree-mudflap.c: Fix whitespace issues.
2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
* tree-mudflap.c: Fix whitespace issues.
From-SVN: r125733
Kazu Hirata [Fri, 15 Jun 2007 02:43:32 +0000 (02:43 +0000)]
* config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
From-SVN: r125731
GCC Administrator [Fri, 15 Jun 2007 00:16:52 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125729
Dirk Mueller [Thu, 14 Jun 2007 23:12:25 +0000 (23:12 +0000)]
re PR c++/31806 (miscompilation with -fschedule-insns2 -fno-threadsafe-statics)
2007-06-14 Dirk Mueller <dmueller@suse.de>
PR c++/31806
* g++.dg/opt/static6.C: New testcase.
From-SVN: r125726
Eric Christopher [Thu, 14 Jun 2007 21:43:45 +0000 (21:43 +0000)]
sse.md (movdi_to_sse): Rewrite body.
2007-06-14 Eric Christopher <echristo@apple.com>
* config/i386/sse.md (movdi_to_sse): Rewrite body.
(movv4sf): Use gcc_unreachable instead of abort.
From-SVN: r125723
Geoffrey Keating [Thu, 14 Jun 2007 21:04:10 +0000 (21:04 +0000)]
decl2.c (determine_visibility): Ensure that functions with hidden types as parameters are hidden.
* decl2.c (determine_visibility): Ensure that functions with
hidden types as parameters are hidden.
From-SVN: r125722
Geoffrey Keating [Thu, 14 Jun 2007 20:56:25 +0000 (20:56 +0000)]
re PR libgcj/31093 (Multicast PromiscuousTraffic)
PR 31093
* decl2.c (determine_visibility): Remove duplicate code for
handling type info.
From-SVN: r125721
Uros Bizjak [Thu, 14 Jun 2007 20:15:13 +0000 (22:15 +0200)]
re PR target/32268 (Wrong comparison results for __float128 operands)
PR target/32268
* config/i386/sfp-machine.c (CMPtype): New define.
(mach stubs): Use CMPtype instead of int as a return type.
testsuite/ChangeLog:
PR target/32268
* gcc.target/i386/pr32268.c: New test.
From-SVN: r125720
Uros Bizjak [Thu, 14 Jun 2007 19:45:11 +0000 (21:45 +0200)]
eqdf2.c, [...]: Update from glibc CVS.
* config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
config/soft-fp/soft-fp.h: Update from glibc CVS.
From-SVN: r125719
H.J. Lu [Thu, 14 Jun 2007 17:24:22 +0000 (17:24 +0000)]
fe-convert-1.c: Expect FE_OVERFLOW when converting from 10.
000000e96DD to _Decimal32...
2007-06-14 H.J. Lu <hongjiu.lu@intel.com>
* gcc.dg/dfp/fe-convert-1.c: Expect FE_OVERFLOW when converting
from 10.
000000e96DD to _Decimal32, from 10.000000e96DL to
_Decimal32 and from 10.00000000000000E384DL to _Decimal64.
* gcc.dg/dfp/fe-convert-2.c: Expect FE_INEXACT when converting
from 1.0e96 and -1.0e96 to _Decimal32. Enable testing for
converting from 1.0e-96 and 0.
00048828125 to _Decimal32 when
BID is used.
From-SVN: r125718
Bernd Schmidt [Thu, 14 Jun 2007 17:10:54 +0000 (17:10 +0000)]
configure.ac: Don't add target-libmudflap to noconfigdirs for bfin*-*-uclinux* targets.
* configure.ac: Don't add target-libmudflap to noconfigdirs for
bfin*-*-uclinux* targets.
* configure: Regenerate.
* gcc/config/bfin/uclinux.h (MFWRAP_SPEC): New.
From-SVN: r125717
Paolo Bonzini [Thu, 14 Jun 2007 14:40:58 +0000 (14:40 +0000)]
configure.ac: Use ACX_PROG_CC_ALMOST_PEDANTIC too.
2007-06-14 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Use ACX_PROG_CC_ALMOST_PEDANTIC too.
* configure: Regenerate.
From-SVN: r125716
Rask Ingemann Lambertsen [Thu, 14 Jun 2007 14:33:21 +0000 (16:33 +0200)]
re PR target/32341 (undefined reference to `df_set_regs_ever_live_p')
2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/32341
* config/v850/v850.c: Include dataflow header file.
(substitute_ep_register): Fix typo.
From-SVN: r125715
Ian Lance Taylor [Thu, 14 Jun 2007 13:56:46 +0000 (13:56 +0000)]
MAINTAINERS: Add myself as non-algorithmic global write maintainer.
* MAINTAINERS: Add myself as non-algorithmic global write
maintainer.
From-SVN: r125713
Paolo Bonzini [Thu, 14 Jun 2007 13:27:32 +0000 (13:27 +0000)]
configure.ac: Fix earlier checkin.
2007-06-14 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Fix earlier checkin.
* configure: Regenerated.
From-SVN: r125711
Diego Novillo [Thu, 14 Jun 2007 13:15:24 +0000 (09:15 -0400)]
MAINTAINERS: Add self as middle-end maintainer and non-algorithmic global write maintainer.
* MAINTAINERS: Add self as middle-end maintainer and
non-algorithmic global write maintainer.
From-SVN: r125710
Paul Thomas [Thu, 14 Jun 2007 13:04:05 +0000 (13:04 +0000)]
re PR fortran/32302 (Incorrect result with -O2)
2007-06-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32302
* trans-common.c (build_common_decl): If resizing of common
decl is needed, update the TREE_TYPE.
2007-06-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32302
* gfortran.dg/common_resize_1.f90: New test.
From-SVN: r125708
H.J. Lu [Thu, 14 Jun 2007 12:44:43 +0000 (05:44 -0700)]
configure.ac: Fix a typo in --enable-checking=.
2007-06-14 H.J. Lu <hongjiu.lu@intel.com>
* configure.ac: Fix a typo in --enable-checking=.
* configure: Regenerated.
From-SVN: r125705
Francois-Xavier Coudert [Thu, 14 Jun 2007 12:30:28 +0000 (12:30 +0000)]
MAINTAINERS: Change spelling from "fortran 95" to "Fortran".
* MAINTAINERS: Change spelling from "fortran 95" to "Fortran".
Move all Fortran maintainers except Paul Brook into the
Non-Autopoiesis section.
From-SVN: r125704
Dorit Nuzman [Thu, 14 Jun 2007 09:39:31 +0000 (09:39 +0000)]
re PR testsuite/32274 (FAIL: gcc.dg/vect/pr32224.c)
PR target/32274
* gcc.dg/vect/pr32224.c: Fix.
From-SVN: r125703
Arnaud Charlet [Thu, 14 Jun 2007 09:24:07 +0000 (11:24 +0200)]
Add new tests.
From-SVN: r125702
Paolo Bonzini [Thu, 14 Jun 2007 08:50:28 +0000 (08:50 +0000)]
Makefile.tpl (cleanstrap): Don't delete the toplevel Makefile.
2007-06-14 Paolo Bonzini <bonzini@gnu.org>
* Makefile.tpl (cleanstrap): Don't delete the toplevel Makefile.
(distclean-stage[+id+]): Possibly delete stage_last.
* Makefile.in: Regenerate.
From-SVN: r125701
Paolo Bonzini [Thu, 14 Jun 2007 08:10:41 +0000 (08:10 +0000)]
acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
gcc:
2007-06-14 Paolo Bonzini <bonzini@gnu.org>
* acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
* aclocal.m4: Regenerate.
* configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
ACX_PROG_CC_WARNINGS_ARE_ERRORS,
ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
* configure: Regenerate.
* Makefile.in (LOOSE_WARN): Subst loose_warn.
* Makefile.in (quickstrap): Build libgcc too.
libiberty:
2007-06-14 Paolo Bonzini <bonzini@gnu.org>
* aclocal.m4: Include config/warnings.m4.
* configure.ac: Use ACX_PROG_CC_WARNING_OPTS.
* configure: Regenerate.
config:
2007-06-14 Paolo Bonzini <bonzini@gnu.org>
* acx.m4 (ACX_CHECK_PROG_VER): Remove duplicate lines.
From-SVN: r125700
Paolo Bonzini [Thu, 14 Jun 2007 07:54:21 +0000 (07:54 +0000)]
svn missed the changelog for previous rev...
From-SVN: r125699
Paolo Bonzini [Thu, 14 Jun 2007 07:51:58 +0000 (07:51 +0000)]
configure.ac: Add --enable-checking=df.
2007-06-14 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Add --enable-checking=df. Explicitly mention that
the variables are initialized as for "release".
* df-core.c: Use it.
* configure: Regenerate.
* config.in: Regenerate.
From-SVN: r125698
Bob Wilson [Thu, 14 Jun 2007 04:49:42 +0000 (04:49 +0000)]
xtensa.c (xtensa_expand_nonlocal_goto): Use validate_replace_rtx instead of replace_rtx.
* config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
validate_replace_rtx instead of replace_rtx.
(xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
From-SVN: r125697
Danny Smith [Thu, 14 Jun 2007 02:38:37 +0000 (02:38 +0000)]
config.host (*-cygwin* |*-mingw* ): Add crtbegin.o, crtend.o to extra_parts.
ChangeLog/libgcc
2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
* config.host(*-cygwin* |*-mingw* ): Add crtbegin.o, crtend.o to
extra_parts. Add config/i386/t-cygming to tmake_file.
* config/i386/t-cygming: New file with rules for crtbegin.o, crtend.o.
ChangeLog/gcc
2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
(DWARF2_UNWIND_INFO): Override default if configured with
SJLJ EH disabled.
* config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
(ENDFILE_SPEC): Add crtend.o.
* config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
(ENDFILE_SPEC): Add crtend.o.
(TARGET_USE_JCR_SECTION): Define.
(MD_UNWIND_SUPPORT): Define for 32-bit target.
* config/i386/cygming-crtbegin.c: New file.
* config/i386/cygming-crtend.c: New file.
2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
* config/i386/w32-unwind.h: New file.
From-SVN: r125696
Eric Christopher [Thu, 14 Jun 2007 01:53:17 +0000 (01:53 +0000)]
darwin.h (PREFERRED_STACK_BOUNDARY): Don't let the user set a value below STACK_BOUNDARY.
2007-06-13 Eric Christopher <echristo@apple.com>
* config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
the user set a value below STACK_BOUNDARY.
From-SVN: r125695
Eric Christopher [Thu, 14 Jun 2007 01:24:28 +0000 (01:24 +0000)]
ssefn-1.c: Add -march=i386.
2007-06-13 Eric Christopher <echristo@apple.com>
* gcc.target/i386/ssefn-1.c: Add -march=i386.
From-SVN: r125694
GCC Administrator [Thu, 14 Jun 2007 00:17:05 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r125692
Thiemo Seufer [Wed, 13 Jun 2007 23:22:29 +0000 (23:22 +0000)]
linux.h, linux64.h (LIB_SPEC): Always imply -lpthread for -pthread.
* config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
imply -lpthread for -pthread.
From-SVN: r125688
Kazu Hirata [Wed, 13 Jun 2007 23:12:46 +0000 (23:12 +0000)]
tree-ssa-pre.c (mergephitemp): Remove.
* tree-ssa-pre.c (mergephitemp): Remove.
(init_pre): Don't use mergephitemp.
From-SVN: r125687
Kazu Hirata [Wed, 13 Jun 2007 22:57:14 +0000 (22:57 +0000)]
basic-block.h: Remove the prototype for free_basic_block_vars.
* basic-block.h: Remove the prototype for
free_basic_block_vars.
* cfglayout.h: Remove the prototype for
insn_locators_initialize.
* tree.h: Remove the prototype for emit_line_note.
From-SVN: r125686
Eric Christopher [Wed, 13 Jun 2007 22:06:15 +0000 (22:06 +0000)]
i386.c (override_options): If we've specified an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
2007-06-13 Eric Christopher <echristo@apple.com>
* config/i386/i386.c (override_options): If we've specified
an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
From-SVN: r125685
Tobias Burnus [Wed, 13 Jun 2007 20:12:40 +0000 (22:12 +0200)]
re PR fortran/32323 (Accepts invalid vector subscript actual argument for intent(out) dummy argument)
2007-06-13 Tobias Burnus <burnus@net-b.de>
PR fortran/32323
* interface.c (has_vector_section): New.
(compare_actual_formal): Check for array sections with vector subscript.
2007-06-13 Tobias Burnus <burnus@net-b.de>
PR fortran/32323
* gfortran.dg/actual_array_vect_1.f90: New.
From-SVN: r125684
Richard Earnshaw [Wed, 13 Jun 2007 19:31:58 +0000 (19:31 +0000)]
eh_arm.cc (__cxa_type_match): Handle foreign exceptions.
* libsupc++/eh_arm.cc (__cxa_type_match): Handle foreign
exceptions.
* libsubpc++/eh_personality.cc: Don't try to set up foreign or
forced unwind types here when using the ARM EABI unwinder.
From-SVN: r125683
Bob Wilson [Wed, 13 Jun 2007 18:27:50 +0000 (18:27 +0000)]
df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM is defined.
* df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
is defined.
From-SVN: r125682
Bernd Schmidt [Wed, 13 Jun 2007 17:41:07 +0000 (17:41 +0000)]
bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
* config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
* config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
(eh_store_handler): New pattern.
(eh_return): Emit it instead of a plain move.
From-SVN: r125681
Uros Bizjak [Wed, 13 Jun 2007 15:48:51 +0000 (17:48 +0200)]
i386.c (ix86_init_mmx_sse_builtins): Define usign def_builtin.
* config/i386/i386.c (ix86_init_mmx_sse_builtins)
[__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
[__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
def_builtin_const.
From-SVN: r125680
Bernd Schmidt [Wed, 13 Jun 2007 14:21:31 +0000 (14:21 +0000)]
bfin.c (gen_one_bundle): Delete unused local variables.
* config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
(find_next_insn_start, find_load): New functions.
(bfin_reorg): Use them to deal with the fact that parallel insns are
no longer represented as a SEQUENCE.
From-SVN: r125677
Eric Botcazou [Wed, 13 Jun 2007 13:58:31 +0000 (15:58 +0200)]
sparc.c (sparc_override_options): Initialize fpu mask correctly.
* config/sparc/sparc.c (sparc_override_options): Initialize
fpu mask correctly.
From-SVN: r125674
Dave Korn [Wed, 13 Jun 2007 10:21:50 +0000 (10:21 +0000)]
i386.c (ix86_eax_live_at_start_p): Use df_get_live_out.
2007-06-13 Dave Korn <dave.korn@artimi.com>
* config/i386/i386.c (ix86_eax_live_at_start_p): Use
df_get_live_out.
From-SVN: r125673
Paolo Carlini [Wed, 13 Jun 2007 07:31:39 +0000 (07:31 +0000)]
cmath: Tweak includes.
2007-06-13 Paolo Carlini <pcarlini@suse.de>
* include/c_global/cmath: Tweak includes.
* include/std/memory: Likewise.
* include/std/complex: Likewise.
* include/tr1/memory: Likewise.
* include/tr1/complex: Likewise.
* include/tr1/cmath: Likewise; do not wrap special functions
in #ifndef __GXX_EXPERIMENTAL_CXX0X__.
From-SVN: r125671
Kazu Hirata [Wed, 13 Jun 2007 02:27:04 +0000 (02:27 +0000)]
auto-inc-dec.c, [...]: Fix comment typos.
* auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
config/sh/divcost-analysis, dbgcnt.def, df-core.c,
df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
tree-vect-transform.c: Fix comment typos. Follow spelling
conventions.
From-SVN: r125666
GCC Administrator [Wed, 13 Jun 2007 00:17:01 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r125664
Geoffrey Keating [Tue, 12 Jun 2007 22:49:16 +0000 (22:49 +0000)]
weak1.C: Suppress on Darwin.
* g++.dg/warn/weak1.C: Suppress on Darwin.
* g++.dg/other/unused1.C: Accept tabs or spaces in assembly.
From-SVN: r125659
Seongbae Park [Tue, 12 Jun 2007 21:28:16 +0000 (21:28 +0000)]
df-scan.c (df_get_exit-block_use_set): Always add the stack pointer to the exit block use set.
2007-06-12 Seongbae Park <seongbae.park@gmail.com>
* df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
to the exit block use set.
* gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
* config/sparc/sparc.c (sparc_check_64): Check df != NULL.
From-SVN: r125658
Seongbae Park [Tue, 12 Jun 2007 20:47:16 +0000 (20:47 +0000)]
opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
2007-06-12 Seongbae Park <seongbae.park@gmail.com>
* opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
* dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
to indicate an error.
(dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
(dbg_cnt_process_opt): Print an error on a bad argument.
* dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
* common.opt (-fdbg-cnt-list): New.
* doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
From-SVN: r125657
Eric Botcazou [Tue, 12 Jun 2007 20:25:23 +0000 (20:25 +0000)]
tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything flag on ref-all pointers.
* tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
flag on ref-all pointers.
From-SVN: r125656
Andrew Pinski [Tue, 12 Jun 2007 19:15:50 +0000 (19:15 +0000)]
re PR middle-end/31579 (ICE when compiling attached code)
2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/31579
* expr.c (expand_expr_addr_expr_1): Call expand_expr
for the offset with the modifier as EXPAND_INITIALIZER
if the modifier is EXPAND_INITIALIZER.
(expand_expr_real_1 <case INTEGER_CST>): Don't force to
a register if we had an overflow.
2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/31579
* g++.dg/torture/pr31579.C: New testcase.
From-SVN: r125655
Kaveh R. Ghazi [Tue, 12 Jun 2007 18:36:05 +0000 (18:36 +0000)]
real.c (real_isfinite): New.
* real.c (real_isfinite): New.
(real_sqrt): Use it.
* real.h (real_isfinite): New.
* builtins.c: Use it.
From-SVN: r125654
Ian Lance Taylor [Tue, 12 Jun 2007 17:47:37 +0000 (17:47 +0000)]
re PR libstdc++/29286 (placement new does not change the dynamic type as it should)
./: PR libstdc++/29286
* tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
* tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
(CHANGE_DYNAMIC_TYPE_LOCATION): Define.
(DECL_NO_TBAA_P): Define.
(struct tree_decl_common): Add no_tbaa_flag field.
* tree-ssa-structalias.c (struct variable_info): Add
no_tbaa_pruning field.
(new_var_info): Initialize no_tbaa_pruning field.
(unify_nodes): Copy no_tbaa_pruning field.
(find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
(dump_solution_for_var): Print no_tbaa_pruning flag.
(set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
callers.
(compute_tbaa_pruning): New static function.
(compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
Call compute_tbaa_pruning.
* tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
* gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
* gimple-low.c (lower_stmt): Likewise.
* tree-gimple.c (is_gimple_stmt): Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
* tree-inline.c (estimate_num_insns_1): Likewise.
(copy_result_decl_to_var): Likewise.
* expr.c (expand_expr_real_1): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
* omp-low.c (omp_copy_decl_2): Likewise.
* print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
* doc/c-tree.texi (Expression trees): Document
CHANGE_DYNAMIC_TYPE_EXPR.
cp/:
PR libstdc++/29286
* init.c (avoid_placement_new_aliasing): New static function.
(build_new_1): Call it.
testsuite/:
PR libstdc++/29286
* g++.dg/init/new16.C: New test.
* g++.dg/init/new17.C: New test.
* g++.dg/init/new18.C: New test.
* g++.dg/init/new19.C: New test.
Co-Authored-By: Daniel Berlin <dberlin@dberlin.org>
From-SVN: r125653
Kaveh R. Ghazi [Tue, 12 Jun 2007 16:28:01 +0000 (16:28 +0000)]
fold-const.c (fold_binary): Guard (X-X) -> 0 transformation with !HONOR_NANS and !HONOR_INFINITIES.
* fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
with !HONOR_NANS and !HONOR_INFINITIES.
* simplify-rtx.c (simplify_binary_operation_1): Likewise.
From-SVN: r125652
Seongbae Park [Tue, 12 Jun 2007 15:56:10 +0000 (15:56 +0000)]
MAINTAINERS (Various Maintainer): Fix typo.
2007-06-12 Seongbae Park <seongbae.park@gmail.com>
* MAINTAINERS (Various Maintainer): Fix typo.
From-SVN: r125651
Dirk Mueller [Tue, 12 Jun 2007 15:44:55 +0000 (15:44 +0000)]
reorder changelog entries
From-SVN: r125650
Tristan Gingold [Tue, 12 Jun 2007 15:39:15 +0000 (15:39 +0000)]
gcov.c: Comments updated.
* gcov.c: Comments updated.
(source_info): Add file_time field.
(source_index): New variable.
(mutiple_files): New variable.
(generate_results): New function extracted from process_file.
(process_file): Save and restore chain of functions, generate
results and free structures only if not merging results.
(release_structures): File names are now freed in create_file_names
(create_file_names): Free previous file names.
(find_source): File date is now read here and modifications in
source files is checked here.
(read_graph_file): Only reverse order of functions for the current
object file.
(make_gcov_file_name): Do not generate long names if input_name is
NULL.
(output_lines): If merging results do not display graph, data and
runs informations.
Checking source file modification is done in find_source.
* doc/gcov.texi: Append an s to sourcefile.
From-SVN: r125649
Bernd Schmidt [Tue, 12 Jun 2007 14:35:13 +0000 (14:35 +0000)]
bfin.md (UNSPEC_NOP): New constant.
* config/bfin/bfin.md (UNSPEC_NOP): New constant.
(forced_nop): New pattern.
* config/bfin/bfin.c: Include "df.h".
(add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
(bfin_discover_loop): Use df_get_live_in instead of
global_live_at_start.
(bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
df_analyze when done.
(gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
the insns. Use QImode for the final insn in a bundle. Call
df_insn_rescan on generated NOPs; use gen_forced_nop instead of
gen_nop.
(reorder_var_tracking_notes): New function.
(bfin_reorg): Pass no argument to split_all_insns. Don't call
update_life_info. Call df_analyze after scheduling and bundle
generation. Call reorder_var_tracking_notes if generating these notes.
Call df_finish_pass at the end.
From-SVN: r125648
Dirk Mueller [Tue, 12 Jun 2007 14:28:34 +0000 (14:28 +0000)]
trans-stmt.c (gfc_trans_call): fix gcc_assert to a comparison, not an assignment.
2007-06-07 Dirk Mueller <dmueller@suse.de>
* trans-stmt.c (gfc_trans_call): fix gcc_assert to
a comparison, not an assignment.
* optabls.c (debug_optab_libfuncs): fix gcc_assert to
a comparison, not an assignment.
From-SVN: r125647
Olivier Hainque [Tue, 12 Jun 2007 13:32:27 +0000 (13:32 +0000)]
tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
* tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
Request walking the subtrees only, leaving the current is_lhs/val_only
untouched.
(convert_non_local_reference): Likewise.
testsuite/
* gnat.dg/lhs_view_convert.adb: New test.
From-SVN: r125646
Nathan Sidwell [Tue, 12 Jun 2007 12:28:45 +0000 (12:28 +0000)]
* config/m68k/m68k-devices.def (52221, 52223, 5253): New.
From-SVN: r125645
Richard Guenther [Tue, 12 Jun 2007 12:06:19 +0000 (12:06 +0000)]
re PR tree-optimization/15353 ([tree-ssa] Merge two "if"s if one subsumes the other.)
2007-06-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/15353
PR tree-optimization/31657
* passes.c (init_optimization_passes): Add pass_tree_ifcombine.
* timevar.def: Add TV_TREE_IFCOMBINE.
* tree-pass.h (pass_tree_ifcombine): Declare.
* tree-ssa-ifcombine.c: New file.
* tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
* tree-flow.h (blocks_in_phiopt_order): Declare.
* Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
(tree-ssa-ifcombine.o): New dependencies.
* gcc.c-torture/execute/
20070424-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-ifcombine-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-4.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-5.c: Likewise.
From-SVN: r125644
Uros Bizjak [Tue, 12 Jun 2007 10:31:04 +0000 (12:31 +0200)]
re PR rtl-optimization/32293 (internal compiler error: in do_SUBST, at combine.c:502)
PR rtl-optimization/32293
* combine.c (simplify_if_then_else): Truncate return from
nonzero_bits() to correct mode.
testsuite/ChangeLog:
PR rtl-optimization/32293
* gcc.dg/pr32293.c: New test.
From-SVN: r125643
Uros Bizjak [Tue, 12 Jun 2007 07:19:36 +0000 (09:19 +0200)]
fold-const (fold_binary): Also optimize a/cbrt(b/c) into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
* fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
testuite/ChangeLog:
* gcc.dg/builtins-11.c: Also check folding of a/cbrt(b/c).
From-SVN: r125641
Paul Thomas [Tue, 12 Jun 2007 06:54:42 +0000 (06:54 +0000)]
trans-common.c (create_common): Initialize 'field_init'.
2007-06-12 Paul Thomas <pault@gcc.gnu.org>
* trans-common.c (create_common): Initialize 'field_init'.
From-SVN: r125640
Eric Botcazou [Tue, 12 Jun 2007 05:57:40 +0000 (05:57 +0000)]
Fix a few nits.
From-SVN: r125638
Diego Novillo [Tue, 12 Jun 2007 02:30:36 +0000 (22:30 -0400)]
Makefile.in (reload1.o-warn): Remove.
* Makefile.in (reload1.o-warn): Remove.
From-SVN: r125636
Seongbae Park [Tue, 12 Jun 2007 01:39:25 +0000 (01:39 +0000)]
combine.c (subst): Fix typo.
2007-06-11 Seongbae Park <seongbae.park@gmail.com>
* combine.c (subst): Fix typo.
From-SVN: r125635
Seongbae Park [Tue, 12 Jun 2007 01:11:03 +0000 (01:11 +0000)]
combine.c (subst): Use reg_overlap_mentioned_p instead of comparing register numbers directly.
2007-06-11 Seongbae Park <seongbae.park@gmail.com>
* combine.c (subst): Use reg_overlap_mentioned_p
instead of comparing register numbers directly.
From-SVN: r125634
GCC Administrator [Tue, 12 Jun 2007 00:17:06 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r125631
Paul Thomas [Mon, 11 Jun 2007 22:39:21 +0000 (22:39 +0000)]
re PR fortran/29786 (Initialization of overlapping variables: Not implemented)
2007-06-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29786
PR fortran/30875
* trans-common.c (get_init_field): New function.
(create_common): Call get_init_field for overlapping
initializers in equivalence blocks.
* resolve.c (resolve_equivalence_derived, resolve_equivalence):
Remove constraints on initializers in equivalence blocks.
* target-memory.c (expr_to_char, gfc_merge_initializers):
New functions.
(encode_derived): Add the bit offset to the byte offset to get
the total offset to the field.
* target-memory.h : Add prototype for gfc_merge_initializers.
2007-06-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29786
* gfortran.dg/equiv_7.f90: New test.
* gfortran.dg/equiv_constraint_7.f90: Change error message.
PR fortran/30875
* gfortran.dg/equiv_constraint_5.f90: Correct code and error.
From-SVN: r125628
Kenneth Zadeck [Mon, 11 Jun 2007 22:03:01 +0000 (22:03 +0000)]
reload1.c (mark_home_live_1): Use the mode parameter.
2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
* reload1.c (mark_home_live_1): Use the mode parameter.
From-SVN: r125627
Andreas Tobler [Mon, 11 Jun 2007 19:07:34 +0000 (19:07 +0000)]
setjmp-3.c: Rename raise to raise0.
2007-06-11 Andreas Tobler <a.tobler@schweiz.org>
* gcc.dg/setjmp-3.c: Rename raise to raise0.
* gcc.dg/setjmp-4.c: Likewise.
* gcc.target/i386/980211-1.c: Rename __signbitl to __signbitl0.
From-SVN: r125626
Kenneth Zadeck [Mon, 11 Jun 2007 18:22:49 +0000 (18:22 +0000)]
df-scan.c (df_insn_delete, [...]): Fixed spelling of word "deferred".
2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
word "deferred".
* df-core.c: Ditto.
From-SVN: r125625
Daniel Berlin [Mon, 11 Jun 2007 18:02:15 +0000 (18:02 +0000)]
Merge dataflow branch into mainline
From-SVN: r125624
Uros Bizjak [Mon, 11 Jun 2007 16:06:19 +0000 (18:06 +0200)]
i386.md ("*movtf_internal): Penalize moves to and from integer registers.
* config/i386/i386.md ("*movtf_internal): Penalize moves to and
from integer registers.
(FP mode splitters): Handle TFmode.
From-SVN: r125623
Arnaud Charlet [Mon, 11 Jun 2007 16:04:46 +0000 (18:04 +0200)]
Add new tests
From-SVN: r125622
Rafael Espindola [Mon, 11 Jun 2007 15:40:55 +0000 (15:40 +0000)]
really remove signed(_or_unsigned)?_type langhooks
From-SVN: r125621
Eric Botcazou [Mon, 11 Jun 2007 15:40:52 +0000 (15:40 +0000)]
tree-ssa-structalias.c (find_what_p_points_to): Return false for ref-all pointers that point-to anything.
* tree-ssa-structalias.c (find_what_p_points_to): Return false
for ref-all pointers that point-to anything.
From-SVN: r125620
Joseph Myers [Mon, 11 Jun 2007 14:55:06 +0000 (15:55 +0100)]
arm.c (arm_output_dwarf_dtprel, [...]): New.
* config/arm/arm.c (arm_output_dwarf_dtprel,
TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
From-SVN: r125619
Paolo Bonzini [Mon, 11 Jun 2007 13:33:29 +0000 (13:33 +0000)]
MAINTAINERS (Various Maintainer): Add myself as dataflow maintainer.
2007-06-11 Paolo Bonzini <bonzini@gnu.org>
* MAINTAINERS (Various Maintainer): Add myself as
dataflow maintainer.
From-SVN: r125618