* tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
to unsigned.
(VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
(VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
(SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
(SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
(SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
(realloc_vdef, realloc_vuse): Change second parameter to
unsigned.
(ssa_operand_iterator_d): Change vuse_index and mayuse_index
fields to unsigned.
* tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
unsigned. Change x and lim locals to unsigned.
(realloc_vdef, realloc_vuse): Change num_elem parameter to
unsigned.
(finalize_ssa_vuse_ops): Change old_i local to unsigned.
(copy_virtual_operands): Change i and n locals to unsigned.
From-SVN: r120994
* tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
* tree-ssa-structalias.c (compute_points_to_sets): Do call
init_alias_heapvars.
(init_alias_heapvars): Initialize only when not already initialized.
(delete_alias_heapvars): Set heapvar_for_stmt to NULL.
From-SVN: r120983
* common.opt (fsigned-zeros): New command line option.
* flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
of flag_unsafe_math_optimizations.
* opts.c (set_fast_math_flags): The -ffast-math command line option
implies -fno-signed-zeros.
(fast_math_flags_set_p): Likewise.
* doc/invoke.texi: Document new -fno-signed-zeros option, and update
the documentation of -ffast-math appropriately. Wrap long lines.
* gcc.dg/pr30172-1.c: Specify the -fno-signed-zeros command line
option instead of -funsafe-math-optimizations.
From-SVN: r120978
2007-01-19 Andreas Tobler <a.tobler@schweiz.org>
* os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently
added defines to include/private/gc_priv.h
* darwin_stop_world.c: Removed the above defines.
(catch_exception_raise): Added THREAD_FLD in exc_state for POWERPC too.
* include/private/gc_priv.h: Moved definitions from darwin_stop_world.c
and os_dep.c to here. Fixed THREAD definition fixes for ppc64.
From-SVN: r120977
Patch by Tomas Bily <tbily@suse.cz>
* cgraphunit.c (cgraph_finalize_function): Updating of pid
* tree-profile.c:
(tree_init_ic_make_global_vars): New function
(tree_init_edge_profiler): call of tree_init_ic_make_global_vars
(tree_gen_ic_profiler): New function
(tree_gen_ic_func_profiler): New function
(tree_profiling): Added calling of tree_gen_ic_func_profiler
(tree_profile_hooks): Added hook for indirec/virtual calls
* value-prof.c (tree_find_values_to_profile): New case for
indirect calls
(tree_values_to_profile): Call for determining indirect/virtual
counters
(tree_indirect_call_to_profile): New function
(tree_ic_transform): New function
(tree_ic): New function
(find_func_by_pid): New function
(init_pid_map): New function
(tree_value_profile_transformations): Added check for
indirect/virtual call transformation
* value-prof.h (enum hist_type): New counter type for
indirect/virtual calls
(profile_hooks): Added new hook for profiling indirect/virtual
calls
* profile.c (instrument_values): New case for indirect/virtual
call added
* gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
(GCOV_COUNTER_V_INDIR): New counter type
(GCOV_COUNTER_NAMES): New name of counter "indirect" added
(GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
call added
* cgraph.c: Definition of cgraph_max_pid
(cgraph_create_node): Default init of pid attribute
* cgraph.h: Declaration of cgraph_max_pid
(struct cgraph_node): Added pid attribute
* libgcov.c (__gcov_indirect_call_profiler): New function
(__gcov_one_value_profiler_body): New function
(__gcov_one_value_profiler): Body was moved to
__gcov_one_value_profiler_body and calls it
gcc.dg/tree-prof/indir-call-prof.c: New.
g++.dg/dg.exp: Add tree-prof subdirectory.
g++.dg/tree-prof/indir-call-prof.C: New.
g++.dg/tree-prof/tree-prof.exp: New.
From-SVN: r120975
* ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of 'early' argument
take inlining mode argument specifying whether to inline for size/speeed or all
functions; add support for flattening; improve dumpting.
(cgraph_early_inlining): Update call of decide_inlining_incrementally.
From-SVN: r120970
2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/17947
* toplev.c (warn_deprecated_use): Use %qD instead of %qs to
print the name of the declared identifier.
testsuite/
* g++.dg/warn/deprecated.C: Update warning output.
* g++.dg/warn/deprecated-2.C: Likewise.
* g++.dg/warn/deprecated-3.C: New.
From-SVN: r120969
2007-01-19 Dirk Mueller <dmueller@suse.de>
* config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
duplicate evaluation.
From-SVN: r120967
* config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
Macroize expander using X87MODEF12 mode macro. Extend operand 1
to XFMode, use acosxf2 and truncate result to requested mode.
Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
(asin<mode>2): Similarly, with asin expanders.
(*fscalexf4_i387): Rename from *fscalexf4.
(expNcorexf3): New expander.
(expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
(exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
patterns for SSE math.
(exp10<mode>2): Similarly, with exp10 expanders.
(exp2<mode>2): Similarly, with exp2 expanders.
(expm1<mode>2): Similarly, with expm1 expanders.
(ldexp<mode>3): Similarly, with ldexp expanders.
(log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
Use gen_truncxf<mode>2_i387_noop to truncate result.
From-SVN: r120966
gcc/
* config/m68k/m68k.c (notice_update_cc): If an SFmode move is
implemented using move.l, do not use its cc result for floating-point
comparisons.
From-SVN: r120962
gcc/
* config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
and return a bool.
(output_move_const_into_data_reg, output_move_simode_const): Delete.
* config/m68k/m68k.c (const_method, const_int_cost): Take a
HOST_WIDE_INT instead of an rtx.
(m68k_rtx_costs): Update call accordingly.
(output_move_const_into_data_reg): Likewise. Fix formatting.
(valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
Return a bool.
(output_move_simode_const): Update calls after above changes.
Rework to use automatic variables and predicates like MEM_P.
* config/m68k/m68k.md (pushexthisi_const): Update call to
valid_mov3q_const.
From-SVN: r120957
2007-01-19 Richard Guenther <rguenther@suse.de>
* builtins.c (expand_builtin_cexpi): Fall back to expanding
via cexp in case sincos is not available.
From-SVN: r120953
* config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
New insn patterns.
(atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
(atan2xf3): Directly generate RTL pattern.
(atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
disable patterns for SSE math.
(atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
disable patterns for SSE math.
From-SVN: r120950
PR libfortran/26893
* acinclude.m4 (LIBGFOR_WORKING_GFORTRAN): New check.
* configure.ac: Add call to LIBGFOR_WORKING_GFORTRAN.
* configure: Regenerate.
* config.h.in: Regenerate because it was forgottent in the last
commit.
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r120949
2007-01-18 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c: Update comments.
(ptabitmap_obstack): Removed.
(pta_obstack): New.
(oldpta_obstack): Ditto.
(stats): Add a few members.
(struct variable_info): Remove node, complex, address_taken, and
indirect_target members. Add oldsolution member.
(new_var_info): Do not initialize removed members.
(constraint_expr_type): Remove INCLUDES.
(constraint_graph): Add size, implicit_preds, rep,
indirect_cycles, eq_rep, label, direct_nodes, and complex members.
(FIRST_REF_NODE): New macro.
(LAST_REF_NODE): Ditto.
(FIRST_ADDR_NODE): Ditto.
(find): New function.
(unite): Ditto.
(dump_constraint): Do not handle INCLUDES.
(insert_into_complex): Do not insert duplicate constraints.
(condense_varmap_nodes): Renamed and rewritten into ...
(merge_node_constraints): This. Also fix bug in handling of
offseted copy constraints.
(clear_edges_for_node): No longer need to deal with preds at all,
or removing associated preds/succs.
(merge_graph_nodes): Deal with indirect_cycles.
Don't deal with predecessors.
(add_implicit_graph_edge): New function.
(add_pred_graph_edge): Ditto.
(add_graph_edge): Don't deal with predecessors.
(build_constraint_graph): Removed.
(build_pred_graph): New function.
(build_succ_graph): Ditto.
(struct scc_info): Removed in_component. Added roots, dfs, and
node_mapping. Remove visited_index, unification_queue.
(scc_visit): Deal with union-find we do now.
Deal with cycles with REF nodes.
(collapse_nodes): Renamed and rewritten to ...
(unify_nodes): This.
(process_unification_queue): Removed.
(topo_visit): Cleanup
(do_da_constraint): Use find.
(do_sd_constraint): Ditto.
(do_ds_constraint): Ditto.
(do_complex_constraint): Ditto.
(init_scc_info): Update for removed and added members.
(find_and_collapse_graph_cycles): Renamed and rewritten into ...
(find_indirect_cycles): This.
(equivalence_class): New variable.
(label_visit): New function.
(perform_variable_substitution): Rewritten.
(free_var_substitution_info): New function.
(find_equivalent_node): Ditto.
(move_complex_constraints): Ditto.
(eliminate_indirect_cycles): Ditto.
(solve_graph): Only propagate changed bits.
Use indirect cycle elimination.
Use find.
(tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
(tree_id_eq): Renamed to ...
(tree_vi_eq): This. Update for member change
(insert_id_for_tree): Renamed and rewritten to ...
(insert_vi_for_tree): This.
(lookup_id_for_tree): Renamed and rewritten to ...
(lookup_vi_for_tree): This.
(get_id_for_tree): Renamed and rewritten to ...
(get_vi_for_tree): Ditto.
(get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
(process_constraint): Don't handle INCLUDES.
Remove special ADDRESSOF case.
(find_func_aliases): Rewrite to use vi functions instead of id
ones.
(create_function_info_for): Ditto.
(create_variable_info_for): Ditto.
(intra_create_variable_infos): Ditto.
(merge_smts_into): Ditto.
(find_what_p_points_to): Ditto.
(init_base_vars): Ditto.
(init_alias_vars): Ditto.
(remove_preds_and_fake_succs): New function.
(dump_sa_points_to_info): Dump new stats.
(dump_solution_for_var): Use find.
(set_used_smts): Fix formatting.
(compute_points_to_sets): Updated for new functions.
(ipa_pta_execute): Ditto.
From-SVN: r120931
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
parallels.
* calls.c (expand_call): If the return value is a PARALLEL,
extract its first member.
* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
use FUNCTION_EXTRA_EPILOGUE.
(m68k_function_value): Return a PARALLEL if the return value
is of a pointer type.
* config/m68k/netbsd-elf.h (current_function_returns_pointer)
(FUNCTION_EXTRA_EPILOGUE): Remove.
* config/m68k/m68k.md (D0_REG): New constant.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r120929
gcc/
* config/m68k/m68k.c (m68k_use_return_insn): Update comments
before function. Extend register save check to include all
registers, not just integer ones.
From-SVN: r120927