Zdenek Dvorak [Sun, 5 Jun 2005 18:07:43 +0000 (20:07 +0200)]
re PR middle-end/21846 (segfault in fold_binary compiling vpr with -O2 -funroll-loops)
PR tree-optimization/21846
* tree-cfg.c (replace_uses_by): Update information stored at loops.
* tree-flow.h (substitute_in_loop_info): Declare.
* tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
Ensure that chrec_dont_know and chrec_known have a type.
* tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
From-SVN: r100631
Tobias Schlüter [Sun, 5 Jun 2005 18:03:47 +0000 (20:03 +0200)]
re PR fortran/21912 (Wrong implied do-loop)
fortran/
PR fortran/21912
* trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
Generate correct exit condition in case of negative steps in
implied-do loops.
testsuite/
PR fortran/21912
* gfortran.dg/array_constructor_4.f90: New test.
From-SVN: r100630
Mark Mitchell [Sun, 5 Jun 2005 16:33:43 +0000 (16:33 +0000)]
re PR c++/21619 (__builtin_constant_p(&"Hello"[0])?1:-1 not compile-time constant)
PR c++/21619
* cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
* parser.c (cp_parser_postfix_expression): Allow non-constant
expressions as arguments to __builtin_constant_p.
* tree.c (builtin_valid_in_constant_expr_p): Use
DECL_IS_BUILTIN_CONSTANT_P.
PR c++/21619
* g++.dg/ext/builtin9.C: New test.
From-SVN: r100626
Dale Johannesen [Sun, 5 Jun 2005 16:20:14 +0000 (16:20 +0000)]
removing
From-SVN: r100625
Dale Johannesen [Sun, 5 Jun 2005 16:19:58 +0000 (16:19 +0000)]
Removing
From-SVN: r100624
Dale Johannesen [Sun, 5 Jun 2005 16:18:12 +0000 (16:18 +0000)]
20050603-1.c: Move to gcc.dg.
2005-06-05 Dale Johannesen <dalej@apple.com>
* gcc.c-torture/execute/
20050603-1.c: Move to gcc.dg.
* gcc.c-torture/execute/
20050603-2.c: Ditto.
From-SVN: r100623
Tobias Schlüter [Sun, 5 Jun 2005 13:13:09 +0000 (15:13 +0200)]
invoke.texi: Fix description of flags required for compatibility with g77.
* invoke.texi: Fix description of flags required for compatibility
with g77.
From-SVN: r100621
Steven Bosscher [Sun, 5 Jun 2005 10:58:34 +0000 (10:58 +0000)]
i386.c (x86_use_loop): Remove.
* config/i386/i386.c (x86_use_loop): Remove.
* config/i386/i386.h (x86_use_loop): Remove extern decl.
(TARGET_USE_LOOP): Remove.
* config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
Also remove related define_splits.
From-SVN: r100618
Dorit Nuzman [Sun, 5 Jun 2005 09:54:20 +0000 (09:54 +0000)]
tree-flow.h (stmt_ann_d): Move aux to ...
* tree-flow.h (stmt_ann_d): Move aux to ...
(tree_ann_common_d): ... here.
* tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
move_computations_stmt, schedule_sm): Update references to
aux.
* tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
call to set_stmt_info.
(vect_transform_loop): Likewise.
* tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
Likewise.
* tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
bool.
(vect_mark_relevant): Takes two additional arguments - live_p and
relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
(vect_stmt_relevant_p): Differentiate between a live stmt and a
relevant stmt. Return two values = live_p and relevant_p.
(vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
vect_stmt_relevant_p with additional arguments. Phis are no longer
put into the worklist (analyzed seperately in analyze_scalar_cycles).
(vect_determine_vectorization_factor): Also check for LIVE_P, because a
stmt that is marked as irrelevant and live, cause it's only used out
side the loop, may need to be vectorized (e.g. reduction).
(vect_analyze_operations): Examine phis. Call
vectorizable_live_operation for for LIVE_P stmts. Check if
need_to_vectorize.
(vect_analyze_scalar_cycles): Update documentation. Don't fail
vectorization - just classify the scalar cycles created by the loop
phis. Call vect_is_simple_reduction.
(vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
call to set_stmt_info.
(vect_get_vec_def_for_operand): Code reorganized - the code that
classifies the type of use was factored out to vect_is_simple_use.
(vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
additional arguments.
(vectorizable_assignment): Likewise. Also make sure the stmt is relevant
and computes a loop_vec_def.
(vectorizable_operation, vectorizable_load, vectorizable_condition):
Likewise.
(vectorizable_live_operation): New.
(vect_transform_stmt): Handle LIVE_P stmts.
* tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
(new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
(vect_is_simple_use): Determine the type of the def and return it
in a new function argument. Consider vect_reduction_def and
vect_induction_def, but for now these are not supported.
(vect_is_simple_reduction): New. Empty for now.
* tree-vectorizer.h (vect_def_type): New enum type.
(_stmt_vec_info): Added new fields - live and _stmt_vec_info.
(STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
(vect_is_simple_use): New arguments added to function declaration.
(vect_is_simple_reduction): New function declaration.
(vectorizable_live_operation): New function declaration.
* tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
(vect_can_advance_ivs_p): Likewise.
* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
From-SVN: r100617
Eric Christopher [Sun, 5 Jun 2005 08:12:04 +0000 (08:12 +0000)]
mips.c (mips_rtx_costs): Remove unused variable.
2005-06-05 Eric Christopher <echristo@redhat.com>
* config/mips/mips.c (mips_rtx_costs): Remove unused variable.
From-SVN: r100613
Hans-Peter Nilsson [Sun, 5 Jun 2005 07:54:50 +0000 (07:54 +0000)]
re PR target/21914 (mmix-knuth-mmixware testsuite failure: compile/
20030703-1.c)
PR target/21914
* config/mmix/mmix.md ("*movdicc_real_foldable")
("*movdfcc_real_foldable", "*bCC_foldable")
("*bCC_inverted_foldable"): Specify DImode for register being
compared.
From-SVN: r100612
Dale Johannesen [Sun, 5 Jun 2005 01:22:31 +0000 (01:22 +0000)]
20050603-1.c: New.
2005-06-04 Dale Johannesen <dalej@apple.com>
* gcc.c-torture/execute/
20050603-1.c: New.
* gcc.c-torture/execute/
20050603-2.c: New.
* gcc.dg/
20050603-3.c: New.
From-SVN: r100611
GCC Administrator [Sun, 5 Jun 2005 00:16:12 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r100609.2
Tobias Schlüter [Sat, 4 Jun 2005 22:30:56 +0000 (00:30 +0200)]
configure.in: Fix typo in handling of --with-mpfr-dir.
* configure.in: Fix typo in handling of --with-mpfr-dir.
* configure: Regenerate.
From-SVN: r100605
Tobias Schlüter [Sat, 4 Jun 2005 22:22:39 +0000 (00:22 +0200)]
Add PR to ChangeLog
From-SVN: r100604
Tobias Schlüter [Sat, 4 Jun 2005 22:20:58 +0000 (00:20 +0200)]
re PR fortran/19195 (gfortran: ICE in final_scan_insn, at final.c:1843)
fortran/
2005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
Erik Schnetter <schnetter@aei.mpg.de>
PR fortran/19195
* trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
remove FIXME comment.
testsuite/
2005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/19195
* gfortran.dg/debug_1.f90: New test.
Co-Authored-By: Erik Schnetter <schnetter@aei.mpg.de>
From-SVN: r100603
Roger Sayle [Sat, 4 Jun 2005 22:05:35 +0000 (22:05 +0000)]
reg-stack.c (struct block_info_def): Correct grammar typo.
* reg-stack.c (struct block_info_def): Correct grammar typo.
(compensate_edge): Clean-up. Perform as little work as possible
when src and dest stacks match. Avoid modifying block_info.
Reorder and simplify assertion checks. Avoid unnecessary copying
of regstack structure.
(convert_regs_1): Set the done flag here...
(convert_regs_2): ... instead of here.
From-SVN: r100602
Dale Johannesen [Sat, 4 Jun 2005 21:32:40 +0000 (21:32 +0000)]
rs6000.c (no_global_regs_above): New.
2005-06-04 Dale Johannesen <dalej@apple.com>
* config/rs6000/rs6000.c (no_global_regs_above): New.
(rs6000_emit_prologue): Use it; cosmetic formatting fixes.
(rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
(rs6000_conditional_register_usage): Don't put Darwin PIC
register in global_regs.
(rs6000_stack_info): Don't set lr_save_p just because Darwin
PIC reg used.
(rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
if not done by lr_save_p.
* config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
Use rotate instead of ashift.
(call_indirect_nonlocal_sysv): Prefer CTR to LR.
(call_value_indirect_nonlocal_sysv): Ditto.
From-SVN: r100601
Jan Hubicka [Sat, 4 Jun 2005 20:23:13 +0000 (22:23 +0200)]
cgraphunit.c (cgraph_reset_node): Break out from ...
* cgraphunit.c (cgraph_reset_node): Break out from ...
(cgraph_finalize_function): ... here.
(cgraph_finalize_compilation_unit): Reset nodes where backend
removed the body.
From-SVN: r100599
Richard Henderson [Sat, 4 Jun 2005 19:23:53 +0000 (12:23 -0700)]
re PR target/21888 (bootstrap failure with linker relaxation enabled)
PR target/21888
* config/alpha/alpha.c (alpha_align_insns): Don't insert nops
until we've passed initial ldgp.
From-SVN: r100596
Daniel Berlin [Sat, 4 Jun 2005 17:22:21 +0000 (17:22 +0000)]
cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2005-06-01 Daniel Berlin <dberlin@dberlin.org>
* cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
* dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
* expr.c (expand_var): Ditto.
* function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
* gimplify.c (gimplify_decl_expr): Ditto.
(gimplify_expr): Ditto.
* tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
* tree.c (value_expr_for_decl): New.
(print_value_expr_statistics): New.
(init_ttree): Init value_expr_for_decl.
(decl_value_expr_lookup): New.
(decl_value_expr_insert): Ditto.
(copy_node_stat): Copy DECL_VALUE_EXPR status.
* tree.h (DECL_VALUE_EXPR): Use hashtable.
(SET_DECL_VALUE_EXPR): New.
(DECL_HAS_VALUE_EXPR_P): New.
From-SVN: r100592
Steven Bosscher [Sat, 4 Jun 2005 17:07:57 +0000 (17:07 +0000)]
lcm.c: Move all mode-switching related functions from here...
* lcm.c: Move all mode-switching related functions from here...
* mode-switching.c: ...to this new file.
* doc/passes.texi: Update accordingly.
* basic-block.h (label_value_list): Remove extern decl.
* cfgrtl.c (label_value_list): Remove.
(can_delete_label_p): Don't look at it.
* cfgcleanup.c (cleanup_cfg): Don't free it.
* common.opt: Don't refer to non-existing flag_alias_check.
From-SVN: r100591
David Edelsohn [Sat, 4 Jun 2005 15:35:50 +0000 (15:35 +0000)]
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
From-SVN: r100589
Kazu Hirata [Sat, 4 Jun 2005 14:02:35 +0000 (14:02 +0000)]
function.c (prologue, [...]): Change their types to VEC(int,heap)*.
* function.c (prologue, epilogue, sibcall_epilogue): Change
their types to VEC(int,heap)*.
(free_after_compilation): Free the three vectors above.
(init_function_for_compilation, record_insns, contains,
prologue_epilogue_contains, sibcall_epilogue_contains,
reposition_prologue_and_epilogue_notes): Use VEC instead of
VARRAY. (init_function_once): Remove.
* function.h: Remove the prototype for init_function_once.
* toplev.c (backend_init): Don't call init_function_once.
From-SVN: r100588
Anthony Green [Sat, 4 Jun 2005 11:39:12 +0000 (11:39 +0000)]
Update copyright year.
From-SVN: r100585
Anthony Green [Sat, 4 Jun 2005 11:23:29 +0000 (11:23 +0000)]
URLClassLoader.java: import gnu.gcj.Core, and gnu.java.net.protocol.core.CoreInputStream.
2005-06-04 Anthony Green <green@redhat.com>
* java/net/URLClassLoader.java: import gnu.gcj.Core,
and gnu.java.net.protocol.core.CoreInputStream.
(CureURLLoader): New class.
(CoreResource): New class.
(addURLImpl): Add special treatment for the "core" protocol.
* gnu/gcj/natCore.cc (find): New method.
* gnu/gcj/Core.java (find): New method.
From-SVN: r100582
Jan Hubicka [Sat, 4 Jun 2005 11:00:57 +0000 (13:00 +0200)]
predict.c (tree_predict_edge): Do not predict entry edge and single succestor edge.
* predict.c (tree_predict_edge): Do not predict entry edge and
single succestor edge.
From-SVN: r100581
Tobias Schlüter [Sat, 4 Jun 2005 10:35:00 +0000 (12:35 +0200)]
match.c (match_forall_iterator): Don't immediately give error if '=' is not followed by an expression.
fortran/
* match.c (match_forall_iterator): Don't immediately give error if '='
is not followed by an expression.
testsuite/
* gfortran.dg/forall_1.f90: New test.
Co-Authored-By: Erik Edelmann <erik.edelmann@iki.fi>
From-SVN: r100580
Tobias Schlüter [Sat, 4 Jun 2005 10:26:57 +0000 (12:26 +0200)]
array.c (gfc_match_array_constructor): Disallow empty array constructor.
fortran/
2005-06-03 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
Erik Edelmann <erik.edelmann@iki.fi>
* array.c (gfc_match_array_constructor): Disallow empty array
constructor.
testsuite/
2005-06-04 Erik Edelmann <erik.edelmann@iki.fi>
* gfortran.dg/array_constructor_3.f90: New test.
From-SVN: r100579
Tobias Schlüter [Sat, 4 Jun 2005 10:10:32 +0000 (12:10 +0200)]
* gfortran.dg/ret_pointer_1.f90: Un-XFAIL.
From-SVN: r100578
Richard Sandiford [Sat, 4 Jun 2005 06:23:19 +0000 (06:23 +0000)]
* MAINTAINERS: Update my email address.
From-SVN: r100577
Jerry DeLisle [Sat, 4 Jun 2005 04:31:34 +0000 (04:31 +0000)]
intrinsic.texi: Add documentation for command_argument_count...
2005-06-03 Jerry DeLisle <jvdelisle@verizon.net>
* fortran/intrinsic.texi: Add documentation for
command_argument_count, conjg, dconjg, count,
cpu_time, cshift, date_and_time, dble, dfloat.
From-SVN: r100575
Hans-Peter Nilsson [Sat, 4 Jun 2005 03:24:39 +0000 (03:24 +0000)]
* g++.dg/opt/crossjump1.C: Gate -fPIC usage on target fpic.
From-SVN: r100574
Joseph Myers [Sat, 4 Jun 2005 01:34:47 +0000 (02:34 +0100)]
re PR c/21873 (infinite warning loop on bad array initializer)
PR c/21873
* c-typeck.c (push_init_level): Don't pop levels without braces if
implicit == 1.
testsuite:
* gcc.dg/init-excess-1.c: New test.
From-SVN: r100571
GCC Administrator [Sat, 4 Jun 2005 00:16:26 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r100569.2
Geoffrey Keating [Sat, 4 Jun 2005 00:06:22 +0000 (00:06 +0000)]
c-parser.c (c_parser_parms_declarator): Don't use chainon().
* c-parser.c (c_parser_parms_declarator): Don't use chainon().
(c_parser_expr_list): Don't use chainon().
From-SVN: r100567
Sebastian Pop [Fri, 3 Jun 2005 23:27:03 +0000 (01:27 +0200)]
tree-data-ref.c (compute_self_dependence): New function.
2005-06-03 Sebastian Pop <pop@cri.ensmp.fr>
* tree-data-ref.c (compute_self_dependence): New function.
(compute_all_dependences): Use it.
From-SVN: r100565
Mark Mitchell [Fri, 3 Jun 2005 23:22:11 +0000 (23:22 +0000)]
re PR c++/21853 (constness of pointer to data member ignored)
PR c++/21853
* typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
the pointed-to type for a pointer-to-member.
PR c++/21853
* g++.dg/expr/static_cast6.C: New test.
From-SVN: r100560
Geoffrey Keating [Fri, 3 Jun 2005 23:21:19 +0000 (23:21 +0000)]
darwin.h (LINK_SPEC): Pass -syslibroot to linker when -isysroot passed.
* config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
when -isysroot passed.
From-SVN: r100559
Joseph Myers [Fri, 3 Jun 2005 22:25:13 +0000 (23:25 +0100)]
re PR c/21879 (Memory management problem)
PR c/21879
* c-decl.c (start_function): Restore label_context_stack_se and
label_context_stack_vm if returning with an error.
From-SVN: r100557
Keith Seitz [Fri, 3 Jun 2005 22:21:52 +0000 (22:21 +0000)]
* gnu/classpath/jdwp/transport/TransportFactory.java: New file.
From-SVN: r100556
Gabriel Dos Reis [Fri, 3 Jun 2005 21:13:59 +0000 (21:13 +0000)]
configure.ac: Check declaration for asprintf, needed by libiberty.h.
* configure.ac: Check declaration for asprintf, needed by
libiberty.h.
* configure: Regenerate.
* config.in: Likewise.
From-SVN: r100555
Diego Novillo [Fri, 3 Jun 2005 21:07:11 +0000 (21:07 +0000)]
tree-ssa-dom.c (record_edge_info): Use last_basic_block to allocate info array.
* tree-ssa-dom.c (record_edge_info): Use last_basic_block to
allocate info array.
* tree-vrp.c (extract_range_from_unary_expr): Set resulting
range to varying in cast expressions that change
TYPE_PRECISION.
testsuite/ChangeLog
* gcc.dg/tree-ssa/vrp14.c: New test.
From-SVN: r100554
Keith Seitz [Fri, 3 Jun 2005 20:56:09 +0000 (20:56 +0000)]
ITransport.java: New file.
* gnu/classpath/jdwp/transport/ITransport.java: New file.
* gnu/classpath/jdwp/transport/SocketTransport.java: New file.
From-SVN: r100553
Eric Christopher [Fri, 3 Jun 2005 19:07:39 +0000 (19:07 +0000)]
mips.opt: Add RejectNegative to divide-breaks and divide-traps.
2005-06-03 Eric Christopher <echristo@redhat.com>
* config/mips/mips.opt: Add RejectNegative to divide-breaks and
divide-traps.
From-SVN: r100552
Jan Hubicka [Fri, 3 Jun 2005 19:03:29 +0000 (21:03 +0200)]
basic-block.h (remove_predictions_associated_with_edge): Declare.
* basic-block.h (remove_predictions_associated_with_edge): Declare.
* cfg.c (remove_edge): Use it.
* predict.c (remove_predictions_associated_with_edge): New function.
From-SVN: r100551
Pat Haugen [Fri, 3 Jun 2005 17:18:04 +0000 (17:18 +0000)]
rs6000.c (rs6000_conditional_register_usage): Clear call_realy_used_regs[r2] when ABI_AIX.
2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
Clear call_realy_used_regs[r2] when ABI_AIX.
From-SVN: r100549
Paolo Carlini [Fri, 3 Jun 2005 17:07:48 +0000 (17:07 +0000)]
re PR libstdc++/21770 (rebinding allocator::value type vs. container::value_type)
2005-06-03 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/21770
* include/bits/stl_deque.h: Add concept-check. In class _Deque_base
rebind _Alloc to _Tp_alloc_type, change _Deque_impl to inherit from
the latter and add _M_get_Tp_allocator() which returns it. Use
everywhere _M_get_Tp_allocator() instead of get_allocator().
* include/bits/deque.tcc: Likewise, use _M_get_Tp_allocator().
* include/bits/stl_list.h: Add concept-check. In class _List_base
rebind _Alloc to _Tp_alloc_type and add _M_get_Tp_allocator(), which
returns the allocator (of type _Node_alloc_type) converted to
_Tp_alloc_type. Use everywhere _M_get_Tp_allocator() instead of
get_allocator().
* include/bits/list.tcc: Likewise, use _M_get_Tp_allocator().
* include/bits/stl_vector.h: Add concept-check. In class _Vector_base
rebind _Alloc to _Tp_alloc_type, change _Vector_impl to inherit from
the latter and add _M_get_Tp_allocator() which returns it. Use
everywhere _M_get_Tp_allocator() instead of get_allocator().
* include/bits/vector.tcc: Likewise, use _M_get_Tp_allocator().
* include/bits/stl_map.h: Add concept-check. Rebind _Alloc to
_Pair_alloc_type and use it for _Rb_tree.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Add concept-check. Rebind _Alloc to
_Key_alloc_type and use it for _Rb_tree.
* include/bits/stl_set.h: Likewise.
* include/bits/basic_string.h: Rebind _Alloc to _CharT_alloc_type and
use it for the allocator typedefs.
* testsuite/21_strings/basic_string/1.cc: New.
* testsuite/23_containers/deque/explicit_instantiation.cc: Move to...
* testsuite/23_containers/deque/explicit_instantiation/1.cc: ... here.
* testsuite/23_containers/deque/explicit_instantiation/3.cc: New.
* testsuite/23_containers/list/explicit_instantiation.cc: Move to...
* testsuite/23_containers/list/explicit_instantiation/1.cc: ... here.
* testsuite/23_containers/list/explicit_instantiation/3.cc: New.
* testsuite/23_containers/map/explicit_instantiation.cc: Move to...
* testsuite/23_containers/map/explicit_instantiation/1.cc: ... here.
* testsuite/23_containers/map/explicit_instantiation/3.cc: New.
* testsuite/23_containers/multimap/explicit_instantiation.cc: Move to...
* testsuite/23_containers/multimap/explicit_instantiation/1.cc: .. here.
* testsuite/23_containers/multimap/explicit_instantiation/3.cc: New.
* testsuite/23_containers/multiset/explicit_instantiation.cc: Move to...
* testsuite/23_containers/multiset/explicit_instantiation/1.cc: .. here.
* testsuite/23_containers/multiset/explicit_instantiation/3.cc: New.
* testsuite/23_containers/set/explicit_instantiation.cc: Move to...
* testsuite/23_containers/set/explicit_instantiation/1.cc: .. here.
* testsuite/23_containers/set/explicit_instantiation/3.cc: New.
* testsuite/23_containers/vector/explicit_instantiation.cc: Move to...
* testsuite/23_containers/vector/explicit_instantiation/1.cc: ... here.
* testsuite/23_containers/vector/explicit_instantiation/3.cc: New.
From-SVN: r100546
Mark Mitchell [Fri, 3 Jun 2005 16:16:46 +0000 (16:16 +0000)]
re PR c++/21336 (Internal compiler error when using custom new operators)
PR c++/21336
* cp-tree.h (grok_op_properties): Remove friendp parameter.
* decl.c (grokfndecl): Adjust call.
(grok_op_properties): Determine the class of which the function is
a member by looking at its DECL_CONTEXT, not current_class_type.
* pt.c (tsubst_decl): Adjust call to grok_op_properties.
PR c++/21336
* g++.dg/template/new2.C: New test.
From-SVN: r100541
Josh Conner [Fri, 3 Jun 2005 16:07:29 +0000 (16:07 +0000)]
ppc-vector-memcpy.c (foo): Use non-zero values for all entries in initializer.
* gcc.dg/ppc-vector-memcpy.c (foo): Use non-zero values for
all entries in initializer.
From-SVN: r100540
Richard Guenther [Fri, 3 Jun 2005 15:15:46 +0000 (15:15 +0000)]
re PR middle-end/21858 (ICE in compare_values, at tree-vrp.c:301)
2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/21858
* fold-const.c (fold_binary): Fix type mismatches in folding
of comparisons.
* gcc.dg/pr21858.c: New testcase.
From-SVN: r100539
Kazu Hirata [Fri, 3 Jun 2005 13:41:39 +0000 (13:41 +0000)]
cgraph.c, [...]: Fix comment typos.
* cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
typos.
From-SVN: r100538
Joseph Myers [Fri, 3 Jun 2005 10:48:06 +0000 (11:48 +0100)]
* collect2.c (maybe_unlink): Use unlink_if_ordinary.
From-SVN: r100537
Bernd Schmidt [Fri, 3 Jun 2005 09:55:28 +0000 (09:55 +0000)]
Revert my previous patch.
From-SVN: r100536
Paolo Bonzini [Fri, 3 Jun 2005 08:09:47 +0000 (08:09 +0000)]
re PR testsuite/21292 (gen-vect-11b.c and gen-vect-11c.c fail)
2005-06-03 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/21292
* lib/target-supports.exp (check_effective_target_vect_cmdline_needed):
New.
* gcc.dg/tree-ssa/gen-vect-11.c, gcc.dg/tree-ssa/gen-vect-11a.c,
gcc.dg/tree-ssa/gen-vect-11b.c, gcc.dg/tree-ssa/gen-vect-11c.c,
gcc.dg/tree-ssa/gen-vect-2.c, gcc.dg/tree-ssa/gen-vect-25.c,
gcc.dg/tree-ssa/gen-vect-26.c, gcc.dg/tree-ssa/gen-vect-28.c,
gcc.dg/tree-ssa/gen-vect-32.c: Require it.
From-SVN: r100535
Nick Clifton [Fri, 3 Jun 2005 08:09:26 +0000 (08:09 +0000)]
Fix typo in ASM_SEPC
From-SVN: r100534
Tom Tromey [Fri, 3 Jun 2005 04:06:19 +0000 (04:06 +0000)]
re PR java/21722 (gcj miscompiles accesses to static final vars with indirect dispatch)
PR java/21722:
* class.c (build_static_field_ref): Don't fold constant fields if
current class is from a .class file and we're using indirect
dispatch.
From-SVN: r100533
Kazu Hirata [Fri, 3 Jun 2005 02:55:20 +0000 (02:55 +0000)]
re PR tree-optimization/21849 (wrong use of sbitmap in tree-ssa-copy.c)
PR tree-optimization/21849
* tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
From-SVN: r100531
Richard Henderson [Fri, 3 Jun 2005 02:35:59 +0000 (19:35 -0700)]
* gcc.dg/sync-2.c: Use -march=i486 for i386.
From-SVN: r100530
Richard Henderson [Fri, 3 Jun 2005 02:11:05 +0000 (19:11 -0700)]
Makefile.in (tree-vect-generic.o): New.
* Makefile.in (tree-vect-generic.o): New.
(OBJS-common, GTFILES, s-gtype): Add it.
* tree-complex.c (build_replicated_const, vector_inner_type,
vector_last_type, vector_last_nunits, build_word_mode_vector_type,
elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
do_negate, expand_vector_piecewise, expand_vector_parallel,
expand_vector_addition, expand_vector_operation,
type_for_widest_vector_mode, expand_vector_operations_1,
gate_expand_vector_operations, expand_vector_operations,
pass_lower_vector_ssa): Move to tree-vect-generic.c.
(tree_lower_complex): Rename from tree_lower_operations.
(pass_lower_complex): Rename from pass_pre_expand.
* tree-vect-generic.c: New file.
* tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
(pass_lower_vector): New.
* tree-optimize.c (init_tree_optimization_passes): Update to match.
From-SVN: r100529
Richard Henderson [Fri, 3 Jun 2005 02:00:00 +0000 (19:00 -0700)]
modulo-sched.c (doloop_register_get): Protect against doloop_end not defined.
* modulo-sched.c (doloop_register_get): Protect against
doloop_end not defined.
From-SVN: r100528
Jim Blandy [Fri, 3 Jun 2005 00:16:32 +0000 (00:16 +0000)]
config.sub: Add cases for the Renesas m32c.
* config.sub: Add cases for the Renesas m32c. (This patch has been
accepted into the master sources.)
From-SVN: r100527
GCC Administrator [Fri, 3 Jun 2005 00:16:23 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r100525.2
Kazu Hirata [Thu, 2 Jun 2005 23:28:53 +0000 (23:28 +0000)]
sh.c (general_movsrc_operand, [...]): Move to ...
* config/sh/sh.c (general_movsrc_operand,
general_movdst_operand, arith_reg_operand, arith_reg_dest,
logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
xor_operand, cmp_operand, logical_operand, and_operand,
fpscr_operand, fpul_operand, symbol_ref_operand,
commutative_float_operator, noncommutative_float_operator,
unary_float_operator, binary_float_operator,
binary_logical_operator, equality_comparison_operator,
greater_comparison_operator, less_comparison_operator,
shift_operator, logical_operator, target_reg_operand,
target_operand, mextr_bit_offset, extend_reg_operand,
trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
general_extend_operand, ua_address_operand,
cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
shift_count_reg_operand, shift_count_operand,
unaligned_load_operand): Move to ...
* config/sh/predicates.md: ... here.
* config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
Remove.
From-SVN: r100523
Andrew Pinski [Thu, 2 Jun 2005 23:00:06 +0000 (23:00 +0000)]
trans.c (gnat_gimplify_expr): Call recompute_tree_invarant_for_addr_expr when...
2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
* trans.c (gnat_gimplify_expr): Call
recompute_tree_invarant_for_addr_expr when we change
the operand of the ADDR_EXPR.
From-SVN: r100522
Andrew Pinski [Thu, 2 Jun 2005 22:57:43 +0000 (22:57 +0000)]
tree.c (build_common_builtin_nodes): Fix the return type on __builtin_memcmp.
2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
* tree.c (build_common_builtin_nodes): Fix the return type on
__builtin_memcmp.
From-SVN: r100520
Richard Guenther [Thu, 2 Jun 2005 22:05:13 +0000 (22:05 +0000)]
tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
* tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
(find_interesting_uses_address): Use build_fold_addr_expr instead.
(strip_offset_1): Likewise.
(tree_to_aff_combination): Likewise.
From-SVN: r100519
DJ Delorie [Thu, 2 Jun 2005 22:02:59 +0000 (18:02 -0400)]
convert.c (convert_to_pointer): Avoid recursion if no conversion is needed.
* convert.c (convert_to_pointer): Avoid recursion if no conversion
is needed.
From-SVN: r100518
Richard Guenther [Thu, 2 Jun 2005 21:55:52 +0000 (21:55 +0000)]
tree-chrec.c (chrec_fold_plus_1): Ensure we build binary operations with the correct types.
2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
* tree-chrec.c (chrec_fold_plus_1): Ensure we build
binary operations with the correct types.
* tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
for all computation.
From-SVN: r100517
Kazu Hirata [Thu, 2 Jun 2005 21:54:42 +0000 (21:54 +0000)]
tree-vrp.c, [...]: Fix comment typos.
* tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
config/rs6000/rs6000.md: Fix comment typos. Follow splling
conventions.
* doc/install.texi: Fix a typo.
From-SVN: r100516
Geoffrey Keating [Thu, 2 Jun 2005 21:45:57 +0000 (21:45 +0000)]
Index: ChangeLog
2005-05-31 Geoffrey Keating <geoffk@geoffk.org>
* config/rs6000/rs6000.md (sync_boolcshort_internal): New.
* config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
be complemented for big-endian. Mask for AND must be rotated,
not shifted. Handle short operands with NOT on the memory
operation.
Index: testsuite/ChangeLog
2005-05-31 Geoffrey Keating <geoffk@geoffk.org>
* lib/target-supports.exp
(check_effective_target_sync_char_short): New.
* gcc.dg/sync-2.c: New.
From-SVN: r100515
Jan Hubicka [Thu, 2 Jun 2005 20:33:04 +0000 (22:33 +0200)]
cgraphunit.c (cgraph_function_and_variable_visibility): Extern inline functions are not local.
* cgraphunit.c (cgraph_function_and_variable_visibility): Extern
inline functions are not local.
From-SVN: r100514
Kazu Hirata [Thu, 2 Jun 2005 20:21:54 +0000 (20:21 +0000)]
gimplify.c (gimplify_ctx): Change the type of case_labels to VEC from VARRAY.
* gimplify.c (gimplify_ctx): Change the type of case_labels to
VEC from VARRAY.
(gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
of case_labels.
From-SVN: r100513
Richard Guenther [Thu, 2 Jun 2005 20:09:01 +0000 (20:09 +0000)]
c-typeck.c (build_indirect_ref): Build INDIRECT_REF with correct type.
2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
* c-typeck.c (build_indirect_ref): Build INDIRECT_REF
with correct type.
* gcc.dg/wtypequal.c: New testcase.
From-SVN: r100512
Nathan Sidwell [Thu, 2 Jun 2005 20:02:26 +0000 (20:02 +0000)]
* method.c (synthesize_method): Add addtional arg to warning call.
From-SVN: r100511
Ulrich Weigand [Thu, 2 Jun 2005 19:57:24 +0000 (19:57 +0000)]
s390.c (s390_add_execute): Do not handle out-of-pool execute templates.
* config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
execute templates.
(s390_dump_pool): Likewise.
(s390_mainpool_start, s390_mainpool_finish): Likewise.
(s390_chunkify_start): Likewise.
(s390_dump_execute): Remove.
(s390_reorg): Handle out-of-pool execute templates.
From-SVN: r100510
Aldy Hernandez [Thu, 2 Jun 2005 19:54:19 +0000 (19:54 +0000)]
configure.in: Set noconfigdirs for ms1.
* configure.in: Set noconfigdirs for ms1.
* configure: Regenerate.
Co-Authored-By: Michael Snyder <msnyder@redhat.com>
Co-Authored-By: Stan Cox <scox@redhat.com>
From-SVN: r100509
Adrian Straetling [Thu, 2 Jun 2005 19:46:38 +0000 (19:46 +0000)]
optabs.c: (expand_bool_compare_and_swap): Emit barrier after unconditional jump.
2005-06-02 Adrian Straetling <straetling@de.ibm.com>
* optabs.c: (expand_bool_compare_and_swap): Emit barrier after
unconditional jump.
From-SVN: r100508
Jan Hubicka [Thu, 2 Jun 2005 19:41:31 +0000 (21:41 +0200)]
cgraph.c (cgraph_node): Maintain master clones.
* cgraph.c (cgraph_node): Maintain master clones.
(cgraph_remove_node): Likewise.
(availability_names): New static variable.
(dump_cgraph_node): Dump availability.
(dump_cgraph_varpool_node): Likewise.
(cgraph_is_master_clone, cgraph_master_clone,
cgraph_function_body_availability,
cgraph_variable_initializer_availability): New functions.
* cgraph.h (availability): New enum.
(struct cgraph_node): Add master_clone.
(cgraph_is_master_clone, cgraph_master_clone,
cgraph_function_body_availability,
cgraph_variable_initializer_availability): Declare.
* cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
(cgraph_remove_unreachable_nodes): Remove unreachable nodes.
* ipa-inline.c (cgraph_decide_inlining): Do not call
cgraph_remove_unreachable_nodes.
From-SVN: r100507
Jan Hubicka [Thu, 2 Jun 2005 18:35:59 +0000 (20:35 +0200)]
cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in previous patch.
* cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
previous patch.
From-SVN: r100506
Diego Novillo [Thu, 2 Jun 2005 18:26:07 +0000 (18:26 +0000)]
re PR tree-optimization/21582 ((optimisation) VRP pass could/should use non-null function attribute)
PR 21582
* tree-vrp.c (nonnull_arg_p): New.
(get_value_range): Call it.
testsuite/ChangeLog
PR 21582
* gcc.dg/tree-ssa/pr21582.c: New test.
From-SVN: r100505
Andreas Tobler [Thu, 2 Jun 2005 18:12:47 +0000 (20:12 +0200)]
jawt.c: Remove malloc.h, covered by stdlib.h.
2005-06-03 Andreas Tobler <a.tobler@schweiz.ch>
* jawt.c: Remove malloc.h, covered by stdlib.h.
* testsuite/libjava.jni/jni.exp
(gcj_jni_invocation_compile_c_to_binary): Add -bind_at_load to silence
the build process.
From-SVN: r100504
Eric Christopher [Thu, 2 Jun 2005 18:08:20 +0000 (18:08 +0000)]
mips.h (processor_type): Remove PROCESSOR_DEFAULT, add PROCESSOR_MAX.
2005-06-02 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
add PROCESSOR_MAX.
(mips_rtx_cost_data): New datatype.
(MEMORY_MOVE_COST): Use data from structure.
(BRANCH_COST): Ditto.
(LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
* config/mips/mips.md (cpu): Rework for processor_type changes.
* config/mips/mips.c (mips_cost): New variable.
(DEFAULT_COSTS): Define.
(mips_rtx_cost_data): New.
(mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
(override_options): Set cost data.
(mips_register_move_cost): Formatting changes.
(bdesc_arrays): Use PROCESSOR_MAX.
(mips_init_builtins): Ditto.
From-SVN: r100503
Nathan Sidwell [Thu, 2 Jun 2005 17:52:28 +0000 (17:52 +0000)]
re PR c++/21280 (#pragma interface, templates, and "inline function used but never defined")
cp:
PR c++/21280
* Make-lang.in (method.o): Add diagnostic.h
* decl.c (start_preparsed_function): Use decl's location for file
info.
* decl2.c (cp_finish_file): Set input_location before synthesizing
a function.
(mark_used): When deferring a synthesized function, save current
location. Do not set function's location when actually
synthesizing it.
* method.c: #include diagnostic.h.
(synthesize_method): Set the functions source location. Show
needed location if errors are emitted.
testsuite:
PR c++/21280
* g++.dg/opt/interface2.h: New.
* g++.dg/opt/interface2.C: New.
* g++.dg/init/ctor4.C: Adjust error lines.
* g++.old-deja/g++.bob/inherit2.C: Likewise.
* g++.old-deja/g++.bugs/900205_04.C: Likewise.
* g++.old-deja/g++.jason/opeq3.C: Likewise.
* g++.old-deja/g++.pt/assign1.C: Likewise.
* g++.old-deja/g++.pt/crash20.C: Likewise.
From-SVN: r100500
Nathan Sidwell [Thu, 2 Jun 2005 17:48:58 +0000 (17:48 +0000)]
re PR c++/21280 (#pragma interface, templates, and "inline function used but never defined")
PR c++/21280
* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust expected errors.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
From-SVN: r100499
Keith Seitz [Thu, 2 Jun 2005 17:27:34 +0000 (17:27 +0000)]
* gnu/classpath/jdwp/transport/TransportException.java: New file.
From-SVN: r100496
Diego Novillo [Thu, 2 Jun 2005 17:13:26 +0000 (17:13 +0000)]
re PR tree-optimization/21765 (-free-vrp is undocumented.)
PR 21765
* doc/invoke.texi: Document -ftree-vrp.
From-SVN: r100495
Dorit Nuzman [Thu, 2 Jun 2005 14:52:18 +0000 (14:52 +0000)]
re PR tree-optimization/21734 (ICE: -ftree-vectorize, segfault)
PR tree-optimization/21734
* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
phi_result when current_def is not available.
(slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
available.
From-SVN: r100494
David Edelsohn [Thu, 2 Jun 2005 14:19:18 +0000 (14:19 +0000)]
rs6000.c (rs6000_insn_valid_within_doloop): New.
* config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
(TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
From-SVN: r100493
Diego Novillo [Thu, 2 Jun 2005 12:35:25 +0000 (12:35 +0000)]
* tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
From-SVN: r100492
Jan Hubicka [Thu, 2 Jun 2005 10:59:00 +0000 (12:59 +0200)]
cgraph.c (dump_cgraph_node): Print new flags.
* cgraph.c (dump_cgraph_node): Print new flags.
(dump_cgraph_varpool_node): Likewise.
(decide_variable_is_needed): Initialize externally_visible flag.
* cgraph.h (cgraph_local_info): Add externally_visible flag.
(cgraph_varpool_node): Likewise.
(cgraph_function_flags_ready): Declare.
* cgraph.c (cgraph_mark_local_functions): Rename to ...
(cgraph_function_and_variable_visibility) ... this one; handle
externally_visible flags.
(decide_is_function_needed): Set externally_visible flag.
(cgraph_finalize_function): Deal properly with early cleanups.
(cgraph_optimize): Update call of
cgraph_function_and_variable_visibility.
From-SVN: r100491
Steven Bosscher [Thu, 2 Jun 2005 10:19:12 +0000 (10:19 +0000)]
> 2005-06-02 Steven Bosscher <stevenb@suse.de> > Mostafa Hagog...
> 2005-06-02 Steven Bosscher <stevenb@suse.de>
> Mostafa Hagog <mustafa@il.ibm.com>
>
> * cfgloop.h (doloop_condition_get): Make external.
> * loop-doloop.c (doloop_condition_get): Generalize to make it
> usable in modulo-sched.c.
> * modulo-sched.c (doloop_register_get): Use
> doloop_condition_get instead of duplicating it.
Co-Authored-By: Mostafa Hagog <mustafa@il.ibm.com>
From-SVN: r100490
Nathan Sidwell [Thu, 2 Jun 2005 09:34:38 +0000 (09:34 +0000)]
decl.c (start_decl): Simplify specialization handling.
* decl.c (start_decl): Simplify specialization handling. Remove
unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
* mangle.c (discriminator_for_local_entity): Use VEC_index.
From-SVN: r100488
Nathan Sidwell [Thu, 2 Jun 2005 09:09:48 +0000 (09:09 +0000)]
re PR c++/20350 (extern template and struct initializer and specification for a static variable)
cp:
PR c++/20350
* decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
testsuite:
PR c++/20350
* g++.dg/template/spec24.C: New.
From-SVN: r100486
Bernd Schmidt [Thu, 2 Jun 2005 08:55:01 +0000 (08:55 +0000)]
local-alloc.c (update_equiv_regs): When substituting sole definition into sole use of a reg...
* local-alloc.c (update_equiv_regs): When substituting sole definition
into sole use of a reg, delete it from liveness information.
From-SVN: r100483
Nathan Sidwell [Thu, 2 Jun 2005 08:53:48 +0000 (08:53 +0000)]
re PR c++/21151 (ICE when compiling c++ PCH of class definition within template function.)
cp:
PR c++/21151
* name-lookup.c (pushtag): Push local class even in a template.
testsuite:
PR c++/21151
* g++.dg/pch/local-1.C: New.
* g++.dg/pch/local-1.Hs: New.
From-SVN: r100482
Bernd Schmidt [Thu, 2 Jun 2005 08:39:06 +0000 (08:39 +0000)]
reload1.c (reload): Undo 2005-04-20 change.
* reload1.c (reload): Undo 2005-04-20 change. Make sure we detect
the correct set of init_insns that need deletion.
From-SVN: r100481
Jerry DeLisle [Thu, 2 Jun 2005 06:14:25 +0000 (06:14 +0000)]
MAINTAINERS (Write After Approval): Add self.
2005-06-01 Jerry DeLisle <jvdelisle@verizon.net>
* MAINTAINERS (Write After Approval): Add self.
From-SVN: r100480
Kaz Kojima [Thu, 2 Jun 2005 04:55:20 +0000 (04:55 +0000)]
* config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
From-SVN: r100479
Diego Novillo [Thu, 2 Jun 2005 02:57:15 +0000 (22:57 -0400)]
[multiple changes]
2005-06-01 Diego Novillo <dnovillo@redhat.com>
PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
* fold-const.c (invert_tree_comparison): Make extern.
* tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
(struct value_range_def): Limewise.
(get_value_range): Remove.
(dump_value_range): Remove.
(dump_all_value_ranges): Remove.
(debug_all_value_ranges): Remove.
(vrp_evaluate_conditional): Declare.
* tree-ssa-propagate.c (struct prop_stats_d): Add field
num_pred_folded.
(substitute_and_fold): Add argument use_ranges_p.
Update all callers.
If use_ranges_p is true, call fold_predicate_in to fold
predicates using range information.
Ignore ASSERT_EXPRs.
Change debugging output to only show statements that have been
folded.
(replace_phi_args_in): Move debugging output code from
substitute and fold.
(fold_predicate_in): New local function.
* tree-ssa-propagate.h (enum value_range_type): Move from
tree-flow.h.
(struct value_range_d): Likewise.
Add field 'equiv'.
(value_range_t): Rename from value_range.
* tree-vrp.c (found_in_subgraph): Rename from found.
(get_opposite_operand): Remove.
(struct assert_locus_d): Declare.
(assert_locus_t): Declare.
(need_assert_for): Declare.
(asserts_for): Declare.
(blocks_visited): Declare.
(vr_value): Declare.
(set_value_range): Add argument 'equiv'.
Don't drop to VARYING ranges that cover all values in the
type.
Make deep copy of equivalence set 'equiv'.
(copy_value_range): New local function.
(set_value_range_to_undefined): New local function.
(compare_values): Return -2 if either value has overflowed.
(range_includes_zero_p): New local function.
(extract_range_from_assert): Flip the predicate code if the
name being asserted is on the RHS of the predicate.
Avoid creating unnecessary symbolic ranges if the comparison
includes another name with a known numeric range.
Update the equivalnce set of the new range when asserting
EQ_EXPR predicates.
(extract_range_from_ssa_name): Update the equivalence set of
the new range with VAR.
(extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
If -fwrapv is used, set the resulting range to VARYING if the
operation overflows. Otherwise, use TYPE_MIN_VALUE and
TYPE_MAX_VALUE to represent -INF and +INF.
Fix handling of *_DIV_EXPR.
(extract_range_from_unary_expr): Handle MINUS_EXPR and
ABS_EXPR properly by switching the range around if necessary.
(extract_range_from_comparison): New local function.
(extract_range_from_expr): Call it.
(adjust_range_with_scev): Do not adjust the range if using
wrapping arithmetic (-fwrapv).
(dump_value_range): Also show equivalence set.
Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
(build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
(infer_value_range): Change return value to bool.
Add arguments 'comp_code_p' and 'val_p'.
Do not attempt to infer ranges from statements that may throw.
Store the comparison code in comp_code_p.
Store the other operand to be used in the predicate in val_p.
(dump_asserts_for): New.
(debug_asserts_for): New.
(dump_all_asserts): New.
(debug_all_asserts): New.
(register_new_assert_for): New.
(register_edge_assert_for): New.
(find_conditional_asserts): New.
(find_assert_locations): New.
(process_assert_insertions_for): New.
(process_assert_insertions): New.
(insert_range_assertions): Initialize found_in_subgraph,
blocks_visited, need_assert_for and asserts_for.
Call find_assert_locations and process_assert_insertions.
(remove_range_assertions): Add more documentation.
(vrp_initialize): Change return type to void.
Do not try to guess if running VRP is worth it.
(compare_name_with_value): New.
(compare_names): New.
(vrp_evaluate_conditional): Add argument 'use_equiv_p'. If
use_equiv_p is true, call compare_names and
compare_name_with_value to compare all the ranges for every
name in the equivalence set of the predicate operands.
Update all callers.
(vrp_meet): Try harder not to derive a VARYING range.
If two values meet, the resulting equivalence set is the
intersection of the two equivalence sets.
(vrp_visit_phi_node): Call copy_value_range to get the current
range information of the LHS.
(vrp_finalize): Create a value vector representing all the
names that ended up with exactly one value in their range.
Call substitute_and_fold.
(execute_vrp): Document equivalence sets in ranges.
* tree.h (SSA_NAME_VALUE_RANGE): Remove.
(struct tree_ssa_name): Remove field value_range.
(invert_tree_comparison): Declare.
testsuite/ChangeLog
2005-06-01 Diego Novillo <dnovillo@redhat.com>
PR 14341, PR 21332, PR 20701, PR 21086, PR 21090
PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
* gcc.dg/tree-ssa/pr14341.c: New test.
* gcc.dg/tree-ssa/pr14841.c: New test.
* gcc.dg/tree-ssa/pr20701.c: New test.
* gcc.dg/tree-ssa/pr21086.c: New test.
* gcc.dg/tree-ssa/pr21090.c: New test.
* gcc.dg/tree-ssa/pr21332.c: New test.
* gcc.dg/tree-ssa/pr21458.c: New test.
* gcc.dg/tree-ssa/pr21658.c: New test.
* gcc.dg/tree-ssa/vrp01.c: New test.
* gcc.dg/tree-ssa/vrp02.c: New test.
* gcc.dg/tree-ssa/vrp03.c: New test.
* gcc.dg/tree-ssa/vrp04.c: New test.
* gcc.dg/tree-ssa/vrp05.c: New test.
* gcc.dg/tree-ssa/vrp06.c: New test.
* gcc.dg/tree-ssa/vrp07.c: New test.
* gcc.dg/tree-ssa/vrp08.c: New test.
* gcc.dg/tree-ssa/vrp09.c: New test.
* gcc.dg/tree-ssa/vrp10.c: New test.
* gcc.dg/tree-ssa/vrp11.c: New test.
* gcc.dg/tree-ssa/vrp12.c: New test.
* gcc.dg/tree-ssa/vrp13.c: New test.
2005-06-01 Alexandre Oliva <aoliva@redhat.com>
PR 21029
* gcc.dg/tree-ssa/pr21029.c: New test.
From-SVN: r100478