2004-05-19 H.J. Lu <hongjiu.lu@intel.com>
PR target/15383
* config/ia64/ia64.c (ia64_expand_compare): Don't check
TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
cmptf_libfunc isn't set.
(ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
conventions.
(ia64_sysv4_init_libfuncs): New.
* config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
ia64_sysv4_init_libfuncs.
From-SVN: r82047
* tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
If the operand is for a use, then strip away the SSA_NAME, do not
strip away the SSA_NAME for a set. Never call release_ssa_name.
(mark_def_sites): Appropriately pass additional argument to
prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
then set the VDEF_RESULT to the VDEF_OP.
(set_def_block): Strip away any SSA_NAME to get to the real
underlying variable.
From-SVN: r82035
2004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
* tree-cfg.c (find_case_label_for_value): Replace call to
simple_cst_equal with tree_int_cst_equal.
From-SVN: r82033
* tree-ssa-phiopt.c (value_replacement): Handle the case where
the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
BB directly.
From-SVN: r82031
PR c++/15463
* loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
result of inverse.
PR rtl-optimization/15274
* loop-iv.c (determine_max_iter, shorten_into_mode,
iv_number_of_iterations): Handle constants correctly.
* rtl.h (get_mode_bounds): Declaration changed.
* stor-layout.c (get_mode_bounds): Return a constant suitable for
the target mode.
PR rtl-optimization/14692
* loop-unswitch.c (may_unswitch_on): Try folding the result.
(unswitch_single_loop): Work correctly when may_unswitch_on
returns a folded constant.
* loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
* simplify-rtx.c (simplify_const_relational_operation): Optimize
comparisons with mode bounds.
* function.c (struct temp_slot): Add new field prev.
(free_after_compilation, init_temp_slots): Free new fields.
(cut_slot_from_list, insert_slot_to_list,
temp_slots_at_level, max_slot_level, move_slot_to_level,
make_slot_available): New functions.
(assign_stack_temp_for_type, combine_temp_slots,
find_temp_slot_from_address, preserve_temp_slots,
preserve_rtl_expr_result, free_temp_slots,
free_temps_for_rtl_expr, pop_temp_slots): Work with
the new structure of lists.
(mark_all_temps_used): Removed.
* function.h (struct function): Field x_temp_slots
replaced by x_used_temp_slots and x_avail_temp_slots.
(temp_slots): Replaced by ...
(used_temp_slots, avail_temp_slots): New.
* tree.h (mark_all_temps_used): Declaration removed.
* loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
simplify_using_assignment): Take the expression out of
the expr_list wrapper.
* loop-iv.c (iv_number_of_iterations): Improve clasification of
infinite loops.
From-SVN: r82028
2004-05-19 Joel Brobecker <brobecker@gnat.com>
* exp_dbug.ads: Correct comments concerning handling of overloading,
since we no longer use $ anymore.
2004-05-19 Sergey Rybin <rybin@act-europe.fr>
* sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
with illegal subunits.
2004-05-19 Ed Schonberg <schonberg@gnat.com>
* sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
body with front-end inlining enabled, check whether an inline pragma
appears immediately after the body and applies to it.
* sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
enabled and the pragma appears after the body of the subprogram.
From-SVN: r82026
2004-05-19 Steven Bosscher <stevenb@suse.de>
Expanders cleanups after tree-ssa merge, part 1.
* expr.c (store_constructor): Build loop start and end by hand
instead of via loop functions from stmt.c.
(expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
Remove the code to expand them.
* stmt.c (loop_stack): Remove this and everything related.
(struct nesting, enum nesting_desc): Update.
(expand_fixup): Likewise.
(expand_loop_start, expand_start_loop_continue_elsewhere,
expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
expand_end_null_loop, expand_continue_loop, expand_exit_loop,
expand_exit_loop_if_false, expand_exit_loop_top_cond,
expand_exit_something): Remove.
* tree.h: Remove prototypes.
From-SVN: r82018
* tree-ssa-phiopt.c (abs_replacement): New function.
(empty_block_p): New function extracted from...
(candidate_bb_for_phi_optimization): Break out empty block test.
(conditional_replacement): Use empty_block_p.
(value_replacement): Similarly.
* gcc.dg/tree-ssa/20040514-2.c: Update expected output.
* gcc.dg/tree-ssa/20040518-2.c: New test.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r82017
(cgraph_varpool_hash_node, eq_cgraph_varpool_node)
(cgraph_varpool_node):
Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
(cgraph_function_possibly_inlined_p): Use the decl itself for
the key, not DECL_ASSEMBLER_NAME.
(change_decl_assembler_name): No need to muck with the hash tables.
(cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
Delete.
* cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
for the key, not DECL_ASSEMBLER_NAME.
* cgraph.h: Remove prototypes of deleted functions.
* varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
(mark_decl_referenced): New function.
* tree.h: Prototype mark_decl_referenced.
* final.c (output_addr_const) <case SYMBOL_REF>: Call
mark_decl_referenced before assemble_name.
* c-decl.c (finish_decl): Use mark_decl_referenced.
cp:
* decl.c (cp_finish_decl): Use mark_decl_referenced.
* decl2.c (maybe_make_one_only): Likewise.
* method.c (use_thunk): Likewise.
From-SVN: r82015
2004-05-18 Jan Beulich <jbeulich@novell.com>
PR libstdc++/15489
* scripts/create_testsuite_files: Also find source files through
symbolic links.
2004-05-18 Jan Beulich <jbeulich@novell.com>
PR libstdc++/15488
* testsuite/lib/libstdc++.exp: Make test files writable.
From-SVN: r82002
* Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
* tree-ssa-phiopt.c: Include flags.h.
(conditional_replacement): Remove argument names from prototype.
Minor formatting and comment fixes.
(tree_ssa_phiopt): If conditional_replacement returns false, then
call value_replacement.
(value_replacement): New function.
* gcc.dg/tree-ssa/20040518-1.c: New test.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r81999
* tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
from conditional_replacement.
(candidate_bb_for_phi_optimization): Similarly.
(conditional_replacement): Use replace_phi_with_stmt and
candidate_bb_for_phi_optimization.
From-SVN: r81996
2004-05-18 Paolo Carlini <pcarlini@suse.de>
* include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor
tweaks.
2004-05-18 Dhruv Matani <dhruvbird@gmx.net>
* include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write
allocation loop which removes blocks from the global free list
from O(N) to O(1) when the required blocks are <= the number
available.
From-SVN: r81992
* config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
s390_expand_cmpmem): Do not use expand_start_loop and
expand_end_loop, instead build the loop manually.
From-SVN: r81990
* toplev.h (flag_delete_null_pointer_checks): Move from here to...
* flags.h (flag_delete_null_pointer_checks): Here.
* tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
* tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
(add_phi_arg, remove_phi_arg_num): Similarly.
* tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
property into PHI nodes.
* tree-ssa-dom.c: Remove redundant inclusion of flags.h.
(record_equivalences_from_phis): If all PHI arguments are known to be
nonzero, then the result must be nonzero as well.
(cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
appropriately. Walk the USE-DEF chains and propagate nonzero property
as appropriate.
* tree.h (PHI_ARG_NONZERO): Define.
(phi_arg_d): Add nonzero flag.
From-SVN: r81968