7092 lines
280 KiB
Plaintext
7092 lines
280 KiB
Plaintext
2004-08-09 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* config.gcc (arm*-*-eabi*): New target.
|
||
* defaults.h (TARGET_LIBGCC_FUNCS): New macro.
|
||
(TARGET_LIB_INT_CMP_BIASED): Likewise.
|
||
* expmed.c (expand_divmod): Try a two-valued divmod function as a
|
||
last resort.
|
||
* gthr.h: Remove bogus tokens at end of #pragma.
|
||
* optabs.c (expand_twoval_binop_libfunc): New function.
|
||
(prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
|
||
(prepare_float_lib_cmp): Try reversing the condition.
|
||
(debug_optab_libfuncs): New function.
|
||
* optabs.h (expand_twoval_binop_libfunc): Declare.
|
||
* config/arm/arm.c (arm_init_libfuncs): New function.
|
||
(arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
|
||
(TARGET_INIT_LIBFUNCS): Define it.
|
||
* config/arm/arm.h (TARGET_BPABI): New macro.
|
||
* config/arm/arm-protos.h
|
||
(arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
|
||
* config/arm/bpabi.S: New file.
|
||
* config/arm/bpabi.c: Likewise.
|
||
* config/arm/bpabi.h: Likewise.
|
||
* config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
|
||
(__aeabi_drsub): Likewise.
|
||
(__aeabi_dsub): Likewise.
|
||
(__aeabi_dadd): Likewise.
|
||
(__aeabi_ui2d): Likewise.
|
||
(__aeabi_i2d): Likewise.
|
||
(__aeabi_f2d): Likewise.
|
||
(__aeabi_dmul): Likewise.
|
||
(__aeabi_ddiv): Likewise.
|
||
(__aeabi_cdrcmple): Likewise.
|
||
(__aeabi_cdcmpeq): Likewise.
|
||
(__aeabi_cdcmple): Likewise.
|
||
(__aeabi_dcmpeq): Likewise.
|
||
(__aeabi_dcmplt): Likewise.
|
||
(__aeabi_dcmple): Likewise.
|
||
(__aeabi_dcmpge): Likewise.
|
||
(__aeabi_dcmpgt): Likewise.
|
||
(__aeabi_dcmpun): Likewise.
|
||
(__aeabi_d2iz): Likewise.
|
||
(__aeabi_d2uiz): Likewise.
|
||
(__aeabi_d2f): Likewise.
|
||
* config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
|
||
(__aeabi_frsub): Likewise.
|
||
(__aeabi_fsub): Likewise.
|
||
(__aeabi_fadd): Likewise.
|
||
(__aeabi_ui2f): Likewise.
|
||
(__aeabi_i2f): Likewise.
|
||
(__aeabi_fmul): Likewise.
|
||
(__aeabi_fdiv): Likewise.
|
||
(__aeabi_cfrcmple): Likewise.
|
||
(__aeabi_cfcmpeq): Likewise.
|
||
(__aeabi_cfcmple): Likewise.
|
||
(__aeabi_fcmpeq): Likewise.
|
||
(__aeabi_fcmplt): Likewise.
|
||
(__aeabi_fcmple): Likewise.
|
||
(__aeabi_fcmpge): Likewise.
|
||
(__aeabi_fcmpgt): Likewise.
|
||
(__aeabi_fcmpun): Likewise.
|
||
(__aeabi_f2iz): Likewise.
|
||
(__aeabi_f2uiz): Likewise.
|
||
* config/arm/lib1funcs.asm (ARM_CALL): New macro.
|
||
(__aeabi_uidivmod): New function or alias.
|
||
(__aeabi_idivmod): Likewise.
|
||
(__aeabi_idiv0): Likewise.
|
||
(__aeabi_ldiv0): Likewise.
|
||
(__aeabi_llsr): Likewise.
|
||
(__aeabi_lasr): Likewise.
|
||
(__aeabi_llsl): Likewise.
|
||
(bpabi.S): Include it.
|
||
* config/arm/libgcc-bpabi.ver: New file.
|
||
* config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
|
||
(LINK_SPEC): Remove.
|
||
* config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
|
||
__aeabi_ulcmp.
|
||
* config/arm/t-bpabi: New file.
|
||
* doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
|
||
(TARGET_LIB_INT_CMP_BIASED): Likewise.
|
||
|
||
2004-08-10 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
|
||
* config/rs6000/rs6000.md (clrmemsi): New pattern.
|
||
* config/rs6000/rs6000.c (expand_block_clear): New function.
|
||
(expand_block_move): Convert alignment to bits. Use SImode and
|
||
HImode for unaligned addresses if not STRICT_ALIGNMENT.
|
||
|
||
2004-08-10 Caroline Tice <ctice@apple.com>
|
||
|
||
* varasm.c (unlikely_section_label): New global variable.
|
||
(unlikely_text_section_name): New global variable.
|
||
(text_section): Remove alignment statement.
|
||
(unlikely_text_section): Remove alignment statement; use
|
||
unlikely_section_label rather than hard-coded string.
|
||
(assemble_start_function): Initialize unlikely_section_label and
|
||
unlikely_text_section_name; make sure cold section is properly
|
||
aligned at start of function; output unlikely_section_label if
|
||
appropriate.
|
||
|
||
2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
|
||
* config/s390/s390.c (s390_canonicalize_comparison): New function.
|
||
* config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
|
||
* config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
|
||
"*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
|
||
("*tmqi_mem"): Remove SUBREG from pattern.
|
||
("*anddi3_cconly"): Prevent accidentally matching TM pattern.
|
||
("*andsi3_cconly"): Likewise.
|
||
|
||
2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/16909
|
||
* config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
|
||
|
||
2004-08-10 Janis Johnson <janis187@us.ibm.com>
|
||
|
||
* doc/sourcebuild.texi (compat testing): Document available test
|
||
framework commands. Use the preferred spelling of DejaGnu.
|
||
|
||
2004-08-10 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* lambda.h: Add matrix type, and prototypes for remainder of
|
||
matrix and vector functions.
|
||
(lambda_vector_mult_const): New function.
|
||
(lambda_vector_negate): Ditto.
|
||
(lambda_vector_add): Ditto.
|
||
(lambda_vector_add_mc): Ditto.
|
||
(lambda_vector_copy): Ditto.
|
||
(lambda_vector_zerop): Ditto.
|
||
(lambda_vector_equal): Ditto.
|
||
(lambda_vector_min_nz): Ditto.
|
||
(lambda_vector_first_nz): Ditto.
|
||
(lambda_vector_matrix_mult): Ditto.
|
||
* lambda-mat.c: New file.
|
||
* Makefile.in (lambda-mat.o): New.
|
||
|
||
2004-08-10 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
|
||
after linking stmt into the program.
|
||
(bsi_remove): Don't call modify_stmt.
|
||
* tree-complex.c (update_complex_assignment,
|
||
expand_complex_comparison): Call modify_stmt after changing the stmt.
|
||
* tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
|
||
removing the stmt.
|
||
* tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
|
||
the stmt, and only if needed.
|
||
* tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
|
||
expression.
|
||
(simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
|
||
(simplify_cond_and_lookup_avail_expr): Use modify_stmt.
|
||
(simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
|
||
(eliminate_redundant_computations): Don't pass an annotation. Call
|
||
modify_stmt rather than setting the annotation directly.
|
||
(record_equivalences_from_stmt): Remove unused local 'j'.
|
||
(cprop_operand): Take a stmt rather than an annotation as a parameter.
|
||
Call modify_stmt.
|
||
(cprop_into_stmt): Pass stmt rather than annotation.
|
||
(update_rhs_and_lookup_avail_expr): Call modify_stmt.
|
||
* tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
|
||
modify_stmt.
|
||
* tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
|
||
|
||
2004-08-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR middle-end/16948
|
||
* function.c (expand_function_start): Handle DECL_BY_REFERENCE on
|
||
the RESULT_DECL.
|
||
|
||
2004-08-10 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
|
||
hash function.
|
||
|
||
2004-08-10 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/mips/mips.md: New reciprocal square root patterns that
|
||
match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
|
||
|
||
2004-08-10 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm-protos.h (arm_set_return_address,
|
||
thumb_set_return_address): Add prototypes.
|
||
* config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
|
||
* config/arm/arm.c (arm_compute_func_type,
|
||
use_return_insn, arm_compute_save_reg0_reg12_mask,
|
||
arm_compute_save_reg_mask, arm_output_function_prologue,
|
||
arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
|
||
current_function_calls_eh_return.
|
||
(thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
|
||
old eh code.
|
||
(arm_set_return_address, thumb_set_return_address): New functions.
|
||
* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
|
||
ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
|
||
* config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
|
||
(epilogue): Use the stackadj register.
|
||
(eh_return, arm_eh_return, thumb_eh_return): New pattern.
|
||
|
||
2004-08-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/3144
|
||
* expr.c (move_by_pieces_ninsns): Add max_size argument.
|
||
(MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
|
||
(CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
|
||
(STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
|
||
but using MOVE_RATIO.
|
||
(move_by_pieces): Pass max_size to move_by_pieces_ninsns.
|
||
(can_store_by_pieces): Change max_size type to unsigned int.
|
||
(store_by_pieces_1): Likewise. Pass max_size to
|
||
move_by_pieces_ninsns.
|
||
* config/s390/s390.h (STORE_BY_PIECES_P): Define.
|
||
* config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
|
||
to move_by_pieces_ninsns.
|
||
(STORE_BY_PIECES_P): Define.
|
||
* config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
|
||
to move_by_pieces_ninsns.
|
||
* doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
|
||
|
||
* config/i386/i386.h (CLEAR_RATIO): Define.
|
||
|
||
2004-08-09 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* expr.c (expand_expr_real_1): Add back code that was not dead.
|
||
|
||
2004-08-09 Andrew Pinski <apinski@apple.com>
|
||
|
||
* c-common.c (c_common_get_alias_set): Set the aliasing set of the type
|
||
which is found to be compatible before returning the aliasing set.
|
||
|
||
2004-08-09 Daniel Jacobowitz <dan@debian.org>
|
||
|
||
* ggc-zone.c (struct alloc_zone): Add statistics counters.
|
||
(always_collect): New flag.
|
||
(ggc_alloc_zone_1): Update statistics support. Don't include
|
||
overhead in allocated counter.
|
||
(sweep_pages): Update allocated counter for large pages. Don'y
|
||
include overhead.
|
||
(ggc_collect_1): Always collect.
|
||
(ggc_collect): Honor always_collect flag. Sum all zones to decide
|
||
whether to collect.
|
||
(SCALE, LABEL): New macros.
|
||
(ggc_print_statistics): Add statistics support.
|
||
|
||
2004-08-09 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
|
||
(init_expmed): Fix potential overrun problem with "all.reg".
|
||
(expand_sdiv2_pow2): Add an alternate implementation for signed
|
||
division, if the target provides a suitable conditional move insn.
|
||
|
||
2004-08-09 Paul Brook <paul@codesourcery.com>
|
||
Richard Henderson <rth@redhat.com>
|
||
|
||
* unwind-dw2.c (uw_install_context_1): Update target saved stack
|
||
pointer.
|
||
|
||
2004-08-09 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
|
||
Check DATA limit only if there's no AS limit. Ignore insanely
|
||
low DATA limits.
|
||
(ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
|
||
but take care that the AS limit isn't overrun.
|
||
* doc/invoke.texi: Update documentation of min-heapsize parameter.
|
||
|
||
2004-08-09 Jeff Law <law@redhat.com>
|
||
|
||
* Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
|
||
(tree-ssa-threadupdate.o): Add dependencies.
|
||
* tree-ssa-threadupdate.c: New file.
|
||
* tree-flow.h (incoming_edge_threaded): New flag in block annotation.
|
||
(rewrite_vars_out_of_ssa): Remove prototype.
|
||
(cleanup_tree_cfg): Returns a bool.
|
||
* tree.h (thread_through_all_blocks): Prototype.
|
||
* tree-outof-ssa.c (SSANORM_*): Move into here.
|
||
(remove_ssa_form): Now static.
|
||
(rewrite_vars_out_of_ssa): Kill.
|
||
* tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
|
||
* tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
|
||
(remove_ssa_form, register_partitions_for_vars): Kill declarations.
|
||
* tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
|
||
anything was changed.
|
||
* tree-phinodes.c (add_phi_arg): Get the block for the PHI
|
||
from the PHI's annotation rather than the edge associated with
|
||
the new argument.
|
||
* tree-ssa-dom.c (redirection_edges): Kill.
|
||
(redirect_edges_and_update_ssa_graph): Kill.
|
||
(tree_ssa_dominator_optimize): Do not reset forwardable flag
|
||
for blocks anymore. Do not initialize redirection_edges.
|
||
Call thread_through_all_blocks. Simplify code for cleanup
|
||
of the CFG and iterating. No longer call cleanup_tree_cfg
|
||
outside the iteration loop.
|
||
(thread_across_edge): No longer mess with forwardable blocks.
|
||
|
||
2004-08-09 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* explow.c (memory_address): Use memory_address_p.
|
||
* recog.c (general_operand): Likewise.
|
||
* regrename.c: No need to define REG_OK_STRICT.
|
||
|
||
2004-08-09 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
|
||
New timers.
|
||
* gcse.c: Include timevar.h.
|
||
(const_prop_count, copy_prop_count): Rename to global_const_prop_count
|
||
and global_copy_prop_count.
|
||
(local_const_prop_count, local_copy_prop_count): New static globals.
|
||
(gcse_main): Set the right timevar for each pass.
|
||
(cprop_jump): Increment global_const_prop_count when a constant is
|
||
propagated. Add "GLOBAL" to dump output.
|
||
(cprop_insn): Increment global_const_prop_count when a constant is
|
||
propagated, or global_copy_prop_count when a copy is propagated.
|
||
(do_local_cprop): Likewise for local_const_prop_count and
|
||
local_copy_prop_count.
|
||
(one_cprop_pass): Initialize const/cprop counters to zero.
|
||
Print out results of local and global const/cprop separately.
|
||
(bypass_block): Break over-length line.
|
||
* Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
|
||
for bb-reorder.o and tracer.o.
|
||
|
||
2004-08-09 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* Makefile.in (GTFILES): Remove stmt.c
|
||
(stmt.o): Do not depend on gt-stmt.h.
|
||
* emit-rtl.c (emit_line_note): Do not call
|
||
set_file_and_line_for_stmt.
|
||
* expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
|
||
do everything.
|
||
* function.c (free_after_parsing): Do not free STMT field.
|
||
(allocate_struct_function): Do not call init_stmt_for_function.
|
||
(assign_stack_temp_for_type): Do not accept values of keep
|
||
other than 0 or 1.
|
||
(init_temp_slots): Do not initialize removed variables.
|
||
* function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
|
||
and X_VAR_TEMP_SLOT_LEVEL fields.
|
||
* rtl.h (set_file_and_line_for_stmt): Remove.
|
||
* stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
|
||
struct stmt_status, cond_stack, case_stack, nesting_stack,
|
||
nesting_depth, emit_locus, set_file_and_line_for_stmt,
|
||
same_case_target_p, init_stmt_for_function, emit_nop,
|
||
expand_start_cond, expand_start_elseif, expand_start_else,
|
||
expand_elseif, expand_end_cond): Remove.
|
||
(preserve_subexpressions_p): Remove references to CFUN->STMT.
|
||
(expand_start_case, expand_end_case_type): Remove, merge into...
|
||
(expand_case): ... this one, including other bits from
|
||
expand_expr_real_1. Inline same_case_target_p. Turn members
|
||
of CASE_STACK into local variables.
|
||
(emit_case_bit_tests): Inline same_case_target_p.
|
||
(add_case_node): Add HEAD argument, return new head of the list,
|
||
do not handle default label here.
|
||
* tree.h (expand_start_cond, expand_end_cond, expand_start_else,
|
||
expand_start_elseif, current_nesting_level, expand_start_case,
|
||
expand_end_case_type, expand_end_case, add_case_node,
|
||
init_stmt_for_function, expand_elseif): Remove prototypes.
|
||
(expand_case): Add prototype.
|
||
|
||
2004-08-09 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* expr.c (expand_expr_real_1): Use optab_for_tree_code.
|
||
|
||
2004-08-09 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* expr.c (var_rtx): Remove.
|
||
(expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
|
||
LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
|
||
TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
|
||
Abort.
|
||
(expand_expr_real_1) <COND_EXPR>: Remove most special cases.
|
||
* optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
|
||
* optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
|
||
|
||
2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
|
||
Ayal Zaks <zaks@il.ibm.com>
|
||
|
||
* common.opt (freschedule-modulo-scheduled-loops): New flag.
|
||
* final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
|
||
* modulo-sched.c (sms_schedule): Emit a note to disable scheduling
|
||
when -freschedule-modulo-scheduled-loops flag is not specified.
|
||
(sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
|
||
add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
|
||
More accurate placing of insn in row of partial schedule.
|
||
(ps_insn_find_column): New function.
|
||
* rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
|
||
* sched-rgn.c (sched_is_disabled_for_current_region_p): New.
|
||
(schedule_region): Use sched_is_disabled_for_current_region_p.
|
||
* docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
|
||
|
||
2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_clrmem): Revert the last
|
||
change.
|
||
|
||
2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_clrmem): Properly call
|
||
gen_strset for 64bit target.
|
||
|
||
2004-08-07 Olivier Hainque <hainque@act-europe.fr>
|
||
|
||
* config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
|
||
|
||
2004-08-07 Jason Merrill <jason@redhat.com>
|
||
|
||
Make return in memory explicit.
|
||
* function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
|
||
(assign_parm_find_data_types): Remove code for old front end
|
||
invisible reference handling.
|
||
(assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
|
||
(expand_function_end): Likewise.
|
||
* gimplify.c (gimplify_return_expr): Handle a dereferenced
|
||
RESULT_DECL.
|
||
* tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
|
||
(declare_return_variable): Handle DECL_BY_REFERENCE.
|
||
* cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
|
||
(cp_genericize_r): Use convert_from_reference.
|
||
Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
|
||
(cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
|
||
|
||
* c-common.c (c_warn_unused_result): Check TREE_USED before
|
||
warning about a CALL_EXPR with an unused value.
|
||
|
||
2004-08-06 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
|
||
to the compiler. Use -fshort-wchar by default.
|
||
|
||
2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
|
||
* cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
|
||
threshhold.
|
||
* doc/invoke.texi (param): Document min-crossjump-insns.
|
||
|
||
2004-08-06 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
PR c/13282
|
||
* c.opt (Wmissing-field-initializers): New option.
|
||
* c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
|
||
* c-typeck.c (pop_init_level): Guard the missing field warning with
|
||
warn_missing_field_initializers rather than extra_warnings.
|
||
* doc/invoke.texi (-Wmissing-field-initializers): Document, moving
|
||
some of the explanation from...
|
||
(-Wextra): ...here. Say that the missing field warning can be
|
||
seperately controlled by -Wmissing-field-initializers.
|
||
|
||
2004-08-06 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
|
||
* tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
|
||
* tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
|
||
* tree.def (ENTRY_VALUE_EXPR): Remove.
|
||
|
||
2004-08-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
|
||
the places where it is actually needed. Don't use repz; stosb
|
||
for -Os with sufficiently small constant sizes.
|
||
For sufficiently small repz; stos{l,q} repeat counts use a sequence
|
||
of stos{l,q} instructions instead.
|
||
|
||
2004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
PR tree-optimization/16807
|
||
* loop-iv.c (dump_iv_info): Dump invariants correctly.
|
||
(iv_subreg, iv_extend): Express value of invariant purely in
|
||
base field.
|
||
|
||
2004-08-06 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
|
||
(CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
|
||
|
||
2004-08-06 Roman Zippel <zippel@linux-m68k.org>
|
||
|
||
* config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
|
||
* config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
|
||
pre_dec_operand.
|
||
* config/m68k/m68k.md (zero_extend*2): delay the splitting of the
|
||
pattern until reload is finished to allow better code generation
|
||
and split them completely into separate instrunctions.
|
||
(*andsi3_split): New pattern.
|
||
|
||
2004-08-05 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* tree.c (handle_dll_attribute): Move here from i383/winnt.c.
|
||
Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
|
||
DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
|
||
* tree.h (handle_dll_attribute): Declare. Test
|
||
TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
|
||
* c-common.h (c_determine_visibility): Declare.
|
||
* c-common.c (c_determine_visibility): New function.
|
||
* c-decl.c (finish_decl): Use it.
|
||
(finish_function): Likewise.
|
||
* defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
|
||
zero, by default. Use #if, not #ifdef, to test it.
|
||
* config/arm/arm.c (arm_attribute_table): Use
|
||
handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
|
||
#if.
|
||
* config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
|
||
* config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
|
||
to 1.
|
||
* config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
|
||
* config/i386/i386.c (ix86_attribute_table): Use
|
||
handle_dll_attribute for dllimport/dllexport. Test
|
||
TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
|
||
* config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
|
||
* config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
|
||
it to 1.
|
||
* config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
|
||
with #if.
|
||
* config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
|
||
it to 1.
|
||
* doc/extend.texi (dllexport): Clarify and correct documentation.
|
||
(dllimport): Likewise.
|
||
* doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
|
||
handle_dll_attribute.
|
||
|
||
2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
* tree-ssa-loop-manip.c: New file.
|
||
* Makefile.in (tree-ssa-loop-manip.o): Add.
|
||
* tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
|
||
Declare.
|
||
* tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
|
||
form.
|
||
(tree_ssa_loop_done): Verify loop closed ssa form.
|
||
* tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
|
||
|
||
2004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
|
||
pa_asm_output_aligned_local): New functions.
|
||
* pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
|
||
pa_asm_output_aligned_common and pa_asm_output_aligned_local.
|
||
* pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
|
||
pa_asm_output_aligned_common.
|
||
(ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
|
||
* pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
|
||
(ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
|
||
(ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
|
||
* pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
|
||
(ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
|
||
(ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
|
||
* som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
|
||
common data.
|
||
|
||
2004-08-05 Andrew Pinski <apinski@apple.com>
|
||
|
||
* objc/objc-act.c (build_objc_string_object): Mark the address
|
||
expression as constant.
|
||
|
||
2004-08-05 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
|
||
and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
|
||
SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
|
||
|
||
2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* config/linux.h, config/i386/linux.h, config/sparc/linux.h:
|
||
Remove definitions conditioned on USE_GNULIBC_1 or conditioned
|
||
out, and associated obsolete comments.
|
||
|
||
2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* tree.h (force_fit_type): Return a tree, take three flags.
|
||
* fold-const.c (force_fit_type): Set TREE_OVERFLOW and
|
||
TREE_CONSTANT_OVERFLOW here.
|
||
(int_const_binop, const_binop): Adjust.
|
||
(size_int_type): Do sign extension here.
|
||
(fold_convert_const, optimize_bit_field_compare,
|
||
decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
|
||
fold_negate_const, fold_abs_const, fold_not_const): Adjust.
|
||
* tree.c (size_in_bytes, int_fits_type_p): Adjust.
|
||
|
||
2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
PR tree-optimization/16864
|
||
* tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
|
||
for ssa names without default_def.
|
||
|
||
2004-08-05 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_prologue): If the function uses a
|
||
frame pointer, restore eax with an ebp-relative address.
|
||
|
||
2004-08-04 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
PR 14516
|
||
* c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
|
||
* c-common.h (make_rtl_for_local_static): Delete.
|
||
* c-decl.c (shadow_tag_warned): Clean up comment.
|
||
(finish_decl): Clean up spacing. Use set_user_assembler_name when
|
||
appropriate. Don't pass asmspec to rest_of_decl_compilation.
|
||
* c-semantics.c (make_rtl_for_local_static): Delete.
|
||
* expr.c (init_block_move_fn): Use set_user_assembler_name.
|
||
(init_block_clear_fn): Likewise.
|
||
* passes.c (rest_of_decl_compilation): Remove asmspec parameter,
|
||
expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
|
||
* toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
|
||
* tree.h (make_decl_rtl): Remove second parameter.
|
||
(set_user_assembler_name): New.
|
||
* varasm.c (set_user_assembler_name): New.
|
||
(make_decl_rtl): Remove second parameter. Update callers in many
|
||
files.
|
||
|
||
2004-08-05 Adam Nemet <anemet@lnxw.com>
|
||
|
||
* config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
|
||
(case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
|
||
to LynxOS 4.0.
|
||
* gthr-lynx.h: New file.
|
||
* config/lynx-ng.h: Remove file.
|
||
* config/lynx.h: Update to LynxOS 4.0.
|
||
* config/t-lynx: New file.
|
||
* config/i386/lynx-ng.h: Remove file.
|
||
* config/i386/lynx.h: Update to LynxOS 4.0.
|
||
* config/rs6000/lynxbase.h: Remove file.
|
||
* config/rs6000/lynx.h: Update to LynxOS 4.0.
|
||
* config/rs6000/t-lynx: New file.
|
||
* doc/install.texi (Options specification): Remove reference to
|
||
LynxOS from systems where --with-gnu-as makes a difference.
|
||
|
||
2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
|
||
__UINTMAX_TYPE__.
|
||
* c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
|
||
__INTMAX_MAX__.
|
||
(c_cpp_builtins): Call it.
|
||
* doc/cpp.texi: Update.
|
||
|
||
2004-08-04 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
|
||
cost.
|
||
|
||
2004-08-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
* basic-block.h (profile_staus): New global variable.
|
||
* cfg.c (profile_status): Declare.
|
||
(check_bb_profile): Break out from ....; use profile_status
|
||
(dump_flow_info): ... here.
|
||
* cfgbuild.c (find_basic_blocks): Set profile_status.
|
||
* cfgexpand.c (tree_expand_cfg): Likewise.
|
||
* predict.c (estimate_probability): Likewise.
|
||
* profile.c (branch_prob): Likewise.
|
||
* tree-cfg.c (build_tree_cfg): Likewise.
|
||
(dump_function_to_file): Use check_bb_profile.
|
||
* tree-pretty-print (dump_bb_header): Likewise.
|
||
* tree-profile.c (do_tree_profiling): Cleanup.
|
||
|
||
2004-08-04 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* Makefile.in (RTL_BASE_H, RTL_H): Correct.
|
||
(BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
|
||
(genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
|
||
(read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
|
||
(genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
|
||
(genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
|
||
(genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
|
||
(ggc-none.o, errors.o): Move rule to generators section;
|
||
correct dependencies.
|
||
(min-insn-modes.o): Move rule to generators section; remove
|
||
unnecessary explicit command; correct dependencies.
|
||
(print-rtl.o, print-rtl1.o): Correct dependencies.
|
||
($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
|
||
(mostlyclean): Update.
|
||
|
||
* errors.c: Include bconfig.h not config.h. Correct comment.
|
||
* gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
|
||
* ggc-none.c: Include bconfig.h; not config.h or tm.h.
|
||
* print-rtl.c: Don't include tm_p.h.
|
||
|
||
* rtl.h: Move forward-decl of struct function down where it's
|
||
needed. Include genrtl.h #ifndef GENERATOR_FILE, not
|
||
#ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
|
||
|
||
2004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
Jeff Law <law@redhat.com>
|
||
|
||
* tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
|
||
* tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
|
||
* tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
|
||
manipulate the duplicated ssa names.
|
||
* tree-ssanames.c (ssa_names_to_rewrite): New variable.
|
||
(marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
|
||
unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
|
||
New functions.
|
||
(release_ssa_name): Do not release ssa names that may have multiple
|
||
definitions.
|
||
* tree.h (release_ssa_name_force, mark_for_rewrite,
|
||
unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
|
||
marked_ssa_names): Declare.
|
||
* tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
|
||
(duplicate_blocks): Remove call to mark_defs_for_rewrite.
|
||
Update call to rewrite_ssa_into_ssa.
|
||
|
||
2004-08-04 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* defaults.h (TARGET_DECLSPEC): New macro.
|
||
* c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
|
||
* config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
|
||
* config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
|
||
* config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
|
||
__declspec support.
|
||
(TARGET_DECLSPEC): Define.
|
||
* config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
|
||
__declspec support.
|
||
* config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
|
||
__declspec support.
|
||
(TARGET_DECLSPEC): Define.
|
||
* config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
|
||
__declspec support.
|
||
* config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
|
||
support.
|
||
* doc/tm.texi (TARGET_DECLSPEC): Document.
|
||
|
||
* doc/extend.texi: Fix typo in comment.
|
||
|
||
2004-08-04 Paul Brook <paul@codesourcery.com>
|
||
|
||
* target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
|
||
(TARGET_CXX): Use it.
|
||
* target.h (struct gcc_target): Add cdtor_returns_this.
|
||
* config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
|
||
(TARGET_CXX_CDTOR_RETURNS_THIS): Define.
|
||
* doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
|
||
|
||
2004-08-03 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
|
||
low/high pair. Do range checking directly.
|
||
(interpret_integer): Adjust.
|
||
|
||
2004-08-04 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
|
||
GCC ABI.
|
||
* doc/invoke.texi: Document this new switch and also the -mrenesas
|
||
switch.
|
||
|
||
2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* cfglayout.c (insn_locators_initialize): Update the current
|
||
location before initializing a location.
|
||
|
||
2004-08-03 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
|
||
(dbxout_function_end): Return after emitting the "Lscope" symbol
|
||
under the same conditions that this function formerly wasn't called.
|
||
Add explanatory comments.
|
||
|
||
PR 14860
|
||
* c-decl.c (record_builtin_type): Call debug_hooks->type_decl
|
||
on the new decl.
|
||
|
||
PR 13956
|
||
* dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
|
||
functions, broken out of dbxout_block.
|
||
(dbxout_block): The block at depth 0 should get LBRAC/RBRAC
|
||
stabs too, if it contains symbols. Use the begin_label and
|
||
the Lscope label (emitted by dbxout_function_end) for the
|
||
range of this block.
|
||
|
||
2004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
|
||
|
||
* doc/install.texi: Update autoconf version requirements.
|
||
|
||
2004-08-03 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
|
||
* recog.c (general_operand, immediate_operand, nonmemory_operand)
|
||
(asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
|
||
* regclass.c (record_reg_classes): Likewise.
|
||
* reload.c (find_reloads): Likewise.
|
||
* reload1.c (reload): Likewise.
|
||
|
||
2004-08-03 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* gensupport.c (init_md_reader_args_cb): Renamed from
|
||
init_md_reader_args. Add third option, callback function for
|
||
parsing program-specific options. Add diagnosis of incorrect
|
||
number of input files.
|
||
(init_md_reader): Fold into init_md_reader_args_cb.
|
||
(init_md_reader_args): Now a thin wrapper around
|
||
init_md_reader_args_cb.
|
||
* gensupport.h: Update prototypes.
|
||
|
||
* genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
|
||
* genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
|
||
* genrecog.c: No need to diagnose lack of an input file;
|
||
init_md_reader_args will handle it.
|
||
* genconditions.c: Likewise, and use init_md_reader_args.
|
||
* genconstants.c: Likewise, and no need to call read_md_rtx.
|
||
|
||
2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-decl.c (implicitly_declare): Diagnose incompatible implicit
|
||
declarations.
|
||
|
||
2004-08-03 Mike Stump <mrs@apple.com>
|
||
|
||
* config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
|
||
for frameworks.
|
||
* doc/invoke.texi (Darwin Options): Update to reflect above.
|
||
|
||
2004-08-03 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/16790
|
||
* fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
|
||
truncations, not just global truncations.
|
||
|
||
2004-08-03 Andrew Pinski <apinski@apple.com>
|
||
|
||
PR bootstrap/16865
|
||
* loop-iv.c (simplify_using_assignment): Initialize lhs.
|
||
|
||
2004-08-03 Paul Brook <paul@codesourcery.com>
|
||
|
||
* gcc/doc/install.texi: Document MPFR requirement.
|
||
|
||
2004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
|
||
|
||
* aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
|
||
and mmap() explicitly instead of relying on preset autoconf cache
|
||
variables.
|
||
* configure: Regenerate.
|
||
|
||
2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/16570
|
||
* config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
|
||
to tmake_file.
|
||
(i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
|
||
(i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
|
||
to tmake_file.
|
||
|
||
* config/i386/t-gmm_malloc: New file.
|
||
* config/i386/t-pmm_malloc: Likewise.
|
||
|
||
* config/i386/xmmintrin.h: Include <mm_malloc.h>.
|
||
|
||
2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
|
||
Tanguy Fautr<74> <tfautre@pandora.be>
|
||
|
||
* config/i386/pmm_malloc.h: New file.
|
||
|
||
2004-08-03 Danny Smith <dannysmith@users.sourceforge.net>
|
||
|
||
* config/i386/gmm_malloc.h: New file.
|
||
|
||
2004-08-03 Dale Johannesen <dalej@apple.com>
|
||
|
||
* config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs.
|
||
* c-common.c: Include opts.h.
|
||
(c_common_get_alias_set): Fix check for a single input file.
|
||
* toplev.c: Remove current_file_decl.
|
||
* tree.h: Ditto.
|
||
|
||
2004-08-03 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* config.gcc (arm*-*-symbianelf*): New target.
|
||
* config/arm/symbian.h: New file.
|
||
|
||
* gthr-gnat.c: Add visibility #pragmas.
|
||
* gthr-gnat.h : Likewise.
|
||
* gthr.h: Likewise.
|
||
* libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
|
||
(__ffsDI2): Likewise.
|
||
(__clzSI2): Likewise.
|
||
(__ctzSI2): Likewise.
|
||
(__ctzDI2): Likewise.
|
||
(__popcountSI2): Likewise.
|
||
(__popcountDI2): Likewise.
|
||
(__paritySI2): Likewise.
|
||
(__parityDI2): Likewise.
|
||
* libgcc2.h: Add visibility #pragmas.
|
||
(__clzDI2): Add prototype.
|
||
(__clzSI2): Likewise.
|
||
(__ctzSI2): Likewise.
|
||
(__ffsDI2): Likewise.
|
||
(__ffsSI2): Likewise.
|
||
(__ctzDI2): Likewise.
|
||
(__popcountSI2): Likewise.
|
||
(__popcountDI2): Likewise.
|
||
(__paritySI2): Likewise.
|
||
(__parityDI2): Likewise.
|
||
* unwind-dw2-fde.h: Add visibility #pragmas.
|
||
* unwind.h: Likewise.
|
||
|
||
2004-08-03 David Edelsohn <edelsohn@gnu.org>
|
||
Dale Johannesen <dalej@apple.com>
|
||
Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
|
||
constants more accurately. Adjust costs for FMA instructions.
|
||
Add cases for most logical and float operations. Recurse into
|
||
most operands.
|
||
|
||
2004-08-03 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
|
||
|
||
2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* ra-build.c (conflicts_between_webs): For webs that cross a call add
|
||
conflicts to regs_invalidated_by_call.
|
||
|
||
2004-08-03 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
|
||
|
||
2004-08-03 Jan Hubicka <jh@suse.cz>
|
||
|
||
* coverage.c (tree_coverage_counter_ref): Fix computation of the new
|
||
ARRAY_REF argument.
|
||
|
||
2004-08-03 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm-cores.def: Sort by architecture. Add arm946es, arm966es,
|
||
arm968es, arm10e, arm1020e, arm1022e.
|
||
* invoke.texi: Update list of ARM cores.
|
||
* arm-tune.md: Regenerate.
|
||
|
||
2004-08-03 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm/gentune.sh: New file.
|
||
* arm/t-arm: New file.
|
||
* arm/arm-tune.md: New file (autogenerated).
|
||
* config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
|
||
* arm.md (attribute tune): Delete. Include arm-tune.md.
|
||
|
||
2004-08-03 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* gcc.c (add_prefix, add_sysrooted_prefix): Remove
|
||
penultimate parameter. All callers adjusted.
|
||
(struct prefix_list): Remove used_flag_ptr.
|
||
(find_a_file): Do not set *pl->used_flag_ptr.
|
||
(warn_B, warn_std_ptr): Remove.
|
||
|
||
2004-08-03 Yossi Markovich <yossim@il.ibm.com>
|
||
Mostafa Hagog <mustafa@il.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
|
||
|
||
2004-08-02 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (output_call_frame_info): Don't change data format
|
||
due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local
|
||
label. Use 'true' not '1'.
|
||
* doc/install.texi (powerpc-*-darwin*): Mention cctools version
|
||
required.
|
||
|
||
2004-08-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
|
||
|
||
* gdbinit.in: Reflect previous changes to rtunion_def.
|
||
|
||
2004-08-02 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
|
||
-> "X % Y" is only valid for TRUNC_MOD_EXPR.
|
||
|
||
2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
|
||
vec_p_reserve.
|
||
* langhooks.h (lang_hooks::builtin_function): Rename parameter
|
||
from "class" to "bt_class".
|
||
|
||
2004-08-02 Paul Brook <paul@codesourcery.com>
|
||
|
||
PR rtl-optimization/15068
|
||
* flow.c (init_propagate_block_info): Check condition is reversible.
|
||
|
||
2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* gengtype.h (options::info): Change type to const char *.
|
||
(enum gc_used_enum): Move out of struct type scope.
|
||
* gengtype.c (create_option): Convert initializer for option::info to
|
||
appropiate type.
|
||
(adjust_field_type, walk_type, write_func_for_structure,
|
||
write_root, write_roots): Remove pointless cast.
|
||
|
||
2004-08-02 J"orn Rennecke <joern.rennecke@superh.com>
|
||
|
||
* genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
|
||
|
||
2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* rtl.h (union rtunion_def): Have all members start with the
|
||
prefix "rt_".
|
||
(XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
|
||
X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
|
||
X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
|
||
XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
|
||
access.
|
||
* gengtype.c (adjust_field_rtx_def): Likewise.
|
||
* rtlanal.c (loc_mentioned_in_p): Likewise.
|
||
|
||
2004-08-02 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
|
||
Replace uses of mips/elf64.h with mips/elf.h
|
||
* config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
|
||
(TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
|
||
(ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
|
||
(MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
|
||
(HANDLE_SYSV_PRAGMA): Delete.
|
||
(ASM_OUTPUT_DEF): Fix formatting.
|
||
* config/mips/elf64.h: Delete.
|
||
|
||
2004-08-01 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* config/ia64/ia64.c (got_symbolic_operand): Do require a
|
||
symbol+offset operand to have its offset be zero mod 0x3fff
|
||
when GOT entries are in use. Clarify logic in SYMBOL_REF
|
||
case. Clarify comments.
|
||
(ia64_expand_load_address): Split a symbol+offset load when
|
||
the offset is nonzero mod 0x3fff, not 0x1fff.
|
||
|
||
2004-08-01 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
|
||
if trying to *store* to a non-offsettable address.
|
||
* config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
|
||
a nonoffsettable address.
|
||
(movdi_internal32): Don't move GPRs to a nonoffsettable address.
|
||
Clean up.
|
||
(movti_string): Don't move GPRs to a nonoffsettable address.
|
||
(movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
|
||
|
||
2004-08-02 Ben Elliston <bje@au.ibm.com>
|
||
|
||
PR target/16155
|
||
* config/rs6000/altivec.h: Replace typeof with __typeof__.
|
||
|
||
2004-08-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
|
||
variable sized types.
|
||
|
||
2004-08-01 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* doc/invoke.texi: In the MIPS options section, remove the passage
|
||
saying that -mexplicit-relocs is usually disabled for -mabicalls
|
||
-fno-unit-at-a-time.
|
||
* config/mips/mips.c (override_options): Remove the code that enforced
|
||
this rule.
|
||
|
||
2004-08-01 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.md (cprestore): Provide two alternatives, one for
|
||
an in-range offset and one for an out-of-range offset. Wrap the latter
|
||
in .set macro/.set nomacro if it's inside a .set nomacro block.
|
||
|
||
2004-08-01 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips-protos.h (mips_gp_save_slot): Remove.
|
||
(mips_restore_gp): Declare.
|
||
* config/mips/mips.c (mips_add_offset): Add a scratch register
|
||
argument. Reimplement in rtl only, reusing MIPS16 logic from
|
||
mips_output_mi_thunk.
|
||
(mips_legitimize_address, mips_legitimize_const_move): Adjust calls
|
||
to mips_add_offset.
|
||
(mips_gp_save_slot): Delete.
|
||
(mips_restore_gp): New function.
|
||
(mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
|
||
* config/mips/mips.md (exception_receiver): Turn into a
|
||
define_insn_and_split. Use mips_restore_gp to do the split.
|
||
(call_internal, call_value_internal, call_value_multiple_internal): Use
|
||
mips_restore_gp to restore $gp.
|
||
|
||
2004-07-31 Andrew Pinski <apinski@apple.com>
|
||
|
||
PR other/16842
|
||
* mkheaders.in (libsubdir): s/gcc-lib/gcc/.
|
||
|
||
2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-decl.c (diagnose_mismatched_decls): Give error for external
|
||
redeclaration of identifier declared with no linkage, not just
|
||
warning with -Wtraditional. Do not check DECL_CONTEXT to give
|
||
error for redeclaration with no linkage.
|
||
|
||
2004-07-30 Geoffrey Keating <geoffk@apple.com>
|
||
Fariborz Jahanian <fjahanian@apple.com>
|
||
|
||
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
|
||
non-offsettable addresses even for DImode.
|
||
(rs6000_split_multireg_move): Cope with non-offsettable addresses
|
||
being moved into multiple GPRs.
|
||
|
||
* config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
|
||
to 64.
|
||
(rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
|
||
* config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
|
||
to 128.
|
||
* config/rs6000/darwin-ldouble.c (isless): New macro.
|
||
(inf): New macro.
|
||
(nonfinite): New macro.
|
||
(FPKINF): Delete.
|
||
(_xlqadd): Completely rewrite.
|
||
(_xlqmul): Correct overflow handling.
|
||
(_xlqdiv): Correct overflow handling.
|
||
* config/rs6000/darwin-ldouble-format: New file.
|
||
|
||
2004-07-30 Roger Sayle <roger@eyesopen.com>
|
||
Richard Henderson <rth@redhat.com>
|
||
|
||
* config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
|
||
9 into the equivalent lea instruction.
|
||
|
||
2004-07-30 Richard Henderson <rth@redhat.com>
|
||
|
||
* gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
|
||
with DECL_INITIAL if fb_lvalue.
|
||
* tree-gimple.c (is_gimple_id): Add CONST_DECL.
|
||
* tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
|
||
with <Cxxx>.
|
||
* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
|
||
|
||
2004-07-30 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
|
||
pointer escapes through a function call, assume that the
|
||
callee will dereference it.
|
||
(add_pointed_to_var): Assume that VALUE is always an
|
||
ADDR_EXPR.
|
||
(collect_points_to_info_r): Only call add_pointed_to_var if
|
||
the value is an ADDR_EXPR.
|
||
|
||
2004-07-30 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-alias.c (create_alias_map_for): Do not get the
|
||
alias set of the inner type of ARRAY_TYPEs.
|
||
|
||
2004-07-29 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-ccp.c (visit_assignment): Move code to prevent
|
||
setting a non-register to UNDEFINED right before the call to
|
||
set_lattice_value.
|
||
|
||
2004-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
|
||
|
||
2004-07-29 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa.c (verify_flow_sensitive_alias_info): When
|
||
comparing points-to sets of different pointers, make sure the
|
||
second pointer is actually referenced in the code.
|
||
|
||
2004-07-29 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* config/ia64/ia64.c (setjmp_operand): Delete, unused.
|
||
(got_symbolic_operand): Remove unreachable code.
|
||
* config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
|
||
setjmp_operand; add entry for tls_symbolic_operand.
|
||
* config/ia64/ia64-protos.h: Remove all prototypes of
|
||
predicate functions.
|
||
|
||
2004-07-29 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* c-common.h (lang_post_pch_load): New variable.
|
||
* c-pch.c (lang_post_pch_load): Define it.
|
||
(c_common_read_pch): Use it.
|
||
* cgraphunit.c (record_call_1): Give the front end a chance to
|
||
record additional needed entities when a variable is marked as
|
||
needed.
|
||
* tlink.c (recompile_files): Robustify.
|
||
(scan_linker_output): If a symbol is assigned to a file,
|
||
but after recompilation is not present there, issue an error
|
||
message.
|
||
|
||
2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
* tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
|
||
Take orig_loop argument and pass it to set_level.
|
||
(schedule_sm): Pass the correct orig_loop to force_move_till.
|
||
|
||
2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
* cfgloop.c (update_latch_info): Update dominator of the new block.
|
||
(canonicalize_loop_headers, flow_loops_find): Do not free dominance
|
||
info.
|
||
* dominance.c (verify_dominators): Check that the dominance tree is
|
||
connected.
|
||
(recount_dominator): Ignore unreachable blocks.
|
||
(iterate_fix_dominators): Cleanup old dominance information before
|
||
recomputing it.
|
||
|
||
2004-07-29 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-operands.c (get_expr_operands): Revert changes
|
||
to ADDR_EXPR processing introduced by:
|
||
2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
* tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
|
||
|
||
2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* doc/implement-c.texi: Add C90 subclause references. Point to
|
||
preprocessor documentation instead of duplicating it. Add points
|
||
only present in C90. Fill in documentation for all points.
|
||
|
||
2004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.c (output_movb): Correct typo.
|
||
|
||
2004-07-29 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* ra.h (single_reg_in_regclass): Declare.
|
||
* ra.c (single_reg_in_regclass): Define.
|
||
(first_hard_reg): New.
|
||
(init_ra): Initialize single_reg_in_regclass.
|
||
* ra-colorize.c (ok_class): New.
|
||
(coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
|
||
|
||
2004-07-29 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* gcov-io.h: Allow zero tag as EOF indicator.
|
||
(gcov_is_eof): Remove.
|
||
(gcov_truncate): Remove.
|
||
* gcov-io.c (gcov_seek): Always SEEK_SET.
|
||
* libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit
|
||
EOF tag.
|
||
* coverage.c (read_counts_file): Don't use gcov_is_eof.
|
||
* gcov-dump.c (dump_file): Likewise.
|
||
* gcov.c (read_graph_file, read_count_file): Likewise.
|
||
|
||
* c-decl.c (complete_array_type): Don't gratuitously copy
|
||
maxindex. Check it always has a type.
|
||
|
||
2004-07-29 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* rtl.c (currently_expanding_to_rtl): New.
|
||
* rtl.h (currently_expanding_to_rtl): Export it.
|
||
* cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
|
||
|
||
* config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
|
||
inliner hack.
|
||
* config/sh/sh.c: Replace rtx_equal_function_value_matters
|
||
with currently_expanding_to_rtl.
|
||
* config/sh/sh.md: Likewise.
|
||
* config/ia64/ia64.c (got_symbolic_operand): Likewise.
|
||
|
||
2004-07-29 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
Introduce sh2a support.
|
||
2004-07-29 Alexandre Oliva <aoliva@redhat.com>
|
||
* config.gcc: Build multilibs for sh2a and sh2a-single by
|
||
default.
|
||
* config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
|
||
default. Split their tests out of the corresponding SH4
|
||
multilibs.
|
||
* config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
|
||
multilibs for SH2a.
|
||
2004-07-28 Alexandre Oliva <aoliva@redhat.com>
|
||
* config.gcc: Handle sh2a multilibs and cpu selection.
|
||
* config/sh/sh.h: Likewise. Handle sh2a command line flags.
|
||
* config/sh/t-mlib-sh2a: New.
|
||
* config/sh/t-mlib-sh2a-nofpu: New.
|
||
* config/sh/t-mlib-sh2a-single: New.
|
||
* config/sh/t-mlib-sh2a-single-only: New.
|
||
2004-07-09 Nick Clifton <nickc@redhat.com>
|
||
Issue 43400
|
||
* config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
|
||
-ml and -m2a are used together.
|
||
2004-03-23 DJ Delorie <dj@redhat.com>
|
||
* config/sh/sh.c (sh_builtin_saveregs): Use the double code only
|
||
when we have a double-sized FPU.
|
||
2004-02-24 Corinna Vinschen <vinschen@redhat.com>
|
||
* config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
|
||
is set.
|
||
* config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
|
||
-msh2a-single and -msh2a-single-only
|
||
2004-02-24 Corinna Vinschen <vinschen@redhat.com>
|
||
* config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
|
||
is set.
|
||
2004-02-20 DJ Delorie <dj@delorie.com>
|
||
* config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
|
||
2004-02-20 Fred Fish <fnf@redhat.com>,
|
||
Corinna Vinschen <vinschen@redhat.com>
|
||
* config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
|
||
(MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
|
||
2004-02-18 DJ Delorie <dj@redhat.com>
|
||
* config/sh/sh.c (broken_move): Add support for movi20.
|
||
* config/sh/sh.h: Likewise.
|
||
(SHIFT_COUNT_TRUNCATED): Set for sh2a.
|
||
* config/sh/sh.md (udivsi3_sh2a): New.
|
||
(udivsi3): Call it.
|
||
(divsi3_sh2a): New.
|
||
(divsi3): Call it.
|
||
(mul_r): New.
|
||
(ashlsi3_sh2a): New.
|
||
(ashrsi3_sh2a): New.
|
||
(lshrsi3_sh2a): New.
|
||
(movsi_i): Disable for sh2a.
|
||
(movsi_ie): Add movi20.
|
||
(movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
|
||
sh2a, for -m2a-nofpu mode.
|
||
2004-02-13 DJ Delorie <dj@redhat.com>
|
||
* config/sh/lib1funcs.asm: Handle double vs single better.
|
||
* config/sh/sh.h: Likewise.
|
||
2004-02-09 DJ Delorie <dj@redhat.com>
|
||
* config/sh/crt1.asm: Add support for sh2a.
|
||
* config/sh/elf.h: Likewise.
|
||
* config/sh/lib1funcs.asm: Likewise.
|
||
* config/sh/sh.c: Likewise.
|
||
* config/sh/sh.md: Likewise.
|
||
* config/sh/sh.h: Likewise.
|
||
* config/sh/t-sh: Likewise.
|
||
|
||
2004-07-28 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* config/frv/frv.md (movqi_internal, movhi_internal,
|
||
movsi_internal): Add backup alternatives for memory inputs.
|
||
|
||
2004-07-28 Matt Austern <austern@apple.com>
|
||
|
||
* config/darwin.c (darwin_one_byte_bool): New global variable.
|
||
* config/darwin.h (darwin_one_byte_bool): Declare.
|
||
(SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.)
|
||
* config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
|
||
value of darwin_one_byte_bool.
|
||
* doc/invoke.texi: Document -mone-byte-bool flag.
|
||
|
||
2004-07-28 Eric Christopher <echristo@redhat.com>
|
||
|
||
* c-common.c (c_common_unsafe_for_reeval): Delete.
|
||
* c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
|
||
* c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
|
||
* calls.c (fix_unsafe_tree): Delete.
|
||
(expand_call): Delete code which used above.
|
||
* dojump.c (do_jump): Delete UNSAVE_EXPR case.
|
||
* expr.c (expand_expr_real_1): Ditto.
|
||
* fold-const.c (non_lvalue): Ditto.
|
||
* langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
|
||
(lhd_unsafe_for_reeval): Ditto.
|
||
* langhooks.c (lhd_unsafe_for_reeval): Ditto.
|
||
* langhooks.h (unsafe_for_reeval): Ditto.
|
||
(unsave_expr_now): Adjust comment.
|
||
* tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
|
||
(estimate_num_insns_1): Ditto.
|
||
* tree-pretty-print.c (dump_generic_node): Ditto.
|
||
* tree.c (expr_align): Ditto.
|
||
(unsave_expr): Delete.
|
||
(unsafe_for_reeval): Ditto.
|
||
* tree.h (unsafe_for_reeval, unsave_expr): Ditto.
|
||
* tree.def (UNSAVE_EXPR): Delete.
|
||
* objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
|
||
|
||
2004-07-28 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* tree.h (enum tls_model): Move ...
|
||
* coretypes.h: ... here.
|
||
|
||
2004-07-28 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/frv/frv.h (EPILOGUE_USES): New. Use LR.
|
||
|
||
2004-07-28 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* cse.c (validate_canon_reg): New function, split out from...
|
||
(canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'.
|
||
|
||
2004-07-28 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-alias.c (maybe_create_global_var): Don't just
|
||
return if .GLOBAL_VAR has been created.
|
||
|
||
2004-07-28 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa.c (verify_flow_insensitive_alias_info): Process
|
||
every variable that may have aliases, not just tags.
|
||
|
||
2004-07-28 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
|
||
move_from_CR_eq_bit.
|
||
Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
|
||
|
||
|
||
* config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
|
||
e500_flip_eq_bit.
|
||
|
||
* config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
|
||
output_e500_flip_eq_bit.
|
||
|
||
* config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
|
||
output_e500_flip_eq_bit.
|
||
(rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
|
||
output_e500_flip_eq_bit.
|
||
Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
|
||
(print_operand): case D. Get to EQ bit.
|
||
|
||
2004-07-28 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* gcov.c (function_summary): Add missing \n.
|
||
|
||
2004-07-28 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
Introduce sh4a support.
|
||
* config.gcc: Handle sh4a multilibs and cpu selection.
|
||
* config/sh/sh.h: Likewise. Handle sh4a command line flags.
|
||
* config/sh/t-mlib-sh4a: New.
|
||
* config/sh/t-mlib-sh4al: New.
|
||
* config/sh/t-mlib-sh4a-nofpu: New.
|
||
* config/sh/t-mlib-sh4a-single: New.
|
||
* config/sh/t-mlib-sh4a-single-only: New.
|
||
2004-02-20 DJ Delorie <dj@redhat.com>
|
||
* config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
|
||
* config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
|
||
2003-08-22 Eric Christopher <echristo@redhat.com>
|
||
* config/sh/sh4a.md: Update for chip errata.
|
||
2003-08-07 Eric Christopher <echristo@redhat.com>
|
||
* config/sh/sh4a.md: New file. sh4a processor description.
|
||
2003-07-08 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description
|
||
of -m4a-nofpu.
|
||
(SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
|
||
* config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
|
||
* doc/invoke.texi (SH Options): Document -m4al.
|
||
2003-07-03 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/sh/sh.c (expand_block_move): Remove commented-out code
|
||
checked in by mistake.
|
||
(sh_cannot_change_mode_class): Enable SUBREGs to be used to select
|
||
single elements from SFmode vectors.
|
||
* config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
|
||
register.
|
||
(sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
|
||
2003-07-01 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
|
||
sh_fsca_int2sf): Remove variable declarations.
|
||
* config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
|
||
sh_fsca_int2sf): New functions.
|
||
(sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
|
||
sh_fsca_int2sf_rtx): New static variables.
|
||
* config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
|
||
sh_fsca_int2sf): Declare.
|
||
* config/sh/sh.md: Adjust.
|
||
* doc/invoke.texi (SH Options): Document new options.
|
||
* config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
|
||
compatibility from SH4 code.
|
||
2003-06-27 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/sh/sh.c (expand_block_move): Don't emit POST_INC too
|
||
early.
|
||
(memory_movsrc_operand): Renamed to...
|
||
(unaligned_load_operand): ... this. Simplified.
|
||
* config/sh/sh.h (PREDICATE_CODES): Adjust.
|
||
* config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's
|
||
input operand to SImode, and adjust the others. Introduce
|
||
post-increment by peephole.
|
||
* config/sh/sh.c (expand_block_move): Give the target address the
|
||
same mode as the temp reg.
|
||
* config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
|
||
copying.
|
||
2003-06-26 Alexandre Oliva <aoliva@redhat.com>
|
||
Introduce support for SH4a.
|
||
* config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
|
||
__SH4A__. Emit 4 4kb blocks and touch all of them otherwise.
|
||
* config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
|
||
sh_fsca_int2sf): New.
|
||
(sh_init_builtins): Initialize them.
|
||
(print_operand): Support `d'.
|
||
(expand_block_move): Use movua if src is misaligned.
|
||
(memory_movsrc_operand): New.
|
||
* config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
|
||
and one of the SH4 macros.
|
||
(SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
|
||
SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
|
||
SELECT_SH4A_SINGLE): New.
|
||
(TARGET_NONE): Add SH4A_BIT.
|
||
(TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
|
||
(SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
|
||
(sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
|
||
(OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
|
||
(enum processor_type): Added PROCESSOR_SH4A.
|
||
(PREDICATE_CODES): Add memory_movsrc_operand.
|
||
* config/sh/sh.md: Removed unused variables.
|
||
(attr cpu): Add sh4a.
|
||
(attr type): Add movua, fsrra and fsca.
|
||
(prefetch): New, for SH4.
|
||
(ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
|
||
(toggle_sz): Set type to fp.
|
||
(toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
|
||
(movua, extv, extzv): New.
|
||
* config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
|
||
and 4a-single-only.
|
||
|
||
2004-07-28 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-optimize.c (init_tree_optimization_passes): Schedule
|
||
pass_may_alias right after the program is renamed into SSA.
|
||
* tree-pass.h (PROP_alias): Define.
|
||
* tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
|
||
* tree-sra.c (pass_sra): Likewise.
|
||
* tree-ssa-ccp.c (pass_ccp): Likewise.
|
||
* tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
|
||
* tree-ssa-dce.c (pass_dce): Likewise.
|
||
* tree-ssa-dom.c (pass_dominator): Likewise.
|
||
* tree-ssa-dse.c (pass_dse): Likewise.
|
||
* tree-ssa-forwprop.c (pass_forwprop): Likewise.
|
||
* tree-ssa-loop-ch.c (pass_ch): Likewise.
|
||
* tree-ssa-phiopt.c (pass_phiopt): Likewise.
|
||
* tree-ssa-pre.c (pass_pre): Likewise.
|
||
* tree-tailcall.c (pass_tail_recursion): Likewise.
|
||
* tree-ssa.c (pass_redundant_phi): Likewise.
|
||
* tree-ssa-alias.c (aliases_computed_p): Remove.
|
||
Update all users.
|
||
(init_alias_info): Do not mark all type tags for renaming
|
||
unconditionally.
|
||
Clear may_aliases from every symbol.
|
||
(setup_pointers_and_addressables): If a pointer has not been
|
||
dereferenced and it had a type tag, clear it and mark the old
|
||
tag for renaming.
|
||
|
||
2004-07-28 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR tree-optimization/16705
|
||
* tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
|
||
.GLOBAL_VAR.
|
||
|
||
2004-07-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
|
||
check.
|
||
|
||
* gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
|
||
don't make another one.
|
||
|
||
PR optimization/15077
|
||
* function.h (struct function): Add field saved_static_chain_decl.
|
||
Fix comment for static_chain_decl.
|
||
* tree-inline.c (save_body): Add new arg and handle static_chain_decl.
|
||
* tree-inline.h (save_body): Add new arg.
|
||
* tree-optimize.c (tree_rest_of_compilation): Handle saving
|
||
static_chain_decl.
|
||
|
||
2004-07-27 Richard Henderson <rth@redhat.com>
|
||
|
||
* gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
|
||
(gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
|
||
is_gimple_addressable.
|
||
* tree-gimple.c (is_gimple_addressable): Rename from
|
||
is_gimple_addr_expr_arg; accept INDIRECT_REF.
|
||
(is_gimple_lvalue): Don't test INDIRECT_REF directly.
|
||
* tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
|
||
rename to is_gimple_addressable.
|
||
|
||
2004-07-28 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
|
||
|
||
2004-07-27 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
|
||
before rounding.
|
||
|
||
2004-07-27 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* libgcc2.c: Change all conditionals testing
|
||
LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
|
||
* libgcc2.h: Likewise.
|
||
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
|
||
TYPE_PRECISION of float80_type to 80.
|
||
* config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
|
||
of fpreg_type and float80_type to 80.
|
||
* config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
|
||
* config/m68k/netbsd-elf.h:
|
||
Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
|
||
to evaluate to 80 whenever they would formerly have evaluated to 96.
|
||
* config/i386/sco5.h: Remove unnecessary redefinition of
|
||
LONG_DOUBLE_TYPE_SIZE.
|
||
* doc/rtl.texi: Clarify uses of XFmode and TFmode.
|
||
* config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
|
||
XFmode, with a bitsize of 80. Update commentary.
|
||
* config/ia64/ia64-modes.def: Likewise.
|
||
* config/m68k/m68k-modes.def: Likewise.
|
||
|
||
2004-07-27 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* cfgexpand.c (tree_expand_cfg): Fix comment.
|
||
|
||
* calls.c (expand_call): Ignore rtx_equal_function_value_matters.
|
||
* function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
|
||
Remove.
|
||
(prepare_function_start): Don't set rtx_equal_function_value_matters.
|
||
* integrate.c (copy_rtx_and_substitute): Don't test for it.
|
||
* passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
|
||
Don't set rtx_equal_function_value_matters. Don't register RTL hooks
|
||
here again. Update leading comment.
|
||
* rtl.c (rtx_equal_function_value_matters): Remove.
|
||
(rtx_equal_p): Don't test for it.
|
||
* simplify-rtx.c (simplify_binary_operation, simplify_subreg):
|
||
Likewise.
|
||
|
||
* rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
|
||
* rtl.c (note_insn_name): Likewise.
|
||
* emit-rtl.c (remove_unnecessary_notes): Don't handle it.
|
||
* final.c (final_scan_insn): Likewise.
|
||
|
||
* except.c (finish_eh_generation): Don't call cfg_cleanup from here.
|
||
* passes.c (rest_of_handle_eh): Do it here.
|
||
|
||
* stmt.c (struct nesting): Remove struct nesting block member.
|
||
(struct stmt_status): Remove x_block_start_count field.
|
||
(current_block_start_count): Remove.
|
||
|
||
2004-07-27 Brian Booth <bbooth@redhat.com>
|
||
|
||
* tree-optimize.c (register_one_dump_file): Update condition that uses
|
||
static_pass_number.
|
||
(dup_pass_1): Replace with...
|
||
(next_pass_1): This.
|
||
(NEXT_PASS): Call next_pass_1.
|
||
(DUP_PASS): Remove.
|
||
(init_tree_optimization_passes): Remove uses of DUP_PASS.
|
||
(execute_one_pass): Update condition that uses
|
||
static_pass_number.
|
||
* tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
|
||
integer.
|
||
|
||
2004-07-27 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/m32r/m32r.c: Include integrate.h in order to get the
|
||
prototype for get_hard_reg_initial_val().
|
||
|
||
* config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
|
||
and tidy up indentation.
|
||
(final_presence_set): Use absence_set instead, so that if there is
|
||
nothing in the "o" pipe the "s" pipe can be scheduled.
|
||
|
||
2004-07-27 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-alias.c (create_name_tags): Ignore pointers that
|
||
don't have PT_VARS nor PT_MALLOC set.
|
||
Clear name tag from pointers that have not been dereferenced.
|
||
(set_pt_anything, set_pt_malloc): Forward declare.
|
||
* tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
|
||
not type compatibility when determining if a pointer can be
|
||
copy propagated.
|
||
|
||
2004-07-27 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* expr.h (canonicalize_condition, get_condition): Add an int argument.
|
||
* gcse.c (fis_get_condition): Reimplement using get_condition, leaving
|
||
it to check whether the condition is still valid at the jump insn.
|
||
* ifcvt.c (noce_get_condition): Likewise.
|
||
(noce_get_alt_condition): Update call to canonicalize_condition.
|
||
* loop-iv.c (simplify_using_initial_values): Update call to
|
||
get_condition. Remove FIXME.
|
||
(check_simple_exit): Update call to get_condition.
|
||
* loop-unswitch.c (may_unswitch_on): Likewise.
|
||
* loop.c (check_dbra_loop): Likewise.
|
||
(canonicalize_condition, get_condition): Add an argument to say whether
|
||
the condition must still be valid at INSN.
|
||
(get_condition_for_loop): Update call to get_condition. Require that
|
||
the condition be valid at INSN.
|
||
* predict.c (estimate_probability): Update call to get_condition.
|
||
Remove unused earliest parameter.
|
||
(expected_value_to_br_prob): Update call to canonicalize_condition.
|
||
|
||
2004-07-26 Eric Christopher <echristo@redhat.com>
|
||
|
||
* tree-dfa.c (add_referenced_var): Register initializers of global
|
||
variables.
|
||
|
||
2004-07-26 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* config/i386/i386.c (function_arg): Always treat 8-
|
||
and 16-byte wide vectors the same, even if MMX/SSE
|
||
are disabled.
|
||
(contains_128bit_aligned_vector_p): Add comment.
|
||
|
||
2004-07-26 J"orn Rennecke <joern.rennecke@superh.com>
|
||
|
||
* ra.h (enum node_type): Rename to:
|
||
(enum ra_node_type).
|
||
* ra-colorize.c: Likewise.
|
||
|
||
2004-07-26 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
|
||
after simplifying the jump.
|
||
|
||
2004-06-26 Richard Henderson <rth@redhat.com>
|
||
|
||
* calls.c (combine_pending_stack_adjustment_and_call): Make
|
||
preferred_unit_stack_boundary argument unsigned. Make
|
||
unadjusted_alignment unsigned.
|
||
(expand_call): Make preferred_stack_boundary and
|
||
preferred_unit_stack_boundary variables unsigned.
|
||
* function.c (assign_stack_local_1): Make alignment unsigned.
|
||
* function.h (struct function): Make stack_alignment_needed,
|
||
preferred_stack_boundary unsigned.
|
||
* config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
|
||
(ix86_compute_frame_layout): Make stack_alignment_needed,
|
||
preferred_alignment variables unsigned.
|
||
* config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
|
||
|
||
2004-07-26 Tom Tromey <tromey@redhat.com>
|
||
|
||
* tree.h: Fix typo in comment.
|
||
|
||
2004-07-26 Daniel Jacobowitz <dan@debian.org>
|
||
|
||
PR bootstrap/12804
|
||
* ggc-zone.c (struct alloc_chunk): Remove attribute packed.
|
||
(MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
|
||
(ggc_free): Remove incorrect freeing.
|
||
(sweep_pages): Advance PP for large pages. Fix indentation.
|
||
|
||
2004-07-26 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
PR rtl-optimization/16643
|
||
* cfglayout.h (cfg_layout_initialize): Add a flags parameter.
|
||
* cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
|
||
* basic-block.h (reorder_basic_blocks): Add a flags parameter.
|
||
* cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
|
||
(partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
|
||
* function.c (thread_prologue_and_epilogue_insns): Likewise.
|
||
* rtl.h (tracer): Add a flags parameter.
|
||
* tracer.c (tracer): Pass it to cfg_layout_initialise.
|
||
* passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
|
||
(rest_of_handle_reorder_blocks): Update calls to tracer and
|
||
reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
|
||
(rest_of_handle_tracer): Pass 0 to tracer.
|
||
(rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
|
||
|
||
2004-07-25 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/16239
|
||
* config/rs6000/rs6000.md (movdi_internal64): Further disparage
|
||
f->f.
|
||
|
||
2004-07-24 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
|
||
(BINFO_BASE_ACCESS): Adjust.
|
||
(BINFO_BASE_ACCESS_APPEND): New.
|
||
(struct tree_binfo): Make base_accesses a VEC(tree) pointer.
|
||
* dbxout.c (dbxout_type): Adjust binfo access accessing.
|
||
* dwarf2out.c (gen_member_die): Likewise.
|
||
* tree-dump.c (deque_and_dump): Likewise.
|
||
|
||
2004-07-26 Falk Hueffner <falk@debian.org>
|
||
|
||
* config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
|
||
costs.
|
||
|
||
2004-07-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/i386.c (output_fp_compare): Use ffreep to pop top
|
||
value off of the stack if TARGET_USE_FFREEP.
|
||
|
||
2004-07-26 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
|
||
* gengtype-yacc.y: Likewise. Replace free() with XDELETE ().
|
||
* c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
|
||
check on invocation of XRESIZEVEC ().
|
||
|
||
2004-07-26 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* c-common.c (disable_builtin_function): Rename variable n to
|
||
new_disabled_builtin.
|
||
* c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
|
||
Rename local variable old to old_decl.
|
||
* gensupport.c (shift_output_template): Rename parameter old to src.
|
||
* simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
|
||
old_rtx and newx to new_rtx.
|
||
|
||
2004-07-26 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* Makefile.in (C_PRAGMA_H): New variable to track dependencies
|
||
of c-pragma.h.
|
||
* c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
|
||
enum cpp_ttype.
|
||
* c-lex.c: Likewise.
|
||
|
||
2004-07-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (constant_boolean_node): Make extern.
|
||
(make_range): Wrap long lines.
|
||
(fold_cond_expr_with_comparison): Remove unnecessary call to
|
||
pedantic_non_lvalue. Add missing calls to fold_convert.
|
||
(fold_truthop): Add missing calls to fold_convert.
|
||
(fold): Likewise.
|
||
* tree.h (constant_boolean_node): Add prototype here.
|
||
* builtins.c (expand_builtin_strncmp): Add missing calls to
|
||
fold_convert.
|
||
* tree-ssa-dom.c (record_equivalences_from_incoming_edge):
|
||
Call fold_convert and constant_boolean_node to correct types.
|
||
* tree-ssa-forwprop.c (substitute_single_use_vars): Add
|
||
missing call to fold_convert to correct types.
|
||
|
||
2004-07-26 Niall Douglas <s_fsfeurope2@nedprod.com>
|
||
Brian Ryner <bryner@brianryner.com>
|
||
|
||
PR c++/9283
|
||
PR c++/15000
|
||
* c-common.c (c_common_attribute_table): Allow
|
||
handle_visibility_attribute to be called for types.
|
||
(handle_visibility_attribute) When given a type, set the visibility
|
||
bits on the TYPE_NAME. When given a decl, don't set no_add_attrs
|
||
so that we can check later whether the attribute was present. Added
|
||
warning if attribute applied to non class type.
|
||
* c-decl.c (diagnose_mismatched_decls): Updated rules for merging
|
||
decls and checking that they are consistent.
|
||
* common.opt: Added -fvisibility.
|
||
* c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
|
||
* c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
|
||
* flags.h, tree.h: Added assorted support defines for overall patch
|
||
* opts.c: Added parsing support for -fvisibility.
|
||
* tree.c (build_decl): Set visibility for all decls to be whatever
|
||
is in force at that time.
|
||
* varasm.c (default_binds_local_p_1): Reworked logic determining
|
||
when to make a symbol locally bound.
|
||
* doc/invoke.texi: Added documentation for -fvisibility and
|
||
-fvisibility-inlines-hidden.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
|
||
* c-common.c: Add missing casts from void * to other types.
|
||
* c-decl.c: Likewise.
|
||
* c-format.c: Likewise.
|
||
* c-lex.c: Likewise.
|
||
* c-pragma.c: Likewise.
|
||
* c-typeck.c: Likewise.
|
||
* defaults.h: Likewise.
|
||
* genconstants.c: Likewise.
|
||
* gengtype-lex.l: Likewise.
|
||
* genmodes.c: Likewise.
|
||
* read-rtl.c: Likewise.
|
||
* rtl.c: Likewise.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* bitmap.c: Use type-safe memory allocation macros from libiberty.
|
||
* c-common.c: Likewise.
|
||
* c-decl.c: Likewise.
|
||
* c-lang.c: Likewise.
|
||
* c-lex.c: Likewise.
|
||
* c-opts.c: Likewise.
|
||
* c-parse.in: Likewise.
|
||
* c-typeck.c: Likewise.
|
||
* genconditions.c: Likewise.
|
||
* gengtype-lex.l: Likewise.
|
||
* gengtype-yacc.y: Likewise.
|
||
* gengtype.c: Likewise.
|
||
* genmodes.c: Likewise.
|
||
* gensupport.c: Likewise.
|
||
* read-rtl.c: Likewise.
|
||
* read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
|
||
htab_find_slot().
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* c-decl.c (groktypename, groktypename_in_param_context): Rename
|
||
variable typename to type_name.
|
||
* c-lex.c (interpret_float): Likewise.
|
||
|
||
2004-07-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* convert.c (convert_to_real, convert_to_integer,
|
||
convert_to_complex): Replace calls to build with calls to buildN.
|
||
* coverage.c (tree_coverage_counter_ref): Likewise.
|
||
* dojump.c (do_jump): Likewise.
|
||
* dwarf2out.c (loc_descriptor_from_tree): Likewise.
|
||
* emit-rtl.c (component_ref_for_mem_expr,
|
||
set_mem_attributes_minus_bitpos): Likewise.
|
||
* explow.c (update_nonlocal_goto_save_area): Likewise.
|
||
* expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
|
||
expand_mult_add): Likewise.
|
||
* expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
|
||
store_constructor, get_inner_reference, expand_expr_real_1,
|
||
try_casesi, try_tablejump): Likewise.
|
||
* function.c (expand_function_start): Likewise.
|
||
* stmt.c (emit_case_bit_tests, expand_end_case_type,
|
||
node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
|
||
* stor-layout.c (place_union_field, layout_type): Likewise.
|
||
* tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
|
||
* varasm.c (copy_constant): Likewise.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* c-common.c: Rename all identifiers named `new'.
|
||
* c-decl.c: Likewise.
|
||
* gensupport.c: Likewise.
|
||
* simplify-rtx.c: Likewise.
|
||
* c-common.c (disable_builtin_function): Replace a call to xmalloc()
|
||
with XNEW().
|
||
* gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
|
||
with XNEWVEC().
|
||
|
||
2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
PR c/15360
|
||
* c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
|
||
declarations until after calling pushdecl.
|
||
(grokdeclarator): Set DECL_EXTERNAL for variables based on use of
|
||
"extern" and not on whether the declaration is initialized.
|
||
|
||
2004-07-25 Daniel Jacobowitz <dan@debian.org>
|
||
|
||
* config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
|
||
(sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
|
||
* config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
|
||
"cpplib.h", "c-pragma.h", "c-common.h".
|
||
(solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
|
||
(solaris_register_pragmas): New functions.
|
||
* config/sol2-protos.h: New file.
|
||
* config/sol2.c: New file.
|
||
* config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
|
||
(REGISTER_TARGET_PRAGMAS): New macros.
|
||
(solaris_pending_aligns, solaris_pending_inits)
|
||
(solaris_pending_finis): New variables.
|
||
* config/t-sol2 (sol2-c.o): Update dependencies.
|
||
(sol2.o): New rule.
|
||
* config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
|
||
SUBTARGET_INSERT_ATTRIBUTES.
|
||
(ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
|
||
* config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
|
||
(SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
|
||
* config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
|
||
* config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
|
||
* config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
|
||
(SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
|
||
* config/sparc/sparc.c (sparc_attribute_table): New.
|
||
(TARGET_INSERT_ATTRIBUTES): Define in terms of
|
||
SUBTARGET_INSERT_ATTRIBUTES.
|
||
(TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
|
||
is defined.
|
||
* doc/extend.texi (Solaris Pragmas): New section.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* c-common.c: Rename all identifiers named `class' to `cl'.
|
||
* c-common.h: Likewise.
|
||
* c-parse.in: Likewise.
|
||
* c-typeck.c: Likewise.
|
||
* genmodes.c: Likewise.
|
||
* real.c: Likewise.
|
||
* real.h: Likewise.
|
||
* recog.c: Likewise.
|
||
* recog.h: Likewise.
|
||
* regrename.c: Likewise.
|
||
* tree.h: Likewise.
|
||
* c-common.c (builtin_function_2): Change type of 5th parameter from
|
||
int to enum built_in_function. Change type of 8th parameter from int
|
||
to bool.
|
||
* c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
|
||
with GGC_CNEW().
|
||
* c-typeck.c (convert_arguments): Change type of formal_prec from
|
||
int to unsigned int.
|
||
* genmodes.c (blank_mode): Make a few negative constants unsigned.
|
||
(complete_all_modes, calc_wider_mode, emit_insn_modes_h,
|
||
emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
|
||
emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
|
||
emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
|
||
iterator to for_all_modes () instead of an enum because enums can't
|
||
be incremented in C++.
|
||
|
||
|
||
2004-07-25 Daniel Jacobowitz <dan@debian.org>
|
||
|
||
* regmove.c (optimize_reg_copy_1): Don't try to replace call-used
|
||
hard registers.
|
||
|
||
2004-07-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
|
||
Handle ARRAY_RANGE_REF like ARRAY_REF.
|
||
|
||
2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-typeck.c (digest_init): Don't allow arrays of signed or
|
||
unsigned variants of wchar_t to be initialized by wide string
|
||
constants. Do allow arrays of enumerated types compatible with
|
||
wchar_t to be initialized by wide string constants. Refine tests
|
||
distinguishing wide and narrow strings and arrays. Give specific
|
||
error for arrays of other integer types initialized by string
|
||
constants.
|
||
(output_init_element, process_init_element): Check for
|
||
INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
|
||
initializing with string constants.
|
||
|
||
2004-07-25 Richard Henderson <rth@redhat.com>
|
||
|
||
* c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
|
||
on the RESULT_DECL.
|
||
* cgraphunit.c (cgraph_build_static_cdtor): Likewise.
|
||
* integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
|
||
DECL_IGNORED_P to new decl.
|
||
|
||
2004-07-24 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* config/ia64/ia64.c (general_xfmode_operand)
|
||
(destination_xfmode_operand): Delete.
|
||
* config/ia64/ia64.h (PREDICATE_CODES): Remove them.
|
||
* config/ia64/ia64.md (*movxf_internal): Use general_operand
|
||
and destination_operand.
|
||
|
||
2004-07-24 Alexander Kabaev <kan@freebsd.org>
|
||
|
||
* config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
|
||
(EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
|
||
|
||
2004-07-24 Alexander Kabaev <kan@freebsd.org>
|
||
Zack Weinberg <zack@codesourcery.com
|
||
|
||
PR 16684
|
||
* c-decl.c (diagnose_mismatched_decls): Don't issue a
|
||
redundant-declaration warning the first time a builtin is
|
||
declared explicitly.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* tree.h (staticp): Change return type to bool.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* c-common.c (c_staticp): Last episode of the staticp saga.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* c-common.h (c_staticp): Change return type from int to bool.
|
||
* tree.c (staticp): Likewise.
|
||
* langhooks.h (staticp): Likewise.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* langhooks-def.h (lhd_staticp): Change return type from int to
|
||
bool in prototype to match definition.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* system.h (bool, true, false): Don't redefine as preprocessor macros
|
||
in C++.
|
||
|
||
2004-07-24 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expmed.c (init_expmed): A signed modulus by a power of two is
|
||
considered cheap if its less than or equal to four instructions.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
|
||
GGC_CNEWVAR): New macros.
|
||
|
||
2004-07-25 Bernardo Innocenti <bernie@develer.com>
|
||
|
||
* c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
|
||
lists.
|
||
* c-decl.c: Likewise.
|
||
* c-format.c: Likewise.
|
||
* c-lex.c: Likewise.
|
||
* c-opts.c: Likewise.
|
||
* c-pragma.c: Likewise.
|
||
* c-typeck.c: Likewise.
|
||
* gencheck.c: Likewise.
|
||
* genconditions.c: Likewise.
|
||
* genconfig.c: Likewise.
|
||
* genflags.c: Likewise.
|
||
* gengtype.c: Likewise.
|
||
* gensupport.c: Likewise.
|
||
* ggc-none.c: Likewise.
|
||
* langhooks.c: Likewise.
|
||
* statistics.h: Likewise.
|
||
* stub-objc.c: Likewise.
|
||
* java/decl.c: Likewise.
|
||
|
||
2004-07-24 Roman Zippel <zippel@linux-m68k.org>
|
||
|
||
* config/m68k/m68k.c (output_scc_di): Fix coding style.
|
||
(symbolic_operand): Fix prototype.
|
||
* config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
|
||
* config/m68k/m68k.md: Add constants for registers a0 and sp and
|
||
use them, change from the "{...}" syntax to the simpler {...}
|
||
syntax.
|
||
(*cfv4_extendqisi2): Fix destination predicate.
|
||
* config/m68k/m68k-protos.h: Remove various declarations also
|
||
generated via PREDICATE_CODES.
|
||
|
||
2004-07-23 Mike Stump <mrs@apple.com>
|
||
|
||
* c-typeck.c (convert_for_assignment): Tightened up pointer
|
||
converstions that differ in signedness.
|
||
|
||
2004-07-23 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
|
||
|
||
2004-07-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
|
||
* tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
|
||
|
||
* gimplify.c (gimplify_compound_lval): Check for no handled
|
||
operations, rather than checking for explicit list of nodes.
|
||
(is_gimple_addr_expr_arg_or_indirect): New function.
|
||
(gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
|
||
redundant setting of TREE_INVARIANT.
|
||
(gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
|
||
* tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
|
||
|
||
2004-07-23 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR tree-optimization/16688
|
||
PR tree-optimization/16689
|
||
* tree-ssa-alias.c (setup_pointers_and_addressables): Remove
|
||
unnecessary initialization of 'tag'.
|
||
(get_tmt_for): Check that the new type tag has the same alias
|
||
set as the pointed-to type.
|
||
(group_aliases): Only regular variables need to be removed
|
||
from the alias set of a name tag.
|
||
* tree-ssa-copy.c (may_propagate_copy): Do not allow copy
|
||
propagation if the two types are not compatible.
|
||
(merge_alias_info): Rename from replace_ssa_names_ann.
|
||
Add more checking.
|
||
(replace_exp_1): If both arguments are SSA_NAMEs, check that
|
||
the propagation can be done.
|
||
Only call merge_alias_info on pointers.
|
||
(propagate_value): Likewise.
|
||
* tree-ssa-copyrename.c: Include langhooks.h.
|
||
(copy_rename_partition_coalesce): Call replace_ssa_name_symbol
|
||
to do the merging.
|
||
Do not coalesce variables with incompatible types.
|
||
(rename_ssa_copies): Call replace_ssa_name_symbol.
|
||
* tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
|
||
the same type as the underlying _DECL.
|
||
* tree-ssanames.c (replace_ssa_name_symbol): New function.
|
||
* tree.h (replace_ssa_name_symbol): Declare.
|
||
|
||
2004-07-23 Richard Henderson <rth@redhat.com>
|
||
|
||
PR c++/16277
|
||
* gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
|
||
unshare it properly.
|
||
(gimplify_modify_expr_rhs): Push assignment from a conditional into
|
||
the conditional for all non-register types.
|
||
|
||
2004-07-23 Richard Henderson <rth@redhat.com>
|
||
|
||
* expr.c (expand_expr_real_1): Don't handle non-local variables.
|
||
* expr.h (fix_lexical_addr): Remove.
|
||
* function.c (NEED_SEPARATE_AP): Remove.
|
||
(fix_lexical_addr): Remove.
|
||
* tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
|
||
not null decl_function_context.
|
||
(create_alias_vars): Likewise.
|
||
* tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
|
||
(simple_goto_p): Likewise.
|
||
* tree-dfa.c (add_referenced_var): Don't check for non-local variables.
|
||
* tree-ssa-ccp.c (get_default_value): Likewise.
|
||
* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
|
||
* tree.c (needs_to_live_in_memory): Likewise.
|
||
* tree-flow-inline.h (may_be_aliased): Move...
|
||
* tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for
|
||
when TREE_STATIC variables may be addressable.
|
||
|
||
2004-07-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
|
||
|
||
2004-07-23 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
|
||
bitmap contents if GENERATOR_FILE is defined.
|
||
* Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
|
||
($(BUILD_PREFIX_1)bitmap.o): Delete rule.
|
||
|
||
2004-07-23 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-decl.c (start_function): Form composite type of function types
|
||
rather than copying type from previous prototype declaration.
|
||
|
||
2004-07-23 Janis Johnson <janis187@us.ibm.com>
|
||
|
||
* config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
|
||
the const qualifier for the second argument in the C++ functions.
|
||
|
||
* config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
|
||
specific pointer types.
|
||
|
||
* config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
|
||
vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
|
||
for vector bool and/or vector pixel, add C++ and C missing support.
|
||
(vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
|
||
vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
|
||
vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
|
||
vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
|
||
vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
|
||
missing C++ and C support for vector bool and/or vector pixel.
|
||
(vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
|
||
vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
|
||
vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
|
||
vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
|
||
vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
|
||
C++ and C types used for vector bool and/or vector pixel.
|
||
(vec_st, vec_stl): Add C++ support for vector pixel.
|
||
(vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
|
||
(vec_all_ne): Add C++ support for vector pixel.
|
||
|
||
* config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
|
||
(vec_vmulesb): Add missing C++ function.
|
||
(vec_perm): Fix type of third argument in C++ function.
|
||
(vec_vsum4shs): Fix C++ function name.
|
||
(vec_any_ge): Remove C++ functions for unsupported arg combinations.
|
||
(vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
|
||
argument passed to the error handler in C macro.
|
||
(vec_nmsub): Remove extra parens around argument names in C macro.
|
||
(vec_packpx): Add missing parens in C macro.
|
||
|
||
2004-07-22 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* machmode.def: Remove vector modes.
|
||
* config/alpha/alpha-modes.def: Add supported vector modes.
|
||
* config/arm/arm-modes.def: Likewise.
|
||
* config/frv/frv-modes.def: Likewise.
|
||
* config/i386/i386-modes.def: Likewise.
|
||
* config/rs6000/rs6000-modes.def: Likewise.
|
||
* config/sh/sh-modes.def: Likewise.
|
||
|
||
2004-07-23 Matthias Klose <doko@debian.org>
|
||
|
||
* intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
|
||
* configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
|
||
* config.h: Regenerate.
|
||
* configure: Likewise.
|
||
|
||
2004-07-22 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
|
||
generated SYMBOL_REFs for labels.
|
||
* config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
|
||
Change prototype.
|
||
(machopic_stub_name): Remove.
|
||
(machopic_indirection_name): New function.
|
||
(machopic_mcount_stub_name): Likewise.
|
||
(machopic_classify_name): Remove.
|
||
(machopic_function_base_sym): New function.
|
||
(machpoic_classify_symbol): Likewise.
|
||
(machopic_classify_ident): Remove.
|
||
(machopic_define_ident): Likewise.
|
||
(machopic_define_name): Likewise.
|
||
(machopic_name_defined_p): Likewise.
|
||
(machopic_ident_defined_p): Likewise.
|
||
(darwin_strip_name_encoding): Likewise.
|
||
(machopic_define_symbol): New function.
|
||
* config/darwin.c (hashtab.h): Include.
|
||
(machopic_defined_list): Remove.
|
||
(machopic_classify_ident): Likewise.
|
||
(machopic_classify_name): Likewise.
|
||
(machopic_ident_defined_p): Likewise.
|
||
(machopic_define_ident): Likewise.
|
||
(machopic_define_name): Likewise.
|
||
(machopic_symbol_defined_p): New function.
|
||
(machopic_classify_symbol): Likewise.
|
||
(machopic_data_defined_p): Use machopic_classify_symbol.
|
||
(machopic_define_symbol): New function.
|
||
(machopic_function_base_sym): New function.
|
||
(machopic_non_lazy_pointers): Remove.
|
||
(machopic_non_lazy_ptr_name): Likewise.
|
||
(machopic_stubs): Likewise.
|
||
(machopic_stub_name): Likewise.
|
||
(NON_LAZY_POINTER_SUFFIX): New macro.
|
||
(STUB_SUFFIX): Likewise.
|
||
(machopic_indirection): New structure.
|
||
(machopic_indirections): New variable.
|
||
(machopic_indirection_hash): New function.
|
||
(machopic_indirection_eq): Likewise.
|
||
(machopic_indirection_name): Likewise.
|
||
(machopic_mcount_stub_name): New function.
|
||
(machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
|
||
hash table.
|
||
(machopic_indirect_data_reference): Rework to use new functions.
|
||
(machopic_indirect_call_target): Likewise.
|
||
(machopic_legitimize_pic_address): Likewise.
|
||
(machopic_output_indirection): New function.
|
||
(machopic_finish): Use it.
|
||
(machopic_operand_p): Rework to use new functions.
|
||
(darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
|
||
(darwin_strip_name_encoding): Remove.
|
||
(update_non_lazy_ptrs): Remove.
|
||
(update_stubs): Likewise.
|
||
(darwin_non_lazy_pcrel): Use new functions.
|
||
* config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
|
||
(ASM_OUTPUT_LABELREF): Likewise.
|
||
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
|
||
(MACHO_SYMBOL_FLAG_VARIABLE): New macro.
|
||
(MACHO_SYMBOL_FLAG_DEFINED): Likewise.
|
||
(TARGET_STRIP_NAME_ENCODING): Do not use
|
||
darwin_strip_name_encoding.
|
||
(GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
|
||
darwin_strip_name_encoding.
|
||
* config/i386/darwin.h (FUNCTION_PROFILER): Use
|
||
machopic_mcount_stub_name.
|
||
* config/i386/i386.c (x86_output_mi_thunk): Use
|
||
machopic_indirection_name, not machopic_stub_name.
|
||
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
|
||
machopic_function_base_sym.
|
||
(print_operand): Use machopic_classify_symbol.
|
||
(rs6000_emit_prologue): Use machopic_function_base_sym.
|
||
(output_profile_hook): Do not use machopic_stub_name.
|
||
(macho_branch_isalnds): Do not use darwin_strip_name_encoding.
|
||
|
||
2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
PR c/7284
|
||
* fold-const.c (extract_muldiv_1): Do not treat signed left shift
|
||
as multiplication.
|
||
|
||
2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* doc/implement-c.texi: New file.
|
||
* doc/extend.texi (C Implementation): Move to there.
|
||
* doc/gcc.texi: Include implement-c.texi.
|
||
* Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
|
||
|
||
2004-07-22 Jason Merrill <jason@redhat.com>
|
||
|
||
* integrate.c (copy_decl_for_inlining): Remove invisible reference
|
||
handling.
|
||
* tree-inline.c (setup_one_parameter): Likewise.
|
||
|
||
2004-07-22 Brian Booth <bbooth@redhat.com>
|
||
|
||
* tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
|
||
(substitute_and_fold): Propigate into VUSE operands when possible.
|
||
(visit_phi_node): Handle UNKNOWN_VAL latticevalue.
|
||
(cp_lattice_meet): Handle merging of latticevalues when
|
||
UNKNOWN_VAL is present.
|
||
(visit_stmt): Visit assignments with V_MUST_DEFs.
|
||
(visit_assignment): Gather ccp information for V_MUST_DEF operands.
|
||
(ccp_fold): Deal with RHS' that are constant and virtual.
|
||
(evaluate_stmt): Handle UNKNOWN_VAL likely values.
|
||
(dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
|
||
(initialize): Mark statements with V_MUST_DEFs as VARYING only if the
|
||
V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
|
||
computing immediate uses.
|
||
(set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
|
||
transition.
|
||
(replace_vuse_in): New function.
|
||
(likely_value): Add check of vuse operands.
|
||
(get_default_value): Set the default value of virtually defined
|
||
variables to UKNOWN_VAL instead of VARYING.
|
||
|
||
2004-07-22 Richard Henderson <rth@redhat.com>
|
||
|
||
* expr.c (emit_push_insn): Don't use set_mem_attributes.
|
||
|
||
2004-07-22 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
|
||
variables due to conditional compilation.
|
||
|
||
2004-07-22 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-into-ssa.c (set_livein_block): Fix typo in comment.
|
||
(rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
|
||
Release SSA names that have been re-renamed.
|
||
* tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
|
||
variable.
|
||
* tree-ssa-alias.c (init_alias_info): If aliases have been
|
||
computed before, clear existing alias information.
|
||
(create_name_tags): Do no fixup PT_ANYTHING pointers.
|
||
If the new name tag for a pointer is different than the one it
|
||
had before, mark the old tag for renaming.
|
||
(replace_may_alias): New function.
|
||
(group_aliases): Call it.
|
||
(setup_pointers_and_addressables): Always call get_tmt_for.
|
||
(maybe_create_global_var): Don't create .GLOBAL_VAR more than
|
||
once.
|
||
(set_pt_anything): New local function.
|
||
(set_pt_malloc): New local function.
|
||
(merge_pointed_to_info): Don't merge pointed-to variables from
|
||
the original pointer if the destination is pointing to an
|
||
unknown location.
|
||
(add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
|
||
(add_pointed_to_var): Do not add a variable to the points-to
|
||
set if the pointer is already pointing to anywhere.
|
||
(collect_points_to_info_r): If the defining statement is a PHI
|
||
node, only merge pointed-to information if the argument has
|
||
already been visited.
|
||
(get_tmt_for): Only create a new tag if the pointer didn't
|
||
have one already.
|
||
(dump_alias_info): Emit more information.
|
||
(dump_points_to_info_for): Likewise.
|
||
* tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
|
||
try to get the annotation of an SSA_NAME.
|
||
* tree-ssa-operands.c (add_stmt_operand): Only check for empty
|
||
alias sets when checking is enabled.
|
||
* tree-ssa-pre.c (need_eh_cleanup): New local variable.
|
||
(eliminate): Mark basic blocks that will need
|
||
EH information cleaned up.
|
||
(init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
|
||
predecessor.
|
||
Initialize need_eh_cleanup.
|
||
(fini_pre): Call tree_purge_all_dead_eh_edges and
|
||
cleanup_tree_cfg if needed.
|
||
Free need_eh_cleanup.
|
||
* tree-ssa.c (verify_ssa_name): New function.
|
||
(verify_def): Call it.
|
||
Re-arrange to avoid printing too many error messages.
|
||
(verify_use): Likewise.
|
||
(verify_phi_args): Likewise.
|
||
(verify_flow_insensitive_alias_info): New function.
|
||
(verify_flow_sensitive_alias_info): New function.
|
||
(verify_alias_info): New function.
|
||
(verify_ssa): Call verify_alias_info.
|
||
Clear TREE_VISITED on all the SSA_NAMEs before scanning the
|
||
program.
|
||
Re-arrange to avoid printing too many error messages.
|
||
* tree-ssanames.c (make_ssa_name): Clear
|
||
SSA_NAME_IN_FREE_LIST.
|
||
(release_ssa_name): Never release a default definition.
|
||
(release_defs): New function.
|
||
* tree.h: Declare it.
|
||
* tree-ssa-dce.c (remove_dead_stmt): Call it.
|
||
|
||
2004-07-22 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
|
||
If true, do a depth-first search. Do a breadht-first search,
|
||
otherwise.
|
||
(walk_use_def_chains): Add new argument IS_DFS.
|
||
Update all users.
|
||
* tree-flow.h (walk_use_def_chains): Update prototype.
|
||
|
||
2004-07-22 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* config/cris/cris.md: Tweak formatting.
|
||
(asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
|
||
(mover2side, moverside, movemside, movei, op3, andu): Replace
|
||
live define_peephole:s with define_peephole2 near-equivalents.
|
||
Delete the rest.
|
||
("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all
|
||
word-size modes.
|
||
("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
|
||
Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
|
||
"*mov_sidesi_mem" respectively.
|
||
|
||
2004-07-22 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* tree-cfg.c (gimplify_val): Move from tree-complex.c.
|
||
(gimplify_build1): Move from tree-complex.c do_unop.
|
||
(gimplify_build2): Move from tree-complex.c do_binop.
|
||
(gimplify_build3): New.
|
||
* tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
|
||
Adjust throughout to call the functions above.
|
||
* tree-flow.h: Declare the functions above.
|
||
* tree-nested.c (gimplify_val): Rename to...
|
||
(tsi_gimplify_val): ... this.
|
||
|
||
* Makefile.in (tree_complex.o): Update dependencies.
|
||
(stor-layout.o): Depend on regs.h.
|
||
* c-common.c (handle_vector_size_attribute): Update for
|
||
vector types without corresponding vector modes.
|
||
* expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
|
||
a corresponding vector mode is not available.
|
||
* print-tree.c (print_node): Print nunits for vector types
|
||
* regclass.c (have_regs_of_mode): New.
|
||
(init_reg_sets_1): Initialize it and use it instead
|
||
of allocatable_regs_of_mode.
|
||
* regs.h (have_regs_of_mode): Declare it.
|
||
* stor-layout.c (layout_type): Pick a mode for vector types.
|
||
* tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
|
||
build_replicated_const, do_unop, do_binop, do_plus_minus,
|
||
do_negate, expand_vector_piecewise, expand_vector_parallel,
|
||
expand_vector_addition, expand_vector_operations_1,
|
||
expand_vector_operations, tree_lower_operations,
|
||
pass_lower_vector_ssa, pass_pre_expand): New.
|
||
(expand_complex_operations, pass_lower_complex): Remove.
|
||
* tree-optimize.c (init_tree_optimization_passes): Adjust
|
||
pass ordering for changes in tree-complex.c.
|
||
* tree-pass.h: Declare new passes.
|
||
* tree.c (finish_vector_type): Remove.
|
||
(make_vector_type): New.
|
||
(build_vector_type_for_mode, build_vector_type): Rewritten.
|
||
* tree.def (VECTOR_TYPE): Document where the number of
|
||
subparts is stored.
|
||
* tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
|
||
(make_vector): Remove declaration.
|
||
|
||
2004-07-21 Richard Henderson <rth@redhat.com>
|
||
|
||
* gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
|
||
TREE_THIS_VOLATILE, may_aliases, or optimization level.
|
||
(remove_useless_vars): Dump debugging info.
|
||
(expand_used_vars): Move ...
|
||
* cfgexpand.c (expand_used_vars): ... here. Make static.
|
||
* tree-flow-inline.h (set_is_used): New.
|
||
(set_default_def): Use get_var_ann.
|
||
* tree-flow.h: Update decls.
|
||
* tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
|
||
(create_ssa_var_map): Use it.
|
||
* tree-ssa.c (set_is_used): Remove.
|
||
|
||
2004-07-22 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* gdbinit.in: Set a breakpoint on internal_error.
|
||
|
||
2004-07-21 Richard Henderson <rth@redhat.com>
|
||
|
||
* cfgexpand.c (expand_gimple_tailcall): Fix case where we need
|
||
to create a new basic block.
|
||
|
||
2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
PR c/15052
|
||
* c-decl.c (grokdeclarator): Only pedwarn for qualified void
|
||
return type on function definitions. Move other warnings for
|
||
qualified return type to -Wreturn-type. Do not condition any such
|
||
warnings on -pedantic. Update comments.
|
||
(start_function): Only copy function type from previous prototype
|
||
declaration if return types are compatible.
|
||
* c-typeck.c (function_types_compatible_p): Don't condition
|
||
warning for incompatibility of volatile qualifiers on the return
|
||
type on -pedantic. Update comment.
|
||
* doc/invoke.texi (-Wreturn-type, -Wextra): Update.
|
||
|
||
2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-typeck.c (set_init_index): Require designator to be of integer
|
||
type.
|
||
|
||
2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
PR c/11250
|
||
* c-parse.in (init): Change to exprtype.
|
||
(primary): Set original_code for STRING to STRING_CST.
|
||
Call maybe_warn_string_init for compound literals.
|
||
(initdcl, notype_initdcl): Call maybe_warn_string_init.
|
||
(initval): Update.
|
||
* c-tree.h (maybe_warn_string_init): New.
|
||
(pop_init_level, process_init_element): Use struct c_expr.
|
||
(struct c_expr): Update comment.
|
||
* c-typeck.c (maybe_warn_string_init): New function.
|
||
(digest_init): Call it. Additional parameter strict_string. All
|
||
callers changed.
|
||
(output_init_element): Likewise.
|
||
(struct constructor_stack): Use struct c_expr for
|
||
replacement_value.
|
||
(really_start_incremental_init, push_init_level): Update.
|
||
(pop_init_level): Update. Return struct c_expr.
|
||
(process_init_level): Update. Take struct c_expr argument.
|
||
|
||
2004-07-21 David S. Miller <davem@nuts.davemloft.net>
|
||
|
||
* config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
|
||
commit.
|
||
|
||
2004-07-21 Eric Christopher <echristo@redhat.com>
|
||
|
||
* builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
|
||
removal.
|
||
* c-decl.c (pop_scope): Ditto.
|
||
* calls.c (expand_call): Remove call to current_nesting_level,
|
||
update comment accordingly. Remove calls to expand_start_target_temps
|
||
and expand_end_target_temps.
|
||
* cfgexpand.c (construct_init_block): Remove call to
|
||
expand_start_bindings_and_block.
|
||
(construct_exit_block): Remove call to expand_end_bindings.
|
||
* expr.c (safe_from_p): Remove BIND_EXPR handling.
|
||
(expand_expr_real_1): Ditto. Fix formatting.
|
||
(expand_vars): Delete.
|
||
* stmt.c (POPSTACK): Remove block_stack.
|
||
(stmt_status): Remove x_block_stack.
|
||
(block_stack): Delete.
|
||
(expand_start_bindings_and_block): Ditto.
|
||
(expand_start_target_temps): Ditto.
|
||
(expand_end_target_temps): Ditto.
|
||
(current_nesting_level): Ditto.
|
||
(warn_about_unused_variables): Ditto.
|
||
(expand_end_bindings): Ditto.
|
||
* tree.h: Remove declarations for above.
|
||
|
||
2004-07-21 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
|
||
* rtl.c (note_insn_name): Likewise.
|
||
* print-rtl.c (print_rtx): Don't print it.
|
||
* cfgrtl.h (can_delete_note_p): Don't handle it.
|
||
(rtl_delete_block): Likewise.
|
||
* passes.c (rest_of_handle_guess_branch_prob): Remove.
|
||
(rest_of_compilation): Don't call it.
|
||
* predict.c (process_note_predictions, process_note_prediction,
|
||
note_prediction_to_br_prob): Remove.
|
||
* basic-block.c (note_prediction_to_br_prob): Remove prototype.
|
||
* stmt.c (return_prediction): Remove.
|
||
(expand_value_return): Don't call it. Don't add prediction
|
||
notes for return statements.
|
||
|
||
2004-07-21 Josef Zlomek <zlomekj@suse.cz>
|
||
|
||
* var-tracking.c (vt_find_locations): Set the in_pending bitmap at
|
||
once.
|
||
|
||
2004-07-21 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* c-common.c (vector_types_convertible_p): Use vector types'
|
||
TYPE_SIZE and TREE_TYPE instead of their mode.
|
||
* convert.c (convert_to_integer): Likewise.
|
||
(convert_to_vector): Likewise.
|
||
* fold-const.c (fold_convert): Likewise.
|
||
* varasm.c (output_constant): Likewise.
|
||
* expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
|
||
Allow a VECTOR_TYPE initializer to be made of several vectors.
|
||
For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
|
||
of cleared and need_to_clear, and use fold_convert.
|
||
* c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
|
||
integer vectors.
|
||
|
||
2004-07-20 Richard Henderson <rth@redhat.com>
|
||
|
||
* cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
|
||
(expand_gimple_basic_block): out from here. Renamed from expand_block.
|
||
|
||
2004-07-20 David S. Miller <davem@nuts.davemloft.net>
|
||
|
||
* config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
|
||
enormous cost if not TARGET_HARD_MUL.
|
||
|
||
2004-07-20 Andrew Pinski <apinski@apple.com>
|
||
|
||
PR target/16557
|
||
* config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
|
||
(ASM_SPEC): here.
|
||
|
||
2004-07-21 Paul brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
|
||
|
||
2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* fold-const.c (operand_equal_p): Temporarily support NULL args.
|
||
(operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
|
||
(operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
|
||
|
||
2004-07-20 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* rtl.h (plus_constant): Delete.
|
||
(plus_constant_wide): Rename to plus_constant.
|
||
(plus_constant_for_output_wide): Delete vestigial prototype.
|
||
(GEN_INT): Remove unnecessary cast.
|
||
* tree.h (build_int_2, size_int_type): Delete.
|
||
(build_int_2_wide): Rename to build_int_2.
|
||
(size_int_wide): Rename to size_int_kind.
|
||
(size_int_type_wide): Rename to size_int_type.
|
||
(size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
|
||
Remove unnecessary cast.
|
||
* tree.c (build_int_2_wide): Rename build_int_2; update comment.
|
||
* explow.c (plus_constant_wide): Rename plus_constant; update comment.
|
||
* fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
|
||
(size_int_type_wide): Rename size_int_type.
|
||
(int_const_binop): Use size_int_type.
|
||
* c-lex.c (interpret_integer): Use build_int_2.
|
||
* final.c (split_double): Remove unnecessary casts.
|
||
* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
|
||
|
||
2004-07-20 Richard Henderson <rth@redhat.com>
|
||
|
||
* gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
|
||
(gimplify_compound_lval): Use is_gimple_tmp_reg.
|
||
* tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
|
||
(is_gimple_tmp_reg): New.
|
||
* tree-gimple.h (is_gimple_tmp_reg): Declare.
|
||
|
||
2004-07-20 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-pretty-print.c (dump_generic_node): Dump
|
||
CALL_EXPR_HAS_RETURN_SLOT_ADDR.
|
||
|
||
2004-07-20 Frank Ch. Eigler <fche@redhat.com>
|
||
|
||
* tree-mudflap.c (mf_set_options_fndecl): New tree.
|
||
(mudflap_init): Set it.
|
||
(mudflap_register_call): Remove __mf_init call.
|
||
(mudflap_finish_file): Emit call to __mf_init here. Emit a call to
|
||
to pass "-ignore-reads" option to libmudflap if needed.
|
||
|
||
2004-07-20 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR c++/14607
|
||
* config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
|
||
(MAKE_DECL_ONE_ONLY): Undefine.
|
||
* pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
|
||
readonly_data, one_only_data_section, forget_section): New prototypes.
|
||
* pa.c (pa_init_machine_status, som_text_section_asm_op): New
|
||
functions.
|
||
(pa_select_section): Add one-only (COMDAT) support.
|
||
* pa.h (struct machine_function): Define.
|
||
* som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
|
||
(TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
|
||
(DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
|
||
ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
|
||
ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
|
||
(EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
|
||
(EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
|
||
(READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
|
||
ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
|
||
for EXTRA_SECTION_FUNCTIONS.
|
||
* doc/install.texi: Update binutils requirements.
|
||
|
||
2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
|
||
VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
|
||
VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
|
||
size_t.
|
||
(struct VEC): Use unsigned for num and alloc.
|
||
* vec.c (struct vec_prefix): Likewise.
|
||
(vec_o_reserve): Adjust.
|
||
|
||
* dbxout.c (dbxout_type): Fix printf format.
|
||
|
||
* tree.h (binfo_member): Remove.
|
||
* tree.c (binfo_member): Remove.
|
||
|
||
2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* tree.h: Include vec.h
|
||
(DEF_VEC_P(tree)): New type.
|
||
(BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
|
||
(BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
|
||
(BINFO_LANG_SLOT): Remove.
|
||
(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
|
||
(struct tree_binfo): Turn base_binfos into a trailing
|
||
VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
|
||
(binfo_lang_slots): Remove.
|
||
* tree.c (binfo_lang_slots): Remove.
|
||
(make_tree_binfo_stat): Take a base binfo count, not a
|
||
lang slot count. Adjust.
|
||
* Makefile.in (TREE_H): Add vec.h
|
||
* alias.c (record_component_aliases): Adjust BINFO access.
|
||
* dbxout.c (dbxout_type): Likewise.
|
||
* dwarf2out.c (gen_member_die): Likewise.
|
||
* sdbout.c (sdbout_one_type): Likewise.
|
||
* tree-dump.c (deque_and_dump): Likewise.
|
||
* config/i386/i386.c (classify_argument,
|
||
contains_128bit_aligned_vector_p): Likewise.
|
||
* config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
|
||
* doc/c-tree.texi (Classes): Update BINFO documentation.
|
||
|
||
2004-07-20 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* c-common.h (check_case_value): Remove prototype.
|
||
(c_add_case_label): Adjust prototype.
|
||
* c-common.c (check_case_value): Make static.
|
||
(check_case_bounds): New function.
|
||
(c_add_case_label): Use it. Take new argument orig_type.
|
||
* c-typeck.c (struct c_switch): New orig_type field.
|
||
(c_start_case): Set it.
|
||
(do_case): Pass it to c_add_case_label.
|
||
* expr.c (expand_expr_real_1): Don't warn for out-of-bounds
|
||
cases from here. Add the labels in reverse order.
|
||
* stmt.c (struct case_node): Adjust comment. Remove balance field.
|
||
(add_case_node): Return nothing, don't check for duplicate cases.
|
||
Insert new case nodes in a list, not in an AVL tree.
|
||
(expand_end_case_type): Don't turn a case tree into a case list.
|
||
(case_tree2list): Remove.
|
||
* tree.h (add_case_node): Adjust prototype.
|
||
|
||
2004-07-19 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* genattr.c (struct range, struct function_unit,
|
||
write_units, extend_range, init_range): Remove them.
|
||
(main): Remove code dealing with DEFINE_FUNCTION_UNIT.
|
||
Output "#define INSN_SCHEDULING" here.
|
||
* genattrtab.c (struct range, struct function_unit_op,
|
||
struct function_unit, struct dimension, enum operator,
|
||
operate_exp, expand_units, simplify_knowing,
|
||
encode_units_mask, simplify_by_exploding,
|
||
find_and_mark_used_attributes, unmark_used_attributes,
|
||
add_values_to_cover, increment_current_value,
|
||
test_for_current_value, simplify_with_current_value,
|
||
simplify_with_current_value_aux, gen_unit,
|
||
write_unit_name, write_function_unit_info,
|
||
write_complex_function, write_toplevel_expr,
|
||
find_single_value, extend_range): Remove.
|
||
(write_attr_get): Do not handle common_av->value
|
||
being an FFS.
|
||
(struct attr_desc): Remove func_units_p and blockage_p.
|
||
(write_attr_valueq): Do not handle them.
|
||
(find_attr): Do not clear them.
|
||
(make_internal_attr): Do not initialize them.
|
||
(main): Remove code dealing with DEFINE_FUNCTION_UNIT.
|
||
* sched-vis.c (init_target_units, insn_print_units,
|
||
init_block_visualization, print_block_visualization,
|
||
visualize_scheduled_insns, visualize_no_unit,
|
||
visualize_stall_cycles, visualize_alloc,
|
||
visualize_free, target_units, get_visual_tbl_length,
|
||
MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
|
||
visual_tbl_line_length, visual_tbl, n_vis_no_unit,
|
||
MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
|
||
* haifa-sched.c (blockage_range, clear_units,
|
||
schedule_unit, actual_hazard, potential_hazard,
|
||
insn_unit, unit_last_insn, unit_tick,
|
||
actual_hazard_this_instance, potential_hazard,
|
||
schedule_unit, max_insn_queue_index_value): Remove.
|
||
(MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
|
||
max_insn_queue_index.
|
||
* rtl.def (DEFINE_FUNCTION_UNIT): Remove.
|
||
* doc/md.texi (Processor pipeline description): Remove
|
||
references to old pipeline descriptions.
|
||
(Automaton pipeline description): Merge with the above.
|
||
(Old pipeline description, Comparison of the two descriptions):
|
||
Remove.
|
||
|
||
* bt-load.c (migrate_btr_def): Remove references to
|
||
use_pipeline_interface.
|
||
* haifa-sched.c (insn_cost, schedule_insn,
|
||
schedule_block, advance_one_cycle, sched_init,
|
||
queue_to_ready, sched_finish): Likewise.
|
||
* modulo-sched.c (sms_schedule, advance_one_cycle,
|
||
ps_has_conflicts): Likewise.
|
||
* sched-rgn.c (init_ready): Likewise.
|
||
(debug_dependencies): Likewise, and remove an "if (1)".
|
||
* target.h (use_dfa_pipeline_interface): Remove.
|
||
* config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
* doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
|
||
|
||
2004-07-19 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
|
||
|
||
2004-07-19 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
|
||
(get_eq_expr_value): Use it. Simplify slightly.
|
||
|
||
2004-07-19 Maciej W. Rozycki <macro@linux-mips.org>
|
||
|
||
* config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
|
||
(umulsidi3_32bit_r4000): Likewise.
|
||
|
||
2004-07-19 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h: Propagate location information properly.
|
||
(VEC_T_iterate): Add result pointer parameter.
|
||
(VEC_T_space): New.
|
||
(VEC_T_reserve): Use it.
|
||
|
||
2004-07-19 Daniel Jacobowitz <dan@debian.org>
|
||
|
||
* Makefile.in (c-format.o): Depend on c-format.h.
|
||
* c-format.h: New file.
|
||
(struct format_char_info): Add CHAIN member.
|
||
* c-format.c: Move some types and constants to c-format.h.
|
||
(format_type_error): Set to -1.
|
||
(struct function_format_info): Use an int for format_type.
|
||
(decode_format_type): Return an int. Return format_type_error
|
||
on error.
|
||
(print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
|
||
(gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
|
||
(scan_char_table, time_char_table, monetary_char_table): Initialize
|
||
CHAIN to NULL.
|
||
(n_format_types): New variable.
|
||
(check_format_info_main): Handle CHAIN in format_char_info.
|
||
(handle_format_attribute): Handle TARGET_FORMAT_TYPES and
|
||
TARGET_N_FORMAT_TYPES.
|
||
* config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
|
||
(sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
|
||
* config/sol2-c.c: New file.
|
||
* config/t-sol2: New file.
|
||
* config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
|
||
* config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
|
||
TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
|
||
|
||
* doc/extend.texi (Target Format Checks): New section.
|
||
(Function Attributes): Mention it.
|
||
* doc/invoke.texi: Mention target format checks.
|
||
* doc/sourcebuild.texi: Mention target format checks.
|
||
* dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
|
||
TARGET_FORMAT_TYPES.
|
||
|
||
2004-07-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390-protos.h (s390_return_address_offset): Prototype
|
||
added.
|
||
* config/s390/s390.c (regclass_map initializer): Register 35 added to
|
||
ADDR_REGS.
|
||
(load_multiple_operation, store_multiple_operation): Removed
|
||
pointless sanity check.
|
||
(s390_decompose_address): Added check for return_address_pointer_rtx.
|
||
(s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
|
||
(s390_return_address_offset): New function.
|
||
* config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
|
||
(FRAME_REGNO_P): Added check for register 35.
|
||
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
|
||
REG_ALLOC_ORDER): Appended entry for register 35.
|
||
(REG_CLASS_CONTENTS): Adjusted class masks for register 35.
|
||
(EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
|
||
(RETURN_ADDRESS_POINTER_REGNUM): New macro.
|
||
(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
|
||
is eliminable using stack pointer or hard frame pointer.
|
||
(REGISTER_NAMES): Added name for register 35.
|
||
* config/s390/s390.md ("load_multiple", "store_multiple"): Removed
|
||
pointless sanity check.
|
||
|
||
2004-07-19 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (tree_expr_nonzero_p): Add function prototype.
|
||
(fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
|
||
fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
|
||
(fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
|
||
of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
|
||
(fold_relational_const): Tidy up handling of floating point
|
||
comparisons by calling real_compare. Remove tree_expr_nonzero_p
|
||
transformation; fold_relational_const assumes constant operands.
|
||
|
||
2004-07-19 Gabriel Dos Reis <gdr@integrable-solution.net>
|
||
|
||
* doc/sourcebuild.texi: Add libcpp, now that CPP has its own
|
||
directory.
|
||
|
||
2004-07-19 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-tree.h (struct c_expr): Define.
|
||
(C_SET_EXP_ORIGINAL_CODE): Remove.
|
||
(parser_build_binary_op, build_compound_expr): Update prototypes.
|
||
* c-parse.in (%union): Add exprtype.
|
||
(FUNC_NAME): Mark as ttype.
|
||
(expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
|
||
exprtype.
|
||
(expr): Update. Define directly in terms of expr_no_commas
|
||
instead of using nonnull_exprlist.
|
||
(nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
|
||
offsetof_member_designator, typespec_nonreserved_nonattr, init,
|
||
initval, designator, component_declarator,
|
||
component_notype_declarator, enumerator, array_declarator,
|
||
condition, exexpr, switch_statement, stmt_nocomp, stmt,
|
||
nonnull_asm_operands, ivar_declarator, receiver): Update. Don't
|
||
set C_EXP_ORIGINAL_CODE. Use TREE_NO_WARNING for assignments
|
||
where appropriate.
|
||
* c-common.h (C_EXP_ORIGINAL_CODE): Remove.
|
||
* c-common.c (c_common_truthvalue_conversion): Don't check
|
||
C_EXP_ORIGINAL_CODE.
|
||
* c-typeck.c (parser_build_binary_op): Use c_expr structures.
|
||
Don't use C_EXP_ORIGINAL_CODE.
|
||
(default_conversion, default_function_array_conversion): Don't use
|
||
C_EXP_ORIGINAL_CODE. Preserve TREE_NO_WARNING.
|
||
(internal_build_compound_expr): Merge into build_compound_expr.
|
||
(build_compound_expr): Take two operands instead of a TREE_LIST.
|
||
* objc/objc-act.c (get_super_receiver): Update calls to
|
||
build_compound_expr.
|
||
|
||
2004-07-18 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* config/sh/sh.c (sh_use_dfa_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
|
||
hook_int_void_1.
|
||
* config/sh/sh.md: Extract pipeline descriptions
|
||
into separate files.
|
||
* config/sh/sh1.md: New file, extracted from sh.md.
|
||
* config/sh/sh4.md: New file, extracted from sh.md.
|
||
* config/sh/shmedia.md: New file, extracted from sh.md
|
||
and rewritten using new-style pipeline description.
|
||
|
||
2004-07-18 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* config/pa/pa.md: Delete the two remaining define_peephole
|
||
patterns.
|
||
|
||
2004-07-18 Steven Bosscher <stevenb@suse.de>
|
||
Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-common.c (c_common_truthvalue_conversion): Don't warn if
|
||
TREE_NO_WARNING is set.
|
||
|
||
2004-07-18 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
|
||
simplify_builtin_strncmp): Delete.
|
||
(fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
|
||
Change argument to accept an arglist instead of an "exp". Assume
|
||
that the return type is always integer_type_node. Copy missing
|
||
transformations from their now obsolete simplify_builtin_*
|
||
equivalents.
|
||
(fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
|
||
fold_builtin_strcmp and fold_builtin_strncmp.
|
||
(simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
|
||
and fold_builtin_strncmp instead of simplify_builtin_memcmp,
|
||
simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
|
||
|
||
2004-07-18 Daniel Jacobowitz <dan@debian.org>
|
||
|
||
* Makefile.in (tree-alias-common.o): Update dependencies.
|
||
|
||
2004-07-17 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* cfgloop.c (flow_loop_nested_p): Fix comment.
|
||
|
||
2004-07-17 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/16115
|
||
* stor-layout.c (relayout_decl): New fn.
|
||
* tree.h: Declare it.
|
||
(DECL_BY_REFERENCE): New macro.
|
||
|
||
2004-07-17 Eric Botcazou <ebotcazou@act-europe.fr>
|
||
|
||
* libgcc2.c (__enable_execute_stack): New symbol.
|
||
* libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4
|
||
and declare __enable_execute_stack.
|
||
* mklibgcc.in (lib2funcs): Add _enable_execute_stack.
|
||
* config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
|
||
* config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
|
||
ENABLE_EXECUTE_STACK.
|
||
* config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
|
||
on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
|
||
* config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
|
||
ENABLE_EXECUTE_STACK.
|
||
* config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
|
||
* config/i386/i386.c (x86_initialize_trampoline): Conditionalize
|
||
on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
|
||
* config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
|
||
ENABLE_EXECUTE_STACK.
|
||
* config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
|
||
* config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
|
||
* config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
|
||
* config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
|
||
* config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
|
||
on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
|
||
(sparc64_initialize_trampoline): Likewise.
|
||
* doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
|
||
|
||
2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* langhooks.h (builtin_function): New langhook.
|
||
* langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
|
||
(LANG_HOOKS_INITIALIZER): Update.
|
||
* tree.h (builtin_function): Remove.
|
||
* doc/tm.texi: Update.
|
||
* c-tree.h (builtin_function): Declare.
|
||
* c-common.c, config/alpha/alpha.c, config/arm/arm.c,
|
||
config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
|
||
config/ia64/ia64.c, config/iq2000/iq2000.c,
|
||
config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
|
||
config/stormy16/stormy16.c: All callers of builtin_function
|
||
changed.
|
||
|
||
2004-07-17 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/16556
|
||
* config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
|
||
Remove white space after the backslash.
|
||
|
||
2004-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/16294
|
||
* resource.c (return_insn_p): New predicate.
|
||
(mark_target_live_regs): Use it. Special-case return insns.
|
||
(init_resource_info): Use it. Don't scan the epilogue past
|
||
a return.
|
||
|
||
2004-07-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
* loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
|
||
destroy dominance information.
|
||
* passes.c (rest_of_handle_loop2): Free dominance information.
|
||
* tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
|
||
jump threading.
|
||
(thread_jumps): Update dominance information and remove unreachable
|
||
blocks.
|
||
* tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance
|
||
information and remove the unreachable block.
|
||
|
||
2004-07-17 Graham Stott <graham.stott@btinternet.com>
|
||
|
||
* emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
|
||
|
||
2004-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
|
||
|
||
* doc/sourcebuild.texi: Remove libf2c entry.
|
||
|
||
2004-07-17 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* config/i386/i386.md (movv16qi_internal): Fix typo.
|
||
|
||
2004-07-17 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* final.c (final_scan_insn): Fix broken commit from previous
|
||
patch.
|
||
|
||
2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-typeck.c (parser_build_binary_op): Condition warnings for
|
||
X<=Y<=Z on -Wparentheses instead of -Wextra.
|
||
* doc/invoke.texi: Update. Document that most of -Wparentheses is
|
||
supported for C only.
|
||
|
||
2004-07-17 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* cfgcleanup.c (try_simplify_condjump): Don't remove line
|
||
notes to avoid unreachable code warnings.
|
||
* toplev.c (backend_init): Don't emit line notes for
|
||
unreachable code warnings.
|
||
|
||
* combine.c (distribute_notes): Don't distribute a
|
||
REG_VTABLE_REF note.
|
||
* final.c (final_scan_insn): Don't handle it.
|
||
* rtl.c (reg_note_name): Remove it.
|
||
* rtl.h (enum reg_node): Dito.
|
||
|
||
* emit-rtl.c (force_line_numbers, restore_line_number_status):
|
||
Remove.
|
||
* rtl.h (force_line_numbers, restore_line_number_status):
|
||
Remove prototypes.
|
||
|
||
* stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
|
||
* tree-eh.c (using_eh_for_cleanups_p): ...here. Make static.
|
||
(using_eh_for_cleanups): Also moved here.
|
||
|
||
* expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
|
||
<SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY. Update calls
|
||
to expand_start_case and add_case_node.
|
||
* stmt.c (struct nesting): Cleanup unused fields condition_code,
|
||
last_unconditional_cleanup, nominal_type, printname, and
|
||
line_number_status.
|
||
(struct fixup_goto): Remove.
|
||
(struct stmt_status): Remove x_goto_fixup_chain field.
|
||
(goto_fixup_chain): Remove.
|
||
(strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
|
||
pushcase, pushcase_range): Remove.
|
||
(expand_start_bindings_and_block): Don't set unused fields in
|
||
the nesting stack.
|
||
(expand_start_case, add_case_node): Cleanup unused formal arguments.
|
||
(expand_end_case_type): Don't simplify the case-list. Use emit_jump
|
||
instead of emit_jump_if_reachable.
|
||
(emit_case_nodes): Likewise.
|
||
* tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
|
||
static.
|
||
(update_eh_label): Work around left-over exception handing regions.
|
||
* tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
|
||
* tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
|
||
(pass_cleanup_cfg_post_optimizing): New pass.
|
||
(init_tree_optimization_passes): Run the new pass after all
|
||
optimizations.
|
||
* tree.h (pushcase, pushcase_range): Remove prototypes.
|
||
(expand_start_case, add_case_node): Update prototypes.
|
||
|
||
2004-07-16 Krister Walfridsson <cato@df.lth.se>
|
||
|
||
* tree-inline.c (estimate_num_insns_1): Correct increase of count.
|
||
|
||
2004-07-16 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (std_expand_builtin_va_arg): Remove.
|
||
(expand_builtin_va_arg): Remove.
|
||
* expr.h: Don't declare them.
|
||
* gimplify.c (mark_decls_volatile_r): Remove.
|
||
(copy_if_shared_r): Don't call it.
|
||
* target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
|
||
* expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
|
||
* gimple-low.c (lower_stmt): Likewise.
|
||
* tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
|
||
* tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
|
||
* tree-ssa-operands.c (get_expr_operands): Likewise.
|
||
* doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
|
||
EXPAND_BUILTIN_VA_ARG.
|
||
* system.h (EXPAND_BUILTIN_VA_ARG): Poison.
|
||
* config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
|
||
config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
|
||
config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
2004-07-16 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-pre.c (insert_aux): Break out if we hit
|
||
a critical edge.
|
||
|
||
2004-07-16 Richard Henderson <rth@redhat.com>
|
||
|
||
* basic-block.h (remove_fake_exit_edges): Declare.
|
||
* cfganal.c (remove_fake_predecessors): Rename from
|
||
remove_fake_successors; iterate over predecessors.
|
||
(remove_fake_exit_edges): New.
|
||
* cfgcleanup.c (try_optimize_cfg): Use it.
|
||
* gcse.c (one_pre_gcse_pass, store_motion): Likewise.
|
||
* predict.c (estimate_probability): Likewise.
|
||
(tree_estimate_probability, note_prediction_to_br_prob): Likewise.
|
||
* tree-cfg.c (make_edges): Likewise.
|
||
* tree-ssa-pre.c (fini_pre): Likewise.
|
||
* profile.c (instrument_edges): Don't remove_fake_edges.
|
||
(branch_prob): Do it earlier here.
|
||
|
||
2004-07-16 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
|
||
switchification wrt CONSTRUCTOR. Document the reason.
|
||
|
||
2004-07-16 Frank Ch. Eigler <fche@redhat.com>
|
||
|
||
* tree-mudflap.c (mf_file_function_line_tree): Correct typo
|
||
that prevented descriptive __mf_check source location strings.
|
||
|
||
2004-07-16 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-def (WITH_SIZE_EXPR): New.
|
||
* explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
|
||
* expr.c (expand_expr_real_1): Likewise.
|
||
* gimplify.c (maybe_with_size_expr): New.
|
||
(gimplify_arg, gimplify_modify_expr): Use it.
|
||
(gimplify_modify_expr_to_memcpy): Take size parameter.
|
||
(gimplify_modify_expr_to_memset): Likewise.
|
||
(gimplify_expr): Handle WITH_SIZE_EXPR.
|
||
* tree-alias-common.c (find_func_aliases): Likewise.
|
||
* tree-eh.c (tree_could_trap_p): Likewise.
|
||
(tree_could_throw_p): Likewise.
|
||
* tree-gimple.c (is_gimple_lvalue): Likewise.
|
||
(get_call_expr_in): Likewise.
|
||
* tree-inline.c (estimate_num_insns_1): Likewise.
|
||
(expand_calls_inline): Likewise.
|
||
* tree-nested.c (convert_call_expr): Likewise.
|
||
* tree-pretty-print.c (dump_generic_node): Likewise.
|
||
* tree-sra.c (sra_walk_expr): Likewise.
|
||
* tree-ssa-alias.c (add_pointed_to_expr): Likewise.
|
||
* tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
|
||
* tree-ssa-operands.c (get_expr_operands): Likewise.
|
||
* tree-tailcall.c (find_tail_calls): Likewise.
|
||
|
||
* calls.c (expand_call): Reset old_stack_allocated after
|
||
calling emit_stack_restore.
|
||
|
||
2004-07-16 Richard Henderson <rth@redhat.com>
|
||
|
||
* langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
|
||
lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
|
||
* langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
|
||
* langhooks.h (struct lang_hooks_for_tree_inlining): Remove
|
||
copy_res_decl_for_inlining.
|
||
|
||
* tree-inline.c (declare_return_variable): New modify_dest argument.
|
||
Use it as the return value, when possible or manditory. Handle
|
||
TREE_ADDRESSABLE types.
|
||
(expand_call_inline): Extract MODIFY_EXPR lhs for call. Simplify
|
||
replacement of CALL_EXPR.
|
||
|
||
2004-07-16 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-flow.h (struct var_ann_d): Remove has_hidden_use.
|
||
* gimple-low.c (expand_var_p): Don't check it.
|
||
* tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
|
||
* tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
|
||
* tree-ssa-operands.c (add_stmt_operand): Likewise.
|
||
* tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
|
||
(find_referenced_vars): Don't call them.
|
||
* tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
|
||
|
||
2004-07-16 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.c (pass_by_reference): True for all variable sized types.
|
||
|
||
2004-07-16 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
|
||
* tree-pretty-print.c: Include tree-chrec.h.
|
||
(dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
|
||
and POLYNOMIAL_CHREC nodes.
|
||
|
||
2004-07-16 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* builtins.c (expand_builtin_stpcpy): Do not create temporary
|
||
reg with VOIDmode.
|
||
|
||
2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
|
||
|
||
2004-07-16 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390.md: Changed every occurence of BASE_REGISTER
|
||
to BASE_REGNUM.
|
||
* config/s390/s390.c: Likewise.
|
||
* config/s390/s390.h: Likewise.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.md (addsi3, adddi3): Remove special handling
|
||
of $sp adds. Remove REGNO checks from mips16 patterns.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.md: Delete outdated comment.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.c (get_float_compare_codes): Delete.
|
||
(mips_emit_compare): New function, mostly extracted from
|
||
get_float_compare_codes and gen_conditional_branch.
|
||
(gen_conditional_branch, gen_conditional_move): Use it.
|
||
|
||
2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* genautomata.c (add_vect): Speedup by using integers as
|
||
bit-vectors for walking through the comb_vect and finding
|
||
a match.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
|
||
operand is an uns_arith_operand; use subtraction otherwise.
|
||
* config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
|
||
not just arith_operands.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips-protos.h (gen_int_relational): Delete.
|
||
(mips_emit_scc): Declare.
|
||
* config/mips/mips.c (internal_test): Delete.
|
||
(sle_operand, sleu_operand): New functions.
|
||
(map_test_to_internal_test, gen_int_relational): Delete.
|
||
(mips_emit_binary, mips_relational_operand_ok_p)
|
||
(mips_emit_int_relational, mips_zero_if_equal)
|
||
(mips_emit_scc): New functions.
|
||
(gen_conditional_branch): Rework to use mips_emit_int_relational.
|
||
* config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
|
||
sleu_operand.
|
||
* config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
|
||
(sltu, sleu): Use mips_emit_scc.
|
||
(*sge_[sd]i, *sgeu_[sd]i): New patterns.
|
||
(*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
|
||
(*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
|
||
(*sne_[sd]i): Likewise sne_[sd]i_zero.
|
||
(*sgt_[sd]i): ...and sgt_[sd]i.
|
||
(*slt_[sd]i): ...and slt_[sd]i.
|
||
(*sgtu_[sd]i): ...and sgtu_[sd]i.
|
||
(*sltu_[sd]i): ...and sltu_[sd]i.
|
||
(*sleu_[sd]i): ...and sleu_[sd]i_const.
|
||
Name previously unnamed mips16 patterns. Formatting fixes.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
|
||
(branch_type): Delete.
|
||
(gen_conditional_branch, gen_conditional_move)
|
||
(mips_gen_conditional_trap): Update after name change. Get the
|
||
comparison mode from cmp_operands[0].
|
||
* config/mips/mips.h (cmp_type, branch_type): Delete.
|
||
(cmp_operands): Renamed from branch_cmp.
|
||
* config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
|
||
name change. Don't set branch_type.
|
||
(seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
|
||
mode class of cmp_operands[0] rather than branch_type. Update after
|
||
name change.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
|
||
of 0...255 to 0 when inside a SET.
|
||
|
||
2004-07-16 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.md: Remove mips16 define_peepholes.
|
||
|
||
2004-07-16 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
|
||
(fini_pre): Remove fake edges.
|
||
|
||
2004-07-15 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-ssa-operands.c (get_expr_operands): Use a switch. Split out...
|
||
(get_indirect_ref_operands, get_call_expr_operands): ... these.
|
||
|
||
2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h (VEC_address): New function.
|
||
|
||
2004-07-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR middle-end/15885
|
||
* gimplify.c (gimplify_arg): New fn, split out from...
|
||
(gimplify_call_expr): Here. Special-case BUILT_IN_VA_START.
|
||
|
||
2004-07-15 Roman Zippel <zippel@linux-m68k.org>
|
||
|
||
* config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
|
||
generate code which is generated by pushqi1 now
|
||
* config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
|
||
|
||
2004-07-15 Roman Zippel <zippel@linux-m68k.org>
|
||
|
||
* combine.c (simplify_set): match the mode of the constant 0 with
|
||
the tested operand to match the compare behaviour and the
|
||
simplify_relational_operation() expectation.
|
||
|
||
2004-07-15 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* config/rs6000/rs6000.md ("bunordered"): Disable for e500.
|
||
("bordered"): Same.
|
||
|
||
2004-07-15 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
|
||
unconditionally.
|
||
* config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
|
||
|
||
2004-07-15 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.c (mips_adjust_insn_length): Fix handling of
|
||
calls in mips16 code.
|
||
|
||
2004-07-15 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
|
||
the destination of the li as well as for the neg.
|
||
|
||
2004-07-15 Frank Ch. Eigler <fche@redhat.com>
|
||
|
||
g++/15861
|
||
* cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
|
||
* cgraph.h: Update declaration.
|
||
* c-decl.c (build_cdtor): Update call with default priority.
|
||
* coverage.c (create_coverage): Ditto.
|
||
* tree-mudflap.c (mf_init_fndecl): New tree.
|
||
(mudflap_init): Set it.
|
||
(mudflap_register_call): Arrange to call __mf_init before the first
|
||
__mf_register call.
|
||
(mudflap_finish_file): Mark the mudflap static initializer as extra
|
||
high priority, to beat all C++ static constructors.
|
||
|
||
2004-07-15 Jeff Law <law@redhat.com>
|
||
|
||
* loop.c (check_insn_for_givs): Restore check for code labels that was
|
||
accidentally deleted by a recent checkin.
|
||
|
||
2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h (VEC_T_truncate): Allow truncation of an empty vector.
|
||
(VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
|
||
|
||
2004-07-14 Richard Henderson <rth@redhat.com>
|
||
|
||
* print-tree.c (print_node): Fix casts last change.
|
||
|
||
2004-07-15 Paul Brook <paul@codesourcery.com>
|
||
|
||
* dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
|
||
to TARGET_UNWIND_INFO.
|
||
* except.c (output_function_exception_table): Ditto.
|
||
* except.h: Ditto.
|
||
* opts.c (decode_options): Ditto.
|
||
* passes.c (rest_of_handle_final): Ditto.
|
||
* final.c (final_start_function): Ditto.
|
||
(final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
|
||
target hook.
|
||
* targhooks.h (default_unwind_emit): Declare.
|
||
* targhooks.c (default_unwind_emit): New function.
|
||
* target-def.h: Define and use TARGET_UNWIND_EMIT.
|
||
* target.h (struct gcc_target): Add unwind_emit.
|
||
* config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
|
||
* config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
|
||
Remove IA64_UNWIND_EMIT.
|
||
* doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
|
||
|
||
2004-07-14 Richard Henderson <rth@redhat.com>
|
||
|
||
* print-tree.c (print_node): Handle SSA_NAME.
|
||
|
||
2004-07-14 James E Wilson <wilson@specifixinc.com>
|
||
|
||
PR target/16325
|
||
* config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
|
||
and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
|
||
|
||
2004-07-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* expr.c (expand_assignment): Reenable bitfield += optimizations.
|
||
Use alias set 0 for memory, do proper mode calculations and adjust
|
||
address for memories.
|
||
|
||
2004-07-14 Per Bothner <per@bothner.com>
|
||
|
||
* input.h: If USE_MAPPED_LOCATION, define separate expanded_location
|
||
structure with extra column field.
|
||
* tree.c (expand_location): Also fill in column field.
|
||
* gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype
|
||
gets confused by the two conditionally-compiled definitions.
|
||
|
||
2004-07-14 Eric Christopher <echristo@redhat.com>
|
||
|
||
* calls.c (expand_call): Fix typo in comment.
|
||
|
||
2004-07-14 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
|
||
comparision of TFmode.
|
||
|
||
2004-07-14 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
|
||
(alpha_gimplify_va_arg): ... handling here. Use pass_by_reference.
|
||
* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
|
||
* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
|
||
* config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
|
||
* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
|
||
* config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
|
||
* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
|
||
|
||
2004-07-14 Mike Stump <mrs@apple.com>
|
||
|
||
* config/darwin.h (WINT_TYPE): Define to be int to match
|
||
system header files.
|
||
|
||
2004-07-14 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* config/xtensa/xtensa.c (function_arg_advance): Check for args
|
||
that must be passed in the stack.
|
||
(xtensa_gimplify_va_arg_expr): Skip special-case padding for small
|
||
arguments if the size is not a constant.
|
||
|
||
2004-07-14 Per Bothner <per@bothner.com>
|
||
|
||
* c-typeck.c (emit_side_effect_warnings): Use EXPR_HAS_LOCATION
|
||
instead of EXPR_LOCUS in a boolean context, which is always true
|
||
if --enable-mapped-location.
|
||
* stmt.c (warn_if_unused_value): Likewise. Also use EXPR_LOCATION.
|
||
|
||
2004-07-14 Richard Henderson <rth@redhat.com>
|
||
|
||
* dominance.c (struct dom_info): Add fake_exit_edge.
|
||
(init_dom_info): Allocate it.
|
||
(free_dom_info): Free it.
|
||
(calc_dfs_tree): Set it. Handle noreturn and infinite loops
|
||
in two passes.
|
||
(calc_idoms): Honor fake_exit_edge.
|
||
|
||
2004-07-13 Jason Merrill <jason@redhat.com>
|
||
|
||
* tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
|
||
(rhs_test_for): New fn.
|
||
(is_gimple_tmp_rhs): Rename from is_gimple_rhs.
|
||
* tree-gimple.h: Declare them.
|
||
* gimplify.c (gimplify_modify_expr): Use the new fns.
|
||
|
||
2004-07-14 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/arm/arm-protos.h (arm_va_arg): Remove.
|
||
* config/arm/arm.c (arm_va_arg): Remove.
|
||
(arm_init_expanders): Fix alignment of arg_pointer_rtx.
|
||
* config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
2004-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.c (fix_range): New function to mark a range(s) of registers as
|
||
fixed registers.
|
||
(override_options): Call fix_range if the -mfixed-range option string
|
||
is not empty.
|
||
* pa.h (TARGET_OPTIONS): Add -mfixed-range option.
|
||
* doc/invoke.texi (-mfixed-range): Document new option.
|
||
|
||
2004-07-14 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
|
||
for TARGET_64BIT.
|
||
(rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
|
||
|
||
2004-07-14 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expmed.c (expand_sdiv_pow2): New function to expand signed division
|
||
by a positive power of two, split out from expand_divmod. Provide
|
||
an alternate implementation when shifts are expensive. Lower the
|
||
threshold for using a branchless implementation to BRANCH_COST >= 2.
|
||
(expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
|
||
|
||
2004-07-14 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* tree-dfa.c (make_rename_temp): *Really* work just
|
||
like create_tmp_var if called while outside SSA form.
|
||
|
||
2004-07-14 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* config/s390/s390.md ("udivsi3"): Ensure trap is generated
|
||
for division by zero.
|
||
("umodsi3"): Likewise.
|
||
|
||
2004-07-14 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.c (mips_output_move): When generating mips16 code,
|
||
force loads of negative constants to be split.
|
||
* config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
|
||
Generalize SImode li/neg splitter to cope with other modes.
|
||
|
||
2004-07-14 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* expmed.c: Remove more references to QUEUED in the comments.
|
||
* expr.c: Likewise.
|
||
|
||
2004-07-14 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
Revert:
|
||
2004-07-13 Richard Henderson <rth@redhat.com>
|
||
* config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
|
||
correctly.
|
||
|
||
2004-07-14 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* tree-dfa.c (make_rename_temp): Work just like
|
||
create_tmp_var if called while outside SSA form.
|
||
|
||
2004-07-14 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* expr.c (enqueue_insn, finish_expr_for_function,
|
||
protect_from_queue, queued_subexp_p, mark_queue,
|
||
emit_insns_enqueued_after_mark, emit_queue,
|
||
expand_increment): Remove.
|
||
(store_constructor): Expand increment as an assignment.
|
||
(expand_expr_real_1 <case PREINCREMENT_EXPR,
|
||
case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
|
||
case POSTDECREMENT_EXPR>): Abort.
|
||
* expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
|
||
QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
|
||
protect_from_queue, emit_queue, queued_subexp_p): Remove.
|
||
* function.h (pending_chain, x_pending_chain): Remove.
|
||
* rtl.def (QUEUED): Remove.
|
||
|
||
* emit-rtl.c (copy_insn_1, copy_most_rtx,
|
||
set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
|
||
* genattrtab.c (attr_copy_rtx, clear_struct_flag,
|
||
encode_units_mask): Likewise.
|
||
* local-alloc.c (equiv_init_varies_p): Likewise.
|
||
* rtl.c (copy_rtx): Likewise.
|
||
* rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
|
||
* simplify-rtx.c (simplify_gen_subreg): Likewise.
|
||
* config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
|
||
|
||
* builtins.c (expand_builtin, expand_builtin_apply,
|
||
expand_builtin_mathfn, expand_builtin_mathfn_2,
|
||
expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
|
||
Remove calls to emit_queue and protect_from_queue.
|
||
* calls.c (expand_call, precompute_arguments,
|
||
precompute_register_parameters, rtx_for_function_call,
|
||
store_one_arg): Likewise.
|
||
* dojump.c (do_compare_and_jump, do_jump): Likewise.
|
||
* explow.c (memory_address): Likewise.
|
||
* expmed.c (clear_by_pieces_1, clear_storage,
|
||
clear_storage_via_libcall, emit_group_load,
|
||
emit_group_store, emit_store_flag,
|
||
expand_expr_real_1, store_by_pieces,
|
||
store_constructor, store_expr, try_casesi,
|
||
try_tablejump): Likewise.
|
||
* function.c (expand_pending_sizes): Likewise.
|
||
* optabs.c (emit_cmp_and_jump_insns,
|
||
emit_conditional_add, emit_conditional_move,
|
||
expand_fix, expand_float, prepare_cmp_insn): Likewise.
|
||
* stmt.c (emit_case_bit_tests,
|
||
expand_asm_expr, expand_computed_goto,
|
||
expand_decl_init, expand_end_case_type,
|
||
expand_end_stmt_expr, expand_expr_stmt_value,
|
||
expand_return, expand_start_case,
|
||
optimize_tail_recursion): Likewise.
|
||
* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
|
||
* config/s390/s390.c (s390_expand_cmpmem): Likewise.
|
||
|
||
2004-07-14 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* vec.h: Comment fix.
|
||
|
||
2004-07-13 Richard Henderson <rth@redhat.com>
|
||
|
||
* target.h (struct gcc_target): Add calls.pass_by_reference.
|
||
* target-def.h (TARGET_PASS_BY_REFERENCE): New.
|
||
* function.c (pass_by_reference): Use the hook.
|
||
* system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
|
||
* targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
|
||
(hook_pass_by_reference_must_pass_in_stack): New.
|
||
* config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
|
||
(alpha_pass_by_reference): New.
|
||
(TARGET_PASS_BY_REFERENCE): New.
|
||
* config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/arc/arc.c (arc_pass_by_reference): New.
|
||
(TARGET_PASS_BY_REFERENCE): New.
|
||
* config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): True.
|
||
* config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
|
||
* config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
|
||
* config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/cris/cris.c (cris_pass_by_reference): New.
|
||
(TARGET_PASS_BY_REFERENCE): New.
|
||
* config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
|
||
(FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
|
||
(FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
|
||
* config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
|
||
* config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(frv_function_arg_pass_by_reference): Remove.
|
||
* config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
|
||
* config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
|
||
* config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
|
||
* config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(ia64_pass_by_reference): Rename from
|
||
ia64_function_arg_pass_by_reference.
|
||
* config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
|
||
* config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
|
||
* config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
|
||
* config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
|
||
* config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(m32r_pass_by_reference): Adjust prototype. Make static.
|
||
Handle mode sizes correctly.
|
||
* config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
|
||
(m68hc11_function_arg_pass_by_reference): Remove.
|
||
* config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
|
||
* config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
|
||
* config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
|
||
* config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(mips_va_arg): Use pass_by_reference.
|
||
(mips_pass_by_reference): Rename from function_arg_pass_by_reference.
|
||
Handle mode sizes correctly.
|
||
* config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
|
||
* config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
|
||
* config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(mmix_pass_by_reference): Rename from
|
||
mmix_function_arg_pass_by_reference.
|
||
* config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): True.
|
||
* config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(mn10300_pass_by_reference): New.
|
||
* config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): True.
|
||
* config/pa/pa.c (pa_pass_by_reference): New.
|
||
(TARGET_PASS_BY_REFERENCE): New.
|
||
* config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): True.
|
||
* config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
|
||
* config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
|
||
* config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
|
||
* config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(s390_pass_by_reference): Rename from
|
||
s390_function_arg_pass_by_reference.
|
||
(s390_function_arg_advance): Don't query pass-by-ref.
|
||
(s390_function_arg): Likewise.
|
||
(s390_gimplify_va_arg): Use pass_by_reference.
|
||
(s390_call_saved_register_used): Likewise.
|
||
* config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(shcompact_byref, sh_pass_by_reference): New.
|
||
* config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(SHCOMPACT_BYREF): Remove.
|
||
* config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
|
||
* config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
|
||
(sparc_gimplify_va_arg): Use pass_by_reference.
|
||
* config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
|
||
(v850_pass_by_reference): New.
|
||
* config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
(FUNCTION_ARG_CALLEE_COPIES): True.
|
||
* doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
|
||
FUNCTION_ARG_PASS_BY_REFERENCE docs.
|
||
|
||
2004-07-14 Richard Henderson <rth@redhat.com>
|
||
Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips-protos.h (mips_va_arg): Delete.
|
||
* config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
|
||
* config/mips/mips.c: Include tree-gimple.h.
|
||
(TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
|
||
(mips_arg_info): Remove special handling of must_pass_in_stck args.
|
||
(mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
|
||
(function_arg_pass_by_reference): Return true if must_pass_in_stack.
|
||
|
||
2004-07-13 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
|
||
arguments for COND_EXPR in big-endian adjustment code.
|
||
|
||
2004-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
|
||
* pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
|
||
* pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
|
||
* pa64-regs.h (REG_ALLOC_ORDER): Likewise.
|
||
|
||
2004-07-13 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR tree-optimization/16443
|
||
* tree-ssa-alias.c: Add more description for
|
||
CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
|
||
* tree-ssa-operands.c (get_asm_expr_operands): Re-order the
|
||
clobbering of call-clobbered and addressable variables. If
|
||
there are any before aliases have been computed, add them.
|
||
|
||
2004-07-13 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-optimize.c (execute_todo): Flush DUMP_FILE before
|
||
verification.
|
||
|
||
2004-07-13 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
|
||
of build_int_2. Convert both operands of PLUS_EXPR and MULT_EXPR
|
||
to the same type.
|
||
|
||
2004-07-13 Per Bothner <per@bothner.com>
|
||
|
||
* collect2.c (main): Handle --no-demangle and --demangle flags.
|
||
|
||
2004-07-13 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* Makefile.in (OBJS-common): Add tree-data-ref.o.
|
||
(tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
|
||
(tree-data-ref.o): New rule.
|
||
* lambda.h: New file.
|
||
* tree-data-ref.c: New file.
|
||
* tree-data-ref.h: New file.
|
||
* tree.c (int_cst_value, tree_fold_gcd): New functions.
|
||
* tree.h (int_cst_value, tree_fold_gcd): Declared here.
|
||
|
||
2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/13926
|
||
* config/sparc/sparc-protos.h (output_ubranch): New prototype.
|
||
* config/sparc/sparc.c (output_ubranch): New function.
|
||
* config/sparc/sparc.md (jump pattern): Use it.
|
||
|
||
2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/16494
|
||
* config/sparc/sparc.c (output_cbranch): Properly guard
|
||
the code handling far branches with TARGET_V9.
|
||
* config/sparc/sparc.md (length attribute): Document the
|
||
side-effect of having a length greater or equal to 3.
|
||
|
||
2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
Lloyd Parkes <lloyd@must-have-coffee.gen.nz>
|
||
|
||
PR target/15186
|
||
* config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
|
||
/usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
|
||
|
||
2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
Martin Sebor <sebor@roguewave.com>
|
||
|
||
PR target/12602
|
||
* doc/invoke.texi (SPARC options): Document -threads
|
||
and -pthreads on Solaris.
|
||
|
||
2004-07-13 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (std_gimplify_va_arg_expr): Handle types passed
|
||
by reference.
|
||
(ind_gimplify_va_arg_expr): Remove.
|
||
* tree.h (ind_gimplify_va_arg_expr): Remove.
|
||
* config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
|
||
* config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
|
||
argsp to be null.
|
||
|
||
* config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
|
||
(TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
|
||
* config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
|
||
config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
|
||
config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
|
||
|
||
2004-07-13 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.c (pass_by_reference): New.
|
||
(assign_parm_find_data_types): Use it.
|
||
* calls.c (initialize_argument_information): Likewise.
|
||
(emit_library_call_value_1): Likewise.
|
||
* expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
|
||
* function.h (pass_by_reference): Declare.
|
||
|
||
2004-07-13 Richard Henderson <rth@redhat.com>
|
||
|
||
* target-def.h (TARGET_MUST_PASS_IN_STACK): New.
|
||
* target.h (struct gcc_target): Add calls.must_pass_in_stack.
|
||
* expr.h (MUST_PASS_IN_STACK): Remove.
|
||
* system.h (MUST_PASS_IN_STACK): Poison.
|
||
* tree.h (must_pass_in_stack_var_size): Declare.
|
||
(must_pass_in_stack_var_size_or_pad): Declare.
|
||
* calls.c (must_pass_in_stack_var_size): New.
|
||
(must_pass_in_stack_var_size_or_pad): Rename from
|
||
default_must_pass_in_stack.
|
||
* config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
|
||
(TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/fr30/fr30.c (fr30_must_pass_in_stack): New.
|
||
(TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/frv/frv.c (frv_must_pass_in_stack): New.
|
||
(TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
|
||
* config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
(ix86_must_pass_in_stack): Make static.
|
||
* config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
|
||
* config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
(mcore_must_pass_on_stack): Remove.
|
||
* config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
|
||
(TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
|
||
* config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
|
||
* config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
|
||
* doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
|
||
MUST_PASS_IN_STACK.
|
||
|
||
* calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
|
||
config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
|
||
config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
|
||
config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
|
||
config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
|
||
config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
|
||
config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
|
||
config/xtensa/xtensa.c: Use target hook.
|
||
|
||
2004-07-13 Anthony Heading <aheading@jpmorgan.com>
|
||
|
||
* configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
|
||
* configure: Rebuilt.
|
||
|
||
2004-07-13 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* doc/invoke.texi: Remove documentation for MIPS -mrnames option.
|
||
* config/mips/mips.h (mips_reg_names): Don't declare.
|
||
(MASK_NAME_REGS): Delete. Shuffle other MASK_* values down.
|
||
(TARGET_NAME_REGS): Delete.
|
||
(TARGET_SWITCHES): Remove -mrnames.
|
||
(REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
|
||
(ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
|
||
in REGISTER_NAMES.
|
||
* config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
|
||
(override_options): Remove handling of TARGET_NAME_REGS.
|
||
|
||
2004-07-13 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.h (TARGET_*): Boolify.
|
||
|
||
2004-07-12 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config.gcc: Add sh-*-symbianelf target.
|
||
* config/sh/sh.c: Add new target macros:
|
||
TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
|
||
TARGET_CXX_IMPORT_EXPORT_CLASS.
|
||
(sh_file_start): Create a definition of the .directive section.
|
||
(sh_attribute): Add dllimport and dllexport attributes.
|
||
* config/sh/symbian-pre.h: New file.
|
||
* config/sh/symbian-post.h: New file.
|
||
* config/sh/symbian.c: New file. Contains Symbian specific
|
||
functions.
|
||
* config/sh/sh-protos.h: Add prototypes for new functions
|
||
provided by symbian.c.
|
||
* config/sh/t-symbian: New file.
|
||
* doc/extend.texi: Document support for dllimport and dllexport
|
||
attributes by the sh-symbianelf target.
|
||
|
||
2004-07-12 James E Wilson <wilson@specifixinc.com>
|
||
|
||
* Makefile.in (AR): Use @AR@ not ar.
|
||
(NM): New.
|
||
(AR_FOR_TARGET): Use $(AR) not ar for native.
|
||
(NM_FOR_TARGET): Use $(NM) not nm for native.
|
||
* configure.ac: Add AC_CHECK_PROG calls for NM and AR.
|
||
* configure: Regenerate.
|
||
|
||
2004-07-12 David S. Miller <davem@nuts.davemloft.net>
|
||
|
||
* config/sparc/sparc.md (ashlsi3): Eliminate const 1
|
||
special case.
|
||
(ashldi3_sp64): Likewise.
|
||
|
||
2004-07-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/16477
|
||
* pa.c (function_arg): Update comment.
|
||
* pa.h (BLOCK_REG_PADDING): Define.
|
||
|
||
2004-07-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
PR tree-optimization/16461
|
||
* tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
|
||
arguments of phi nodes.
|
||
|
||
2004-07-12 Devang Patel <dpatel@apple.com>
|
||
|
||
* doc/invoke.texi (Darwin Options): Document -gused and -gfull.
|
||
|
||
2004-07-12 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* function.c (expand_function_start): Ensure r_save is in Pmode.
|
||
* calls.c (prepare_call_address): Ensure static_chain_value is
|
||
in Pmode.
|
||
* builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
|
||
r_save_area are in Pmode.
|
||
* config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
|
||
fnaddr, and static_chain are in Pmode.
|
||
|
||
2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/16445
|
||
* config/ia64/ia64.c (bundling): Don't count ignored insns.
|
||
|
||
2004-07-12 Richard Henderson <rth@redhat.com>
|
||
|
||
* target.h (struct gcc_target): Move gimplify_va_arg_expr
|
||
next to build_builtin_va_list.
|
||
* target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
|
||
* builtins.c (gimplify_va_arg_expr): Likewise.
|
||
* gimplify.c (copy_if_shared_r): Likewise.
|
||
|
||
2004-07-12 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* passes.c (rest_of_decl_compilation): Don't defer call of
|
||
assemble_variable if its DECL_RTL is already set.
|
||
|
||
2004-07-12 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* cfgloop.h (struct loop): Add nb_iterations field.
|
||
(current_loops): Declare.
|
||
* tree-chrec.c (chrec_not_analyzed_yet,
|
||
chrec_dont_know, chrec_known, count_ev_in_wider_type,
|
||
chrec_contains_symbols_defined_in_loop): Remove the temporary
|
||
hooks.
|
||
* tree-flow-inline.h (loop_containing_stmt): New function.
|
||
* tree-scalar-evolution.c: Add implementation.
|
||
* tree-scalar-evolution.h: Add declarations.
|
||
|
||
2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/15921
|
||
* Makefile.in (global.o): Add recog.h.
|
||
|
||
* global.c (recog.h): Add the include-clause.
|
||
(bb_info): New member earlyclobber.
|
||
(allocate_bb_info, free_bb_info): Initialize/finish the new
|
||
member.
|
||
(earlyclobber_regclass, earlyclobber_regclass_length): The new
|
||
global variables.
|
||
(check_earlyclobber, regclass_intersect,
|
||
mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
|
||
New functions.
|
||
(calculate_local_reg_bb_info): Calculate value of earlyclobber.
|
||
(make_accurate_live_analysis): Modify pavin.
|
||
|
||
2004-07-12 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-cfg.c (find_taken_edge): Statically compute the truth
|
||
value of a predicate comparing an SSA_NAME to itself.
|
||
|
||
2004-07-12 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
|
||
rs6000 doesn't have shift-and-add or shift-and-sub instructions
|
||
by returning the cost of a multiplication plus an addition.
|
||
|
||
2004-07-12 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR tree-optimization/14107
|
||
* gimplify.c (gimplify_return_expr): Accept a
|
||
RETURN_EXPR with an error argument.
|
||
* tree-optimize.c (init_tree_optimization_passes):
|
||
Run pass_warn_function_return at -O0.
|
||
|
||
2004-07-12 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* doc/invoke.texi: Correct -fasynchronous-unwind-tables option
|
||
index entry.
|
||
|
||
2004-07-12 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/mips/3000.md: Add copyright notice. Remove automota and
|
||
function units; use generic ones instead. Only define reservations
|
||
for things that are different from generic.md. Extend each clause
|
||
to include r3900.
|
||
* config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
|
||
* config/mips/mips.md: Include them. Remove define_function_units.
|
||
(alu, imuldiv): New automata and units.
|
||
|
||
2004-07-12 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* doc/invoke.texi (Optimize Options): Document -frename-registers
|
||
not being enabled by default at -O3.
|
||
|
||
2004-07-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
|
||
floating point additions, to keep real immediate constant positive.
|
||
<MINUS_EXPR>: For floating point subtractions, only transform X - -C
|
||
into X + C, and leave positive real constants as X - C.
|
||
|
||
2004-07-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.c (hppa_gimplify_va_arg_expr): Remove comment.
|
||
|
||
2004-07-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
PR tree-optimization/15654
|
||
* tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
|
||
|
||
2004-07-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (fold_builtin_fputs): Don't bother converting the
|
||
return type to integer_type_node, as we've already checked that
|
||
the result will be ignored.
|
||
|
||
* tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
|
||
that signed addition, subtraction, multiplication, division,
|
||
remainder, negation and absolute value may potentially trap.
|
||
|
||
* fold-const.c (fold_ignored_result): New function to strip
|
||
non-side-effecting tree nodes from an expression whose result
|
||
is ignored.
|
||
(fold_convert): Call fold_ignored_result when casting a value
|
||
to VOID_TYPE.
|
||
(omit_one_operand): Call fold_ignored_result on the "omitted"
|
||
operand when building a COMPOUND_EXPR.
|
||
(pedantic_omit_one_operand): Likewise.
|
||
* tree.h (fold_ignored_result): Prototype here.
|
||
* tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
|
||
when we're going to ignore the result.
|
||
|
||
2004-07-11 Richard Henderson <rth@redhat.com>
|
||
|
||
PR tree-opt/16383
|
||
* tree-ssa-ccp.c (fold_stmt_r): Split out...
|
||
* tree.c (fields_compatible_p, find_compatible_field): ... new.
|
||
* tree.h (fields_compatible_p, find_compatible_field): Declare.
|
||
* tree-sra.c (sra_hash_tree): Hash fields by offset.
|
||
(sra_elt_eq): Use fields_compatible_p.
|
||
(generate_one_element_ref): Use find_compatible_field.
|
||
|
||
2004-07-11 Richard Henderson <rth@redhat.com>
|
||
|
||
PR tree-opt/16422
|
||
* tree-sra.c (generate_one_element_init): New.
|
||
(generate_element_init): Use it.
|
||
(scalarize_init): Push/pop gimplify context around it.
|
||
(find_new_referenced_vars_1, find_new_referenced_vars): New.
|
||
* gimplify.c (gimplify_expr): Allow SSA_NAME.
|
||
|
||
2004-07-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* rtlanal.c (insn_rtx_cost): New function, moved and renamed from
|
||
combine.c's combine_insn_cost.
|
||
* rtl.h (insn_rtx_cost): Prototype here.
|
||
* combine.c (combine_insn_cost): Delete function.
|
||
(combine_validate_cost): Update callers of combine_insn_cost to
|
||
call insn_rtx_cost instead.
|
||
(combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid
|
||
requesting the rtx_cost of call and/or jump instructions.
|
||
|
||
* ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
|
||
rtx_cost directly. Don't request/use the cost of call or jump
|
||
instructions. Return -1 if the cost of any instruction can't be
|
||
determined (or the BB contains a function call).
|
||
(find_if_case_1): Abort transformation if total_bb_rtx_cost returns
|
||
-1 (i.e. can't determine the cost of any instruction or the basic
|
||
block contains a subroutine call).
|
||
(find_if_case_2): Likewise.
|
||
|
||
2004-07-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* rs6000.c (struct processor_costs): Change semantics of fields to
|
||
include the COST_N_INSNS scaling, and update all initializers.
|
||
(rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
|
||
Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
|
||
Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When
|
||
optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
|
||
|
||
2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* LANGUAGES: Remove obsolete information.
|
||
|
||
2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
|
||
SIGBUS signal frames, the PSW address points *to* the faulting
|
||
instruction, not after it.
|
||
|
||
2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* config/s390/s390.c (legitimize_tls_address): Handle constant offsets
|
||
added to TLS symbol addresses.
|
||
|
||
2004-07-11 Richard Henderson <rth@redhat.com>
|
||
|
||
* expmed.c (init_expmed): Use stack-local structures for
|
||
temporary rtl. Don't recognize shifts.
|
||
|
||
2004-07-11 Richard Henderson <rth@redhat.com>
|
||
|
||
* expr.c (store_expr): Don't fiddle subreg promotion for types
|
||
with precision smaller than the mode.
|
||
|
||
2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* tree.h (all_types_permanent): Remove.
|
||
|
||
2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
|
||
maybe_build_cleanup, update_decl_after_saving): Remove hooks.
|
||
* langhooks.c (lhd_clear_binding_stack): Remove.
|
||
* langhooks-def.h (lhd_clear_binding_stack,
|
||
LANG_HOOKS_MAYBE_BUILD_CLEANUP,
|
||
LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
|
||
LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
|
||
LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
|
||
(LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
|
||
* system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
|
||
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
|
||
LANG_HOOKS_MAYBE_BUILD_CLEANUP,
|
||
LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
|
||
* tree.h (poplevel): Don't declare.
|
||
* c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
|
||
LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
|
||
* objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
|
||
LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
|
||
Remove.
|
||
|
||
2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
PR tree-optimization/16437
|
||
* c-common.c (shorten_compare): Don't mark result of conversion to
|
||
narrower signed type as overflowing.
|
||
* fold-const.c (decode_field_reference): Determine whether
|
||
signedness comes from outer type using precision rather than size.
|
||
|
||
2004-07-11 Phil Edwards <phil@codesourcery.com>
|
||
|
||
* configure.ac: Alphabetize --enable-checking list, add
|
||
missing valgrind entry.
|
||
* configure: Regenerate.
|
||
|
||
2004-07-11 Phil Edwards <phil@codesourcery.com>
|
||
|
||
* doc/install.texi (Testing): Fix syntax in "make check" example.
|
||
|
||
2004-07-10 James E Wilson <wilson@specifixinc.com>
|
||
|
||
* config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
|
||
|
||
2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
PR rtl-optimization/16001
|
||
* loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
|
||
niter_expr.
|
||
|
||
2004-07-10 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
|
||
|
||
2004-07-10 Steve Kargl <sgk@troutmask.apl.washington.edu>
|
||
James Morrison <phython@gcc.gnu.org>
|
||
|
||
* doc/contrib.texi (Contributors): Add gfortran contributors and
|
||
fix a couple of typos.
|
||
|
||
2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
PR rtl-optimization/15387
|
||
* calls.c (check_sibcall_argument_overlap_1): Handle pointers
|
||
to incoming args space correctly.
|
||
|
||
2004-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.c (output_indirect_call): Only use %r2 as the link register in
|
||
indirect calls with the long PA 2.0 pc-relative branch.
|
||
|
||
2004-07-10 Daniel Jacobowitz <dan@debian.org>
|
||
|
||
* config/i386/i386.c (override_options): Pick a 64-bit CPU
|
||
for the default tuning if TARGET_64BIT.
|
||
|
||
2004-07-10 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
|
||
to HOST_WIDE_INT. Fold pad-args-down arithmetic.
|
||
|
||
2004-07-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* expr.h (store_bit_field, extract_bit_field): Remove last argument.
|
||
* expmed.c (store_bit_field, extract_bit_field): Remove last
|
||
argument.
|
||
* builtins.c (expand_builtin_signbit): Adjust callers.
|
||
* optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
|
||
* calls.c (store_unaligned_arguments_into_pseudos): Likewise.
|
||
* ifcvt.c (noce_emit_move_insn): Likewise.
|
||
* stmt.c (expand_return): Likewise.
|
||
* expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
|
||
store_field, expand_expr_real_1): Likewise.
|
||
|
||
2004-07-10 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
|
||
|
||
2004-07-09 Mike Stump <mrs@apple.com>
|
||
|
||
* config/darwin.c (no_dead_strip): Add.
|
||
(HAVE_DEAD_STRIP): Add.
|
||
(darwin_emit_unwind_label): Ensure that we don't dead code strip
|
||
the .eh label.
|
||
|
||
2004-07-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
* tree-ssa-loop-im.c: New file.
|
||
* Makefile.in (tree-ssa-loop-im.o): Add.
|
||
* cfgloop.c (superloop_at_depth): New function.
|
||
* cfgloop.h (superloop_at_depth): Declare.
|
||
* common.opt (ftree-lim): New flag.
|
||
* expr.c (array_ref_up_bound): New function.
|
||
* params.def (PARAM_LIM_EXPENSIVE): New parameter.
|
||
* timevar.def (TV_LIM): New timevar.
|
||
* tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
|
||
computing immediate uses of a phi node.
|
||
* tree-flow.h (struct tree_ann_common_d): Add aux field.
|
||
(loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
|
||
* tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
|
||
* tree-pass.h (pass_lim): Declare.
|
||
* tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
|
||
functions.
|
||
(pass_lim): New pass structure.
|
||
* tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
|
||
* tree.c (in_array_bounds_p): New function.
|
||
* tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
|
||
(in_array_bounds_p, array_ref_up_bound): Declare.
|
||
* doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
|
||
* doc/passes.texi (tree-ssa-loop-im.c): Document.
|
||
|
||
2004-07-09 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (expand_builtin_stpcpy): Don't modify len.
|
||
|
||
* tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
|
||
with prejudice.
|
||
|
||
2004-07-10 Kelley Cook <kcook@gcc.gnu.org>
|
||
|
||
* flags.h: Delete redundant prototypes that are being generated
|
||
in options.h from common.opt.
|
||
* common.opt: Add in the expository comments formerly in flags.h.
|
||
|
||
2004-07-09 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
|
||
available for use only when TARGET_MMX/_SSE is set, and check for
|
||
variable argument function if any register count is non-zero.
|
||
(function_arg): Correctly suppress repeated warnings for passing SSE
|
||
vectors are arguments without SSE enabled.
|
||
(ix86_function_arg_boundary): Without SSE enabled, the use of what
|
||
would be SSE register modes does no longer influence the alignment.
|
||
|
||
2004-07-09 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
|
||
Always align upward to arg boundary. Use size_in_bytes/round_up.
|
||
Maintain type-correctness of constants.
|
||
* stor-layout.c (round_up, round_down): Special-case powers of 2.
|
||
|
||
2004-07-09 David S. Miller <davem@nuts.davemloft.net>
|
||
|
||
* config/sparc/sparc.c (*_costs): Scale instruction costs
|
||
by COSTS_N_INSNS.
|
||
(sparc_rtx_costs): Adjust as appropriate.
|
||
|
||
2004-07-09 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* config/i386/mm3dnow.h: New.
|
||
* config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
|
||
|
||
2004-07-09 Richard Henderson <rth@redhat.com>
|
||
|
||
* simplify-rtx.c (simplify_const_relational_operation): Only
|
||
look at bounds of scalar integers.
|
||
|
||
2004-07-09 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
|
||
|
||
2004-07-09 Andrew Pinski <apinski@apple.com>
|
||
|
||
* objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
|
||
always referenced.
|
||
(synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
|
||
UOBJC_METACLASS_decl.
|
||
|
||
2004-07-09 James E Wilson <wilson@specifixinc.com>
|
||
|
||
PR target/16364
|
||
* config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
|
||
do return a parallel if hfa_mode == XFmode and mode == TImode.
|
||
|
||
2004-07-09 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
|
||
permissible for unary plus.
|
||
|
||
2004-07-09 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
|
||
(BT_FN_UINT): Rename from BT_FN_UNSIGNED.
|
||
(BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
|
||
(BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
|
||
BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
|
||
* builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
|
||
BUILTIN_POPCOUNTxxx): Arguments are unsigned.
|
||
(BUILTIN_xxxIMAX): New.
|
||
* builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
|
||
BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
|
||
BUILT_IN_PARITYIMAX.
|
||
|
||
2004-07-09 David S. Miller <davem@nuts.davemloft.net>
|
||
|
||
* config/sparc/sparc.h (processor_costs): Define.
|
||
(sparc_costs): Declare.
|
||
* config/sparc/sparc.c (cypress_costs, supersparc_costs,
|
||
hypersparc_costs, sparclet_costs, ultrasparc_costs,
|
||
ultrasparc3_costs): New.
|
||
(sparc_override_options): Set sparc_costs as appropriate.
|
||
(sparc_rtx_costs): Use sparc_costs instead of messy
|
||
conditionals.
|
||
|
||
2004-07-09 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* doc/md.texi (Processor pipeline description): Mention that
|
||
the old pipeline description is deprecated.
|
||
|
||
* config/rs6000/7450.md (automaton ppc7450): Split up, move
|
||
mciu_7450 function unit to...
|
||
(automaton ppc7450mciu): ...new automaton.
|
||
|
||
* haifa-sched.c (insert_schedule_bubbles_p): Remove.
|
||
(schedule_block): Don't consider inserting bubbles.
|
||
(sched_init): Don't initialize DFA bubbles.
|
||
* target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
|
||
TARGET_SCHED_DFA_BUBBLE): Remove.
|
||
* target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
|
||
* doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
|
||
TARGET_SCHED_DFA_BUBBLE): Remove documentation.
|
||
|
||
* stmt.c (conditional_context): Remove prototype.
|
||
* tree.h (conditional_context): Remove.
|
||
* tree-cfg.c (pre_insert_on_edge): Remove.
|
||
|
||
* c-common.h (c_expand_asm_operands): Remove prototype.
|
||
* c-typeck.c (c_expand_asm_operands): Remove.
|
||
|
||
2004-07-09 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* config/i386/i386.c (classify_argument): Treat V1xx modes the same as
|
||
their base modes. CTImode, TCmode, and XCmode must be passed in memory.
|
||
TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
|
||
and V8QI are class SSE. All sufficiently small remaining vector modes
|
||
must be passed in one or two integer registers.
|
||
(ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
|
||
returned in memory.
|
||
(bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
|
||
__builtin_ia32_pmuludq128 have non-uniform argument and return types
|
||
and must thus be handled explicitly.
|
||
* config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
|
||
MMX and XMM regs.
|
||
(movv8qi_internal, movv4hi_internal, movv2si_internal,
|
||
movv2sf_internal): Permit moving between MMX and XMM registers (since
|
||
MMX areguments and return values are passed in XMM registers).
|
||
(sse2_umulsidi3): Correct type and mode.
|
||
|
||
2004-07-09 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
|
||
|
||
2004-07-09 Eric Christopher <echristo@redhat.com>
|
||
|
||
* config/rs6000/40x.md: Split into two automatons.
|
||
|
||
2004-07-09 Zack Weinberg <zack@codesourcery.com>
|
||
Andrew Pinski <apinski@apple.com>
|
||
|
||
* c-opts.c (c_common_post_options): Force unit-at-a-time mode
|
||
on when we have more than one input file.
|
||
(c_common_parse_file): Restore loop over all input files.
|
||
Clarify diagnostic for -dy when YYDEBUG wasn't defined.
|
||
|
||
* c-decl.c (set_type_context): New function.
|
||
(pop_scope): Use it to set context of types. When we
|
||
encounter a TYPE_DECL, set the context of the attached type too.
|
||
(pop_file_scope): Don't call cpp_undef_all here.
|
||
(diagnose_mismatched_decls): Do not complain about a second
|
||
definition of an 'extern inline' function if it's not in the
|
||
same translation unit. Do not complain about inline
|
||
declaration after use if the use was in a different
|
||
translation unit.
|
||
(merge_decls): Don't clobber olddecl's DECL_CONTEXT.
|
||
(pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
|
||
the external scope.
|
||
(pushdecl_top_level): Likewise.
|
||
(grokdeclarator): Clarify what is going on with setting
|
||
DECL_EXTERNAL on function types, a little.
|
||
(c_write_global_declarations): Don't do anything if
|
||
-fsyntax-only or errors have been encountered.
|
||
|
||
2004-07-09 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
|
||
|
||
2004-07-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/16459
|
||
* pa.c (output_indirect_call): Use %r2 as the link register when
|
||
calling $$dyncall with a pc-relative branch.
|
||
|
||
2004-07-08 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/install.texi (Binaries): Mention OpenPKG.
|
||
|
||
2004-07-09 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
Fix PR tree-optimization/15555
|
||
* tree-dfa.c (dump_variable): If the variable is a pointer
|
||
SSA_NAME, also dump its points-to information.
|
||
* tree-flow.h (struct ptr_info_def): Add field
|
||
is_dereferenced.
|
||
(dump_points_to_info_for): Declare.
|
||
(debug_points_to_info_for): Declare.
|
||
* tree-optimize.c (init_tree_optimization_passes): Add a
|
||
second alias analysis pass after DOM2.
|
||
Move pass_del_pta to a later spot.
|
||
* tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
|
||
create a name tags when we find a dereferenced pointer. Just
|
||
mark the pointer dereferenced.
|
||
(collect_points_to_info_for): Move code to clear points-to
|
||
information to create_name_tags.
|
||
(create_name_tags): New function.
|
||
(compute_flow_sensitive_aliasing): Call it.
|
||
(setup_pointers_and_addressables): Mark type tags for renaming
|
||
here instead of ...
|
||
(create_memory_tag): ... here.
|
||
(merge_pointed_to_info): Do not merge PT_MALLOC attributes.
|
||
(dump_points_to_info_for): Declare extern.
|
||
(debug_points_to_info_for): New function.
|
||
|
||
2004-07-09 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* config/arc/arc.md: Switch to DFA-based scheduler description.
|
||
* config/arc/arc.c: Switch to DFA-based scheduler description.
|
||
|
||
2004-07-09 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
|
||
pointer.
|
||
|
||
2004-07-09 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
|
||
* config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
|
||
* config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/v850/v850-protos.h (v850_va_arg): Remove.
|
||
* config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
|
||
* config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
(FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
|
||
(FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
|
||
|
||
2004-07-09 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR target/12133
|
||
* arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
|
||
and DImode to use +/-4k offset.
|
||
|
||
2004-07-09 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
|
||
Remove.
|
||
* config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(xstormy16_gimplify_va_arg_expr): Rewrite from
|
||
xstormy16_expand_builtin_va_arg.
|
||
* config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/sparc/sparc-protos.h (sparc_va_arg): Remove.
|
||
* config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
|
||
|
||
* config/sh/sh-protos.h (sh_va_arg): Remove.
|
||
* config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
|
||
* config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/pa/pa-protos.h (hppa_va_arg): Remove.
|
||
* config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
|
||
* config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
|
||
* config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
|
||
* config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.md (return): Rewrite length formula.
|
||
* config/sparc/sparc.c (output_return): Pass 1 as 5th
|
||
argument to final_scan_insn when in a delay slot.
|
||
(output_sibcall): Likewise.
|
||
|
||
2004-07-09 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm.c (arm_cpp_interwork): New variable.
|
||
(arm_override_options): Set it if TARGET_INTERWORK was on the command
|
||
line.
|
||
* arm.h (arm_cpp_interwork): Declare it.
|
||
(TARGET_CPU_CPP_BUILTINS): Use it to control definition of
|
||
__THUMB_INTERWORK__ in the preprocessor.
|
||
|
||
2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
|
||
|
||
2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/16416
|
||
* config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
|
||
Override default settings to account for -m32 and -m64.
|
||
|
||
2004-07-08 Randolph Chung <tausq@debian.org>
|
||
|
||
* pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
|
||
|
||
2004-07-09 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* builtins.c (fold_builtin_strncpy): Make sure len is a constant
|
||
before comparing it as such.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
|
||
temporary. Use bit arithmetic to align.
|
||
|
||
2004-07-08 Jerry Quinn <jlquinn@optonline.net>
|
||
|
||
* alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
|
||
nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
|
||
NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
|
||
* bb-reorder.c (mark_bb_for_unlikely_executed_section,
|
||
add_labels_and_missing_jumps, find_jump_block,
|
||
fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
|
||
Likewise.
|
||
* bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
|
||
link_btr_uses, move_btr_def): Likewise.
|
||
* builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
|
||
expand_builtin_expect_jump): Likewise.
|
||
* caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
|
||
* calls.c (expand_call, emit_library_call_value_1): Likewise.
|
||
* cfganal.c (forwarder_block_p): Likewise.
|
||
* cfgbuild.c (inside_basic_block_p, count_basic_blocks,
|
||
make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
|
||
find_bb_boundaries): Likewise.
|
||
* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
|
||
merge_blocks_move_predecessor_nojumps,
|
||
merge_blocks_move_successor_nojumps, insns_match_p,
|
||
flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
|
||
try_optimize_cfg): Likewise.
|
||
* cfgexpand.c (expand_block, construct_exit_block): Likewise.
|
||
* cfglayout.c (skip_insns_after_block, label_for_bb,
|
||
record_effective_endpoints, insn_locators_initialize,
|
||
fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
|
||
* cfgmainloop.c (create_loop_notes): Likewise.
|
||
* cfgrtl.c (delete_insn, delete_insn_chain,
|
||
create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
|
||
update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
|
||
block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
|
||
redirect_branch_edge, force_nonfallthru_and_redirect,
|
||
rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
|
||
rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
|
||
update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
|
||
purge_dead_edges, cfg_layout_redirect_edge_and_branch,
|
||
cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
|
||
cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
|
||
need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
|
||
* combine.c (combine_instructions, can_combine_p, try_combine,
|
||
find_split_point, record_dead_and_set_regs, reg_dead_at_p,
|
||
distribute_notes, distribute_links, insn_cuid): Likewise.
|
||
* cse.c (fold_rtx, cse_insn, cse_around_loop,
|
||
invalidate_skipped_block, cse_set_around_loop,
|
||
cse_end_of_basic_block, cse_main, cse_basic_block,
|
||
cse_condition_code_reg): Likewise.
|
||
* cselib.c (cselib_process_insn): Likewise.
|
||
* ddg.c (create_ddg): Likewise.
|
||
* df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
|
||
Likewise.
|
||
* dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
|
||
gen_label_die, dwarf2out_var_location): Likewise.
|
||
* emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
|
||
next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
|
||
last_call_insn, active_insn_p, next_label, prev_label,
|
||
link_cc0_insns, next_cc0_user, try_split, add_insn_after,
|
||
add_insn_before, remove_insn, add_function_usage_to,
|
||
reorder_insns, find_line_note, remove_unnecessary_notes,
|
||
emit_insn_after_1, classify_insn): Likewise.
|
||
* except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
|
||
connect_post_landing_pads, sjlj_mark_call_sites,
|
||
sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
|
||
can_throw_internal, can_throw_external, set_nothrow_function_flags,
|
||
convert_to_eh_region_ranges): Likewise.
|
||
* explow.c (optimize_save_area_alloca): Likewise.
|
||
* expr.c (expand_expr_real): Likewise.
|
||
* final.c (insn_current_reference_address, compute_alignments,
|
||
shorten_branches, final, scan_ahead_for_unlikely_executed_note,
|
||
final_scan_insn, output_asm_label, leaf_function_p): Likewise.
|
||
* flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
|
||
propagate_block_delete_insn, propagate_one_insn,
|
||
init_propagate_block_info, propagate_block, libcall_dead_p,
|
||
mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
|
||
Likewise.
|
||
* function.c (instantiate_virtual_regs, reorder_blocks_1,
|
||
expand_function_start, expand_function_end, contains,
|
||
thread_prologue_and_epilogue_insns,
|
||
reposition_prologue_and_epilogue_notes): Likewise.
|
||
* gcse.c (constprop_register, bypass_conditional_jumps,
|
||
insert_insn_end_bb, gcse_after_reload): Likewise.
|
||
* genemit.c (gen_expand, gen_split): Likewise.
|
||
* genpeep.c (gen_peephole, main): Likewise.
|
||
* global.c (build_insn_chain): Likewise.
|
||
* graph.c (node_data, print_rtl_graph_with_bb): Likewise.
|
||
* haifa-sched.c (unlink_other_notes, unlink_line_notes,
|
||
get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
|
||
restore_line_notes, rm_redundant_line_notes, rm_other_notes,
|
||
ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
|
||
* ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
|
||
cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
|
||
merge_if_block, block_jumps_and_fallthru_p, find_if_block,
|
||
dead_or_predicable): Likewise.
|
||
* integrate.c (try_constants): Likewise.
|
||
* jump.c (rebuild_jump_labels, cleanup_barriers,
|
||
purge_line_number_notes, init_label_info, mark_all_labels,
|
||
squeeze_notes, get_label_before, get_label_after,
|
||
reversed_comparison_code_parts, simplejump_p, pc_set,
|
||
returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
|
||
delete_barrier, delete_prior_computation, delete_computation,
|
||
delete_related_insns, delete_for_peephole, redirect_jump):
|
||
Likewise.
|
||
* lcm.c (optimize_mode_switching): Likewise.
|
||
* local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
|
||
Likewise.
|
||
* loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
|
||
* loop-invariant.c (find_exits, find_invariants_bb): Likewise.
|
||
* loop-iv.c (simplify_using_assignment): Likewise.
|
||
* loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
|
||
libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
|
||
find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
|
||
loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
|
||
check_insn_for_givs, check_final_value, update_giv_derive,
|
||
basic_induction_var, product_cheap_p, check_dbra_loop,
|
||
loop_insn_first_p, last_use_this_basic_block,
|
||
canonicalize_condition, get_condition, loop_regs_scan, load_mems,
|
||
try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
|
||
* modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
|
||
sms_schedule_by_order): Likewise.
|
||
* optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
|
||
* postreload.c (reload_cse_simplify_operands, reload_combine,
|
||
reload_cse_move2add): Likewise.
|
||
* predict.c (can_predict_insn_p, estimate_probability,
|
||
expected_value_to_br_prob, process_note_predictions): Likewise.
|
||
* print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
|
||
* profile.c (branch_prob): Likewise.
|
||
* ra-build.c (live_out_1, livethrough_conflicts_bb,
|
||
detect_webs_set_in_cond_jump): Likewise.
|
||
* ra-debug.c (ra_print_rtx_object, ra_debug_insns,
|
||
ra_print_rtl_with_bb): Likewise.
|
||
* ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
|
||
* recog.c (next_insn_tests_no_inequality, find_single_use,
|
||
split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
|
||
* reg-stack.c (next_flags_user, record_label_references,
|
||
emit_swap_insn, swap_rtx_condition, subst_stack_regs,
|
||
compensate_edge, convert_regs_1): Likewise.
|
||
* regclass.c (scan_one_insn): Likewise.
|
||
* regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
|
||
regmove_optimize, fixup_match_1, single_set_for_csa,
|
||
combine_stack_adjustments_for_block): Likewise.
|
||
* regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
|
||
* reload.c (find_reloads, find_reloads_address_1, subst_reloads,
|
||
find_equiv_reg): Likewise.
|
||
* reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
|
||
reload_as_needed, emit_input_reload_insns, do_output_reload,
|
||
delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
|
||
Likewise.
|
||
* reorg.c (find_end_label, emit_delay_sequence,
|
||
delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
|
||
get_jump_flags, rare_destination, mostly_true_jump,
|
||
try_merge_delay_insns, redundant_insn, own_thread_p,
|
||
fill_simple_delay_slots, fill_slots_from_thread,
|
||
fill_eager_delay_slots, relax_delay_slots, make_return_insns,
|
||
dbr_schedule): Likewise.
|
||
* resource.c (find_basic_block, next_insn_no_annul,
|
||
find_dead_or_set_registers, mark_target_live_regs): Likewise.
|
||
* rtl.h (RTX_PREV): Likewise.
|
||
* rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
|
||
no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
|
||
reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
|
||
find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
|
||
tablejump_p, computed_jump_p, insns_safe_to_move_p,
|
||
find_first_parameter_load, can_hoist_insn_p): Likewise.
|
||
* sched-deps.c (get_condition, add_dependence, sched_analyze_2,
|
||
sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
|
||
* sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
|
||
schedule_ebbs): Likewise.
|
||
* sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
|
||
is_conditionally_protected, can_schedule_ready_p,
|
||
add_branch_dependences, debug_dependencies): Likewise.
|
||
* stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
|
||
Likewise.
|
||
* unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
|
||
reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
|
||
set_dominates_use, ujump_to_loop_cont): Likewise.
|
||
* var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
|
||
* varasm.c (output_constant_pool_1): Likewise.
|
||
|
||
2004-07-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||
|
||
* tree-scalar-evolution.c: New file.
|
||
* tree-scalar-evolution.h: New file.
|
||
* tree-ssa-loop-niter.c: New file.
|
||
* Makefile.in (SCEV_H): New.
|
||
(tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
|
||
* cfgloop.h (struct loop): Add bounds field.
|
||
* tree-flow.h (struct tree_niter_desc): New type.
|
||
(number_of_iterations_cond, number_of_iterations_exit,
|
||
loop_niter_by_eval, find_loop_niter_by_eval,
|
||
estimate_numbers_of_iterations, can_count_iv_in_wider_type,
|
||
free_numbers_of_iterations_estimates): Declare.
|
||
* tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
|
||
* params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
|
||
* doc/invoke.texi (max-iterations-to-track): Document.
|
||
|
||
2004-07-08 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.c (sh_va_arg): Initinalize lab_over.
|
||
* config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
|
||
(MODE_AFTER): Add cast appropriately.
|
||
* config/sh/sh.md (movdi splitter): Likewise.
|
||
(casesi_worker_2): Add const qualifier appropriately.
|
||
(eh_return): Remove unused variable.
|
||
(insv): Initialize v;
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
|
||
* config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
|
||
* config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
(FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
|
||
|
||
* config/m32r/m32r-protos.h (m32r_va_arg): Remove.
|
||
* config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
|
||
* config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
|
||
* config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
|
||
* config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
|
||
* config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
|
||
* config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/i860/i860-protos.h (i860_va_arg): Remove.
|
||
* config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
|
||
* config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
2004-05-31 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
|
||
|
||
* system.h: Prototype getpagesize if missing.
|
||
* configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/fr30/fr30-protos.h (fr30_va_arg): Remove.
|
||
* config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(fr30_gimplify_va_arg_expr): New.
|
||
(fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
|
||
* config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
2004-07-08 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/16414
|
||
* config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
|
||
of asm_noperands result.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
|
||
* config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
|
||
* config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* builtins.c (ind_gimplify_va_arg_expr): New.
|
||
* tree.h (ind_gimplify_va_arg_expr): Declare.
|
||
* config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
|
||
|
||
2004-07-08 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* expmed.c (extract_bit_field): Correct condition to use vec_extract
|
||
patterns also on vector elements other than the first one.
|
||
* config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
|
||
break statements.
|
||
|
||
2004-07-08 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/rs6000/darwin-ldouble.c: Correct reference
|
||
to the Linnainmaa paper.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/arc/arc-protos.h (arc_va_arg): Remove.
|
||
* config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
|
||
* config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
* config/c4x/c4x-protos.h (c4x_va_arg): Remove.
|
||
* config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
|
||
(c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
|
||
* config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
|
||
|
||
2004-07-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
|
||
|
||
2004-07-08 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* c-decl.c (static_ctors, static_dtors): Make static.
|
||
(pop_file_scope): Call c_common_write_pch and
|
||
cgraph_finalize_compilation_unit here.
|
||
(build_cdtor): Moved here from c-objc-common.c; simplify.
|
||
(c_write_global_declarations_1): Clarify comment.
|
||
(c_write_global_declarations): Close the external scope before
|
||
doing anything else. Call build_cdtor, cgraph_optimize, and
|
||
mudflap_finish_file here.
|
||
* c-lang.c (finish_file): Don't call c_objc_common_finish_file.
|
||
Clarify comment.
|
||
* c-objc-common.c: No need to include cgraph.h.
|
||
(build_cdtor): Moved to c-decl.c.
|
||
(c_objc_common_finish_file): Delete.
|
||
* c-tree.h: Update to match.
|
||
* objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
|
||
(generate_static_references): Set TREE_USED before calling finish_decl.
|
||
Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation
|
||
on the static_instances_decl.
|
||
|
||
2004-07-08 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
|
||
decls when there is only one input translation unit.
|
||
* langhooks.c (lhd_set_decl_assembler_name): Partially revert
|
||
change of 2004-07-05; do not treat declarations with
|
||
DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
|
||
* opts.c (cur_in_fname): Delete.
|
||
* opts.h: Likewise.
|
||
* tree.c: Revert changes of 2004-07-05; no special treatment
|
||
for TRANSLATION_UNIT_DECLs.
|
||
* Makefile.in (tree.o): Update dependencies.
|
||
|
||
2004-07-08 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (fold_builtin_strcpy): Merge functionality from
|
||
simplify_builtin_strcpy. Add additional len argument. No longer
|
||
static. Remove function prototype.
|
||
(fold_builtin_strncpy): Likewise integrate functionality from
|
||
simplify_builtin_strncpy. Add additional slen argument. No
|
||
longer static. Remove function prototype.
|
||
(simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
|
||
(simplify_builtin_fputs): Rename to fold_builtin_fputs. Change
|
||
types of "ignore" and "unlocked" parameters to bool.
|
||
(fold_builtin_1): Add additional ignore argument. Call renamed
|
||
fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
|
||
builtins. Update arguments to fold_builtin_strncpy and
|
||
fold_builtin_strcpy. Add function prototype.
|
||
(fold_builtin): Add additional Boolean ignore argument to pass
|
||
to fold_builtin_1.
|
||
(simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
|
||
and fold_builtin_strncpy instead of simplify_builtin_fputs,
|
||
simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
|
||
|
||
* expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
|
||
simplify_builtin_strncpy): Delete function prototypes.
|
||
* tree.h (fold_builtin_fputs, fold_builtin_strcpy,
|
||
fold_builtin_strncpy): Add function prototypes here.
|
||
(fold_builtin): Update function prototype with new "bool ignore".
|
||
|
||
* tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
|
||
(ccp_fold_builtin): Update call to fold_builtin. Call
|
||
fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
|
||
instead of simplify_builtin_fputs, simplify_builtin_strcpy and
|
||
simplify_builtin_strncpy respectively.
|
||
* fold-const.c (fold): Update call to fold_builtin.
|
||
|
||
2004-07-08 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
|
||
to strcpy.
|
||
|
||
* expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
|
||
(FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
|
||
(FUNCTION_ARG_CALLEE_COPIES): Likewise.
|
||
* calls.c: Remove ifdefs of macros above.
|
||
* functions.c: Likewise.
|
||
* expr.c: Likewise.
|
||
|
||
2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
|
||
(arch attribute): Delete.
|
||
(current_function_calls_alloca attribute): Rename into calls_alloca.
|
||
(calls_eh_return): New attribute.
|
||
(leaf_function): Likewise.
|
||
(length attribute): Fix formula for sibcalls.
|
||
(return insn): Correctly compute the 'length' attribute.
|
||
(do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-cfg.c (make_exit_edges): Use get_call_expr_in.
|
||
(remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
|
||
(tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
|
||
* tree-eh.c (lower_eh_constructs_1): Likewise.
|
||
* tree-sra.c (sra_walk_modify_expr): Likewise.
|
||
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
|
||
(eliminate_unnecessary_stmts): Likewise.
|
||
* tree-ssa-dse.c (dse_optimize_stmt): Likewise.
|
||
* tree-tailcall.c (optimize_tail_call): Likewise.
|
||
* tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
|
||
|
||
2004-07-08 Paolo Bonzini <bonzini@gnu.org>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.c (override_options): Enable
|
||
SSE prefetches with -mtune, as long as we are
|
||
compiling for i686 or higher. All i686 processors
|
||
accept SSE prefetches as NOPS, some i586's don't.
|
||
|
||
2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/10567
|
||
* config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
|
||
|
||
2004-07-08 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
|
||
the handling of clobbering ASM_EXPRs.
|
||
|
||
2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/16430
|
||
* config/sparc/sparc.c (function_value): In 64-bit mode,
|
||
return the aggregates larger than 16 bytes like unions.
|
||
|
||
2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/16199
|
||
* config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
|
||
'temp' is zero, generate new pseudos as needed and emit the
|
||
sequence of insns in single-assignment form. Resync comments
|
||
with code.
|
||
(sparc_emit_set_const64): Pass zero as 'temp' argument to above
|
||
function before reload.
|
||
|
||
2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.c (vec_assert_fail): Remove duplicate 'function'.
|
||
|
||
* vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
|
||
|
||
* vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
|
||
Allocation is signed.
|
||
(VEC_reserve): Return flag, allocation is signed.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-ssa-ccp.c (fold_stmt): Get type directly from
|
||
OBJ_TYPE_REF_OBJECT.
|
||
|
||
2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
Neil Booth <neil@daikokuya.co.uk>
|
||
|
||
PR c/2511
|
||
PR c/3325
|
||
* c-decl.c (finish_struct): Ensure bit-fields are given the
|
||
correct type.
|
||
* c-common.c (c_common_signed_or_unsigned_type): For C, require
|
||
the precision to match as well as the mode.
|
||
* expr.c (reduce_to_bit_field_precision): New function.
|
||
(expand_expr_real_1): Reduce expressions of bit-field type to
|
||
proper precision.
|
||
* langhooks.h (reduce_bit_field_operations): New hook.
|
||
* langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
|
||
Define.
|
||
* c-lang.c, objc/objc-lang.c
|
||
(LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
|
||
* objc/objc-act.c (check_ivars): Convert types to bit-field types
|
||
before checking.
|
||
* tree.c (build_nonstandard_integer_type): New function.
|
||
* tree.h (build_nonstandard_integer_type): New prototype.
|
||
* tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
|
||
conversions between integer and boolean types as useless.
|
||
|
||
2004-07-08 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* c-common.c (c_common_nodes_and_builtins): Do not
|
||
create __builtin_ptrdiff_t and __builtin_size_t.
|
||
|
||
2004-07-08 Andrew Pinski <apinski@apple.com>
|
||
|
||
* Makefile.in (libbackend.o): Add -combine to the gcc
|
||
command line.
|
||
|
||
2004-07-08 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
|
||
Set to -Os.
|
||
|
||
2004-07-08 Richard Henderson <rth@redhat.com>
|
||
|
||
* except.c (expand_eh_region_start, expand_eh_region_end,
|
||
expand_eh_handler, expand_eh_region_end_cleanup,
|
||
expand_start_all_catch, expand_start_catch, expand_end_catch,
|
||
expand_end_all_catch, expand_eh_region_end_allowed,
|
||
expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
|
||
expand_eh_region_end_fixup): Remove.
|
||
* stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
|
||
cleanups, outer_cleanups, label_chain, exception_region.
|
||
(struct goto_fixup): Remove stack_level, cleanup_list_list.
|
||
(struct label_chain): Remove.
|
||
(struct stmt_status): Remove x_stack_block_stack.
|
||
(stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
|
||
fixup_gotos, save_stack_pointer, expand_decl_cleanup,
|
||
expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
|
||
end_cleanup_deferral, last_cleanup_this_contour,
|
||
containing_blocks_have_cleanups_or_stack_level,
|
||
any_pending_cleanups): Remove.
|
||
(expand_null_return_1): Take no arguments.
|
||
(expand_label, expand_naked_return, expand_return,
|
||
expand_start_bindings_and_block, expand_end_bindings, expand_decl,
|
||
expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
|
||
expand_end_case_type): Don't use any of them.
|
||
* calls.c (expand_call): Likewise.
|
||
* dojump.c (do_jump): Likewise.
|
||
* function.c (expand_function_end): Likewise.
|
||
* expr.c (store_expr, expand_expr_real_1): Likewise.
|
||
(safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
|
||
(expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
|
||
CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
|
||
EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
|
||
* fold-const.c (fold_checksum_tree): Use first_rtl_op.
|
||
* gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
|
||
* gimplify.c (gimplify_cleanup_point_expr): Renumber operands
|
||
for WITH_CLEANUP_EXPR.
|
||
(gimple_push_cleanup): Likewise.
|
||
* integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
|
||
* print-tree.c (print_node): Likewise.
|
||
* tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
|
||
* tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
|
||
(has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
|
||
* tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
|
||
(GOTO_SUBROUTINE_EXPR): Remove.
|
||
* tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
|
||
(DECL_TOO_LATE): Remove.
|
||
* except.h, tree.h: Update decls.
|
||
|
||
2004-07-08 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* explow.c (optimize_save_area_alloca): Do not accept parameters.
|
||
* passes.c (rest_of_handle_final): Handle symout.
|
||
(rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
|
||
Push timevar here.
|
||
(rest_of_handle_sched): Break out SMS. Remove ifs for
|
||
flag_schedule_insns and flag_modulo_sched.
|
||
(rest_of_handle_addressof, rest_of_handle_cse2): Garbage
|
||
collect at the end.
|
||
(rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
|
||
(rest_of_handle_partition_blocks, rest_of_handle_sms,
|
||
rest_of_handle_if_after_reload, rest_of_handle_peephole2,
|
||
rest_of_handle_mode_switching, rest_of_handle_jump,
|
||
rest_of_handle_guess_branch_prob, rest_of_handle_eh,
|
||
rest_of_handle_jump2, rest_of_handle_postreload,
|
||
rest_of_handle_flow2, rest_of_clean_state,
|
||
rest_of_handle_shorten_branches,
|
||
rest_of_handle_prologue_epilogue,
|
||
rest_of_handle_branch_target_load_optimize): New.
|
||
(rest_of_compilation): Call the above. Remove ggc_collect
|
||
calls moved to rest_of_handle_*.
|
||
* rtl.h (optimize_save_area_alloca): Do not accept parameters.
|
||
|
||
* dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
|
||
* except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
|
||
* except.h (set_nothrow_function_flags): Update comment.
|
||
* function.c (current_function_nothrow): Remove.
|
||
* output.h (current_function_nothrow): Remove.
|
||
* passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
|
||
* config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
|
||
|
||
2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR bootstrap/16326
|
||
* reorg.c: Revert 2004-06-30 change.
|
||
(find_end_label): If HAVE_epilogue and !HAVE_return,
|
||
return 0 instead of creating a label at the end of the insn chain.
|
||
(optimize_skip): Account for the failure mode of find_end_label.
|
||
(fill_simple_delay_slots): Likewise.
|
||
(fill_slots_from_thread): Likewise.
|
||
(relax_delay_slots): Likewise.
|
||
|
||
2004-07-08 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-flow.h (addressable_vars): Declare.
|
||
* tree-ssa-alias.c (addressable_vars): Define.
|
||
(setup_pointers_and_addressables): Add addressable variables
|
||
to addressable_vars.
|
||
* tree-ssa-operands.c (get_stmt_operands): Move
|
||
handling of ASM_EXPRs ...
|
||
(get_asm_expr_operands): ... here.
|
||
When the ASM_EXPR clobbers memory, also clobber addressable
|
||
variables.
|
||
* tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
|
||
(delete_tree_ssa): Reset addressable_vars.
|
||
|
||
2004-07-07 Jan Beulich <jbeulich@novell.com>
|
||
Richard Henderson <rth@redhat.com>
|
||
|
||
* varasm.c (assemble_variable): Use assemble_zeros for
|
||
zero-initialized variables.
|
||
(categorize_decl_for_section): Honor flag_zero_initialized_in_bss
|
||
for SECCAT_BSS and SECCAT_TBSS.
|
||
|
||
2004-07-07 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
|
||
|
||
* expmed.c (emit_store_flag): Also special-case double-word
|
||
(in-)equality comparison against -1.
|
||
|
||
* config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
|
||
passing arguments the containers for which are registers.
|
||
|
||
* calls.c (emit_library_call_value_1): Use mode of function parameter
|
||
rather than that of argument since constants have none.
|
||
|
||
2004-07-08 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
Introduce H8SX support.
|
||
* expr.c (expand_strcpy): Renamed and moved to...
|
||
* builtins.c (expand_movstr): ... here. Tweak.
|
||
(expand_builtin_strcpy): Adjust. Use movstr if len can't be
|
||
computed or has side effects.
|
||
(expand_builtin_stpcpy): Likewise. Use strcpy if return value is
|
||
unused, or if mempcpy fails. Adjust the return value in the
|
||
latter case. Use movstr if everything else fails.
|
||
* doc/md.texi (movstr): Document.
|
||
(movmemM, clrmemM): Fix explanation of memory block operands.
|
||
* config/h8300/h8300.md (stpcpy): Renamed to...
|
||
(movstr): ... this. Adjust.
|
||
2004-07-07 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
|
||
movmem* and clrstr* to clrmem*.
|
||
2004-06-27 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
|
||
GENERAL_REGS, always.
|
||
(h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
|
||
getting the stack pointer as addr.
|
||
* config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
|
||
from general_operand_dst.
|
||
* config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
|
||
variant of...
|
||
(movmd_internal): ... this. Add modes to operands. Disparage `D'
|
||
instead of requiring it to match only before reload.
|
||
(stpcpy_internal_normal): New, normal-mode variant of...
|
||
(stpcpy_internal): ... this. Add modes to operands. Disparage
|
||
`D' instead of requiring it to match only before reload.
|
||
* config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
|
||
mode argument.
|
||
* config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
|
||
* config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
|
||
h8300_get_index.
|
||
* config/h8300/h8300.md (attr type): Add call.
|
||
(attr can_delay): If type is call, set it no.
|
||
(call, call_value): Set type to call.
|
||
2004-06-21 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
|
||
2004-06-16 Alexandre Oliva <aoliva@redhat.com>
|
||
* tree.c (get_narrower): Don't narrow integral types into
|
||
non-integral types.
|
||
* config/h8300/h8300.c (h8300_expand_epilogue): Initialize
|
||
frame_size *before* the first use.
|
||
* config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
|
||
on input.
|
||
(peephole2): Don't widen instructions that push SP. Move
|
||
decrement of SP to the end of all stm-generating peepholes.
|
||
2003-07-24 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
|
||
and OR to set it to all ones.
|
||
2003-07-24 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
|
||
(call, call_value): Set can_delay to "no".
|
||
2003-07-22 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.md (extzv): Make subreg check more robust.
|
||
2003-07-21 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.md (*brabit): Remove.
|
||
* config/h8300/h8300.md (*brabc, *brabs): Remove mode from
|
||
zero_extract. Use bit_memory_operand as the predicate for
|
||
operand 1 and 'WU' as the constraint. Check the difference
|
||
between the base length and the final one when deciding which
|
||
type of branch to use.
|
||
2003-07-21 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
|
||
Use convert_move to extend the result for TARGET_H8300SX. Check
|
||
for QImode memory references. Optimize the case where the
|
||
destination is a paradoxical subreg.
|
||
2003-07-21 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
|
||
* config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
|
||
2003-07-21 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.md: Include mova.md
|
||
(length_table): Add mova and mova_zero.
|
||
* config/h8300/h8300.c (print_operand): Handle '%o'. Print a length
|
||
after all constant addresses for '%R', '%X', '%T' and '%S'.
|
||
(h8300_mova_length): New function.
|
||
(h8300_insn_length_from_table): Use it to handle mova and mova_zero.
|
||
* config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to
|
||
dependencies for s-config, etc.
|
||
* config/h8300/gemova.sh: New file.
|
||
* config/h8300/mova.md: Generated.
|
||
2003-07-20 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.c (h8300_bitfield_length): New.
|
||
(nibble_operand): Adjust.
|
||
(h8300_binary_length): Handle conditional binary op.
|
||
(h8300_insn_length_from_table): Handle bitfield and bitbranch.
|
||
* config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
|
||
P#<X, respectively. The original P is now IP4>X. Introduced P#>0
|
||
and P#<0, unused so far. W and Y are now prefixes to multi-letter
|
||
constraints. WU is introduced as a variant of U that requires a
|
||
mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
|
||
* config/h8300/h8300.md (attr type): Added bitbranch.
|
||
(attr length_table): Added bitfield and bitbranch.
|
||
(attr length): Compute bitbranch length.
|
||
(andqi): Separate pattern for H8300SX. Use bfld for loading the
|
||
least-significant bit of a byte.
|
||
(brabit, brabc, brabs): New.
|
||
(insv, extzv): Emit bfst and bfld on H8300SX.
|
||
(bfld, bfst, seq, sne): New.
|
||
(bstzhireg, cmpstz, bstz, bistz): New.
|
||
(cmpcondbset, condbset, cmpcondbclr, condbclr): New.
|
||
(cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
|
||
2003-07-11 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
|
||
(h8sx_unary_memory_operator): New function.
|
||
* config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
|
||
(PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
|
||
* config/h8300/h8300.md: Add peepholes to combine reloads and
|
||
arithmetic insns.
|
||
2003-07-10 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
|
||
(*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
|
||
(and?i, ior?i, xor?i): Likewise.
|
||
2003-07-10 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.c: Move enums and prototypes to head of file.
|
||
Various whitespace fixes.
|
||
(h8300_constant_length): New function, split out from...
|
||
(h8300_displacement_size): ...here. Rename h8300_displacement_length.
|
||
(h8300_classify_operand): Use IN_RANGE.
|
||
(h8300_classify_operand): Use h8300_constant_length.
|
||
(h8300_short_move_mem_p): Tighten size check.
|
||
(h8sx_mergeable_memrefs_p): Tighten equality check.
|
||
2003-06-30 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
|
||
for -msx.
|
||
* config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
|
||
* config/h8300/crtn.asm: Likewise.
|
||
* config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers
|
||
if __H8300SX__ is defined.
|
||
2003-06-27 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
|
||
* config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
|
||
(GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
|
||
addresses as mode-dependent.
|
||
* config/h8300/h8300.c (print_operand_address): Update call to
|
||
h8300_get_index.
|
||
(h8300_get_index): Take a mode argument. Rework to fix an
|
||
earlier misunderstanding.
|
||
2003-06-26 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.c (zero_extendqisi2): Force the source operand
|
||
into a register if TARGET_H8300SX.
|
||
(*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
|
||
TARGET_H8300SX. Also disable related define_splits.
|
||
(*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
|
||
2003-06-23 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
|
||
2003-06-20 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.h (OK_FOR_Z): New macro.
|
||
(EXTRA_CONSTRAINT_STR): Check it.
|
||
* config/h8300/h8300.c (h8300_classify_operand): Accept null
|
||
class arguments.
|
||
(h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
|
||
* config/h8300/h8300.md (length_table): Add mov_imm4.
|
||
(movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
|
||
2003-06-20 Richard Sandiford <rsandifo@redhat.com>
|
||
* genattrtab.c (write_eligible_delay): Allow candidate_insn to
|
||
be a label.
|
||
* config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
|
||
* config/h8300/h8300.c (h8300_reorg): New function.
|
||
(TARGET_MACHINE_DEPENDENT_REORG): Define.
|
||
* config/h8300/h8300.md (length): Subtract the length of the
|
||
delay slot from (pc) when checking the range of forward branches.
|
||
(delay_slot, can_delay): New attributes.
|
||
(define_delay): Add bra/s handling.
|
||
(movmd_internal, return_h8sx, *return_1): Set can_delay to no.
|
||
(jump): Add delayed-branch handling.
|
||
2003-06-17 Richard Sandiford <rsandifo@redhat.com>
|
||
* expr.c (expand_strcpy): New function.
|
||
* builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
|
||
(expand_builtin_stpcpy): Likewise.
|
||
* config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
|
||
(h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
|
||
* config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
|
||
handling to improve register allocation for -fno-omit-frame-pointer.
|
||
(h8sx_split_movmd): Delete, moving er6 handling into...
|
||
(h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
|
||
* config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
|
||
(movmd): Add calls to copy_rtx.
|
||
(movmd_internal): In the second alternative, allow the initial and
|
||
final destination registers to be different . Update the splitter
|
||
accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6
|
||
instead of h8sx_split_movmd.
|
||
(stpcpy, movsd): New expanders.
|
||
(movsd_internal): New define_insn.
|
||
2003-06-13 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
|
||
(h8sx_emit_movmd, h8sx_split_movmd): Declare.
|
||
* config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
|
||
and DESTINATION_REGS.
|
||
(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
|
||
(REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
|
||
(REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
|
||
(h8300_move_ratio): Declare.
|
||
(MOVE_RATIO): Use it.
|
||
* config/h8300/h8300.c (h8300_move_ratio): New variable.
|
||
(h8300_init_once): Initialize it.
|
||
(h8300_reg_class_from_letter): New function.
|
||
(print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
|
||
(h8sx_emit_movmd, h8sx_split_movmd): New functions.
|
||
* config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
|
||
(COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
|
||
(movstrsi, movmd): New expanders.
|
||
(movmd_internal): New insn.
|
||
2003-06-06 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
|
||
2003-06-04 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
|
||
* config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
|
||
2003-06-03 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.c (nibble_operand): Fix warning.
|
||
* config/h8300/h8300.md (movstricthi): Set adjust_length to no.
|
||
(movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
|
||
(movsf_h8300h): Disable for TARGET_H8300SX.
|
||
2003-06-03 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
|
||
h8300_stm_parallel and h8300_return_parallel.
|
||
* config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
|
||
h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
|
||
h8300_stm_parallel, h8300_return_parallel): New functions.
|
||
(h8300_expand_prologue): Don't enforce ldm/stm register alignment
|
||
if TARGET_H8300SX. Use h8300_push_pop.
|
||
(h8300_expand_epilogue): Likewise. Try to merge the return insn
|
||
and final pop when generating h8sx code. Always emit some form
|
||
of return insn.
|
||
* config/h8300/h8300.md: Don't enforce register alignment in
|
||
stm peepholes if TARGET_H8300SX.
|
||
(ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
|
||
(ldm_h8300s_[234], stm_h8300_[234]): Disable.
|
||
(epilogue): Expect h8300_expand_epilogue to emit a return insn.
|
||
2003-06-03 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
|
||
(MULTILIB_DIRNAMES): Add a directory for it.
|
||
(MULTILIB_MATCHES): Delete.
|
||
2003-05-28 Richard Sandiford <rsandifo@redhat.com>
|
||
* final.c (walk_alter_subreg): Handle addresses with subregs
|
||
inside a ZERO_EXTEND or AND.
|
||
* config/h8300/h8300-protos.h (h8300_get_index): Declare.
|
||
* config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
|
||
if TARGET_H8300SX.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
|
||
* config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
|
||
@(dd,Rn.w) and @(dd,ERn.L).
|
||
(h8300_displacement_size): Take the whole address as argument.
|
||
(h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
|
||
2003-05-28 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/mips/mips-protos.h (h8300_operands_match_p): Declare.
|
||
(h8sx_mergeable_memrefs_p): Declare.
|
||
* config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
|
||
(HAVE_PRE_INCREMENT): Likewise.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
|
||
addresses for TARGET_H8300SX,
|
||
* config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
|
||
and POST_DEC.
|
||
(movb_length_table, movl_length_table): New tables.
|
||
(movw_length_table): Define to movb_length_table.
|
||
(h8300_displacement_size): New, split out from...
|
||
(h8300_classify_address): ...here. Handle pre/post inc/dec.
|
||
(h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
|
||
(h8300_insn_length_from_table): Add cases for movb, movw and movl.
|
||
(h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
|
||
(output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
|
||
(compute_plussi_length, compute_plussi_cc): Update accordingly.
|
||
(h8sx_unary_shift_operator): Get the mode from the operator.
|
||
(binary_shift_operator): Likewise.
|
||
* config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
|
||
a memory reference, check whether the reference is offsettable.
|
||
(length_table): Add movb, movw and movl.
|
||
(movqi): Add new h8sx pattern. Don't force one operand to be a
|
||
register when generating h8sx code.
|
||
(movhi, movsi, movsf): Likewise.
|
||
(movstrictqi): Use the length_table attribute.
|
||
(movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn.
|
||
(addqi3): Split into a define_expand and define_insn. Don't accept
|
||
memory operands in the expander. Use h8300_operands_match_p to
|
||
check for matching operands in the define_insn.
|
||
(subqi3, negqi2, one_cmplqi2): Likewise.
|
||
(add[hs]i3): Don't accept memory operands in the expander. Likewise
|
||
in any patterns that are unused in h8sx code. In the h8sx patterns,
|
||
use h8300_operands_match_p to check whether operands match.
|
||
(sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
|
||
one_cmpl[hs]i3): Likewise.
|
||
(andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand
|
||
in the expander.
|
||
2003-05-23 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
|
||
(h8300_insn_length_from_table): Add a second parameter.
|
||
(output_h8sx_shift): Declare.
|
||
* config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
|
||
(EXTRA_CONSTRAINT): Replace with...
|
||
(EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y.
|
||
(CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
|
||
(PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
|
||
and h8sx_binary_shift_operator.
|
||
* config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
|
||
for TARGET_H8300SX.
|
||
(bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
|
||
(bit_memory_operand, fix_bit_operand): Likewise.
|
||
(h8300_length_table_for_insn): Remove.
|
||
(h8300_classify_operand): Fix check for 16-bit operands in 32-bit
|
||
instructions.
|
||
(h8300_short_immediate_length, h8300_binary_length): New functions.
|
||
(h8300_insn_length_from_table): Add an opcodes parameter. Rework.
|
||
(output_plussi): Use sub to add negative constants.
|
||
(compute_plussi_length): Adjust accordingly.
|
||
(h8sx_single_shift_type): New enum.
|
||
(h8sx_single_shift, h8sx_unary_shift_operator,
|
||
h8sx_binary_shift_operator, output_h8sx_shift): New functions.
|
||
(expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
|
||
single h8sx instruction. Return false in this case.
|
||
* config/h8300/h8300.md (length_table): Add short_immediate.
|
||
(length): Pass the operand array to h8300_insn_length_from_table.
|
||
(adjust_length): Assume "no" for insns with a length_table attribute.
|
||
(*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
|
||
(*addhi3_h8300hs): Don't use for h8sx.
|
||
(*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
|
||
and sub.w #xx:3.
|
||
(ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
|
||
1's predicate to nonimmediate_operand. Only skip default expansion
|
||
if expand_a_shift or expand_a_rotate returns true. Add new patterns
|
||
for single h8sx shift instructions.
|
||
2003-05-22 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.c (nibble_operand): Split out of...
|
||
(reg_or_nibble_operand): ... this.
|
||
* config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
|
||
* config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
|
||
umulhisi3): Introduce expand, and introduce separate insns for
|
||
sign- or zero-extended REG and already-extended CONST_INT.
|
||
2003-05-20 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
|
||
* config/h8300/h8300.md (subqi3): Generalize for h8sx.
|
||
(subhi3): Likewise. Don't accept immediates for operand 1.
|
||
Remove the early clobber from second alternative of the h8300s pattern.
|
||
(subsi3): Generalize for h8sx. Force operand 2 into a register
|
||
on plain h8300 targets.
|
||
(subsi3_h8300): Use h8300_dst_operand for consistency with expander.
|
||
(subsi3_h8300h): Generalize for h8sx.
|
||
(one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
|
||
2003-05-19 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.c (reg_or_nibble_operand): New.
|
||
* config/h8300/h8300.h (PREDICATE_CODES): Adjust.
|
||
(TARGET_H8300SXMUL): New.
|
||
(CONST_OK_FOR_P): New.
|
||
(CONST_OK_FOR_LETTER_P): Adjust.
|
||
* config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
|
||
umulhisi3): Accept 4-bit immediate on H8SX.
|
||
(mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
|
||
(udivsi3, divhi3, udivsi3, divsi3): New.
|
||
2003-05-19 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
|
||
* config/h8300/h8300.h (OK_FOR_Q): New macro.
|
||
(EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
|
||
(PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
|
||
Add ADDRESSOF to the bit_operand entry.
|
||
* config/h8300/h8300.c (h8300_dst_operand): New predicate.
|
||
(h8300_src_operand): Likewise.
|
||
(bit_operand): Check nonimmediate_operand rather than general_operand.
|
||
Accept any nonimmediate_operand in h8sx code.
|
||
(h8300_and_costs): Initialize operands[1].
|
||
(h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
|
||
(h8300_operand_class): New enum.
|
||
(h8300_length_table): New typedef.
|
||
(addb_length_table, addw_length_table, addl_length_table,
|
||
logicl_length_table): New tables.
|
||
(logicb_length_table, logicw_length_table): New macros.
|
||
(h8300_classify_operand, h8300_length_from_table,
|
||
h8300_length_table_for_insn, h8300_unary_length,
|
||
h8300_insn_length_from_table): New functions.
|
||
(output_plussi): Only use adds and subs for register destinations.
|
||
Disable redundant clause.
|
||
(compute_plussi_cc): Likewise.
|
||
(compute_plussi_length): Likewise. Use h8300_length_from_table
|
||
to work out the length of an insn.
|
||
(output_logical_op): Only use narrower immediate instructions
|
||
if the destination is a register.
|
||
(compute_logical_op_cc): Likewise.
|
||
(compute_logical_op_length): Likewise. Use h8300_length_from_table.
|
||
(h8300_adjust_insn_length): Tighten check for reg<->mem moves.
|
||
* config/h8300/h8300.md (length_table): New attribute.
|
||
(length): When an instruction has a length_table attribute, use
|
||
h8300_insn_length_from_table to calculate its default length.
|
||
(cmpqi): Use h8300_dst_operand for the first operand and
|
||
h8300_src_operand for the second.
|
||
(cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
|
||
negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
|
||
addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
|
||
iorsi3, xorhi3, xorsi3): Likewise.
|
||
(andqi3): Use h8300_src_operand for operand 2. Adjust the condition
|
||
so that it allows any combination of operands for TARGET_H8300SX.
|
||
(iorqi3, xorqi3): Likewise.
|
||
(cmpqi): Use the length_table attribute.
|
||
(*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
|
||
xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
|
||
(cmpqi): Add 'Q' constraint.
|
||
(*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
|
||
iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
|
||
2003-05-14 Richard Sandiford <rsandifo@redhat.com>
|
||
* config/h8300/h8300.h (MASK_H8300SX): New macro.
|
||
(TARGET_H8300S): True for both -ms and -msx.
|
||
(TARGET_H8300SX): New macro.
|
||
(TARGET_SWITCHES): Add entries for -msx and -mno-sx.
|
||
* config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
|
||
* config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
|
||
* config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
|
||
[Temporary change.]
|
||
2003-02-28 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
|
||
16-bit pointers and 32-bit ints.
|
||
* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
|
||
CONST_DOUBLE with mode no wider than SImode.
|
||
* config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
|
||
output operand.
|
||
2003-02-27 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
|
||
or SUBREG thereof.
|
||
* config/h8300/h8300.h (PREDICATE_CODES): Adjust.
|
||
2003-02-22 Alexandre Oliva <aoliva@redhat.com>
|
||
* config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
|
||
|
||
2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
|
||
|
||
* config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
|
||
|
||
2004-07-07 Per Bothner <per@bothner.com>
|
||
|
||
* flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE.
|
||
|
||
2004-07-07 Mike Stump <mrs@apple.com>
|
||
|
||
* darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
|
||
* darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
|
||
(machopic_finish): Likewise.
|
||
|
||
2004-07-07 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
|
||
through any value-preserving cast.
|
||
|
||
2004-07-07 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* function.c (assign_parm_find_data_types): Call
|
||
FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
|
||
|
||
2004-07-07 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* tree-cfg.c (group_case_labels): Remove case labels that have
|
||
the same target as the default case.
|
||
|
||
2004-07-07 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
|
||
regardless of DECL_LANG_SPECIFIC being present or not.
|
||
* tree.h (DECL_NUM_STMTS): Purge.
|
||
|
||
2004-07-07 Andrew Pinski <apinski@apple.com>
|
||
|
||
* configure: Regenerate with the right autoconf.
|
||
|
||
2004-07-07 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* ifcvt.c (total_bb_rtx_cost): New function.
|
||
(find_if_case_1): Compare rtx_cost of basic block to cost of
|
||
BRANCH_COST insns.
|
||
(find_if_case_2): Same.
|
||
|
||
2004-07-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/10567
|
||
* config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
|
||
(output_return): Likewise.
|
||
(output_sibcall): Abort if !flag_delayed_branch.
|
||
(sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
|
||
(emit_and_preserve): New function.
|
||
(sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an
|
||
indirect jump to the thunked-to function if !flag_delayed_branch.
|
||
* config/sparc/sparc.md (delayed_branch): New attribute.
|
||
(load_pcrel_sym): Honor flag_delayed_branch. Use above
|
||
attribute to compute the length of the insn.
|
||
(goto_handler_and_restore): Likewise.
|
||
|
||
2004-07-07 Andrew Pinski <apinski@apple.com>
|
||
|
||
PR tree-optimization/15777
|
||
* fold-const.c (fold_single_bit_test): Fold the x^1 expression.
|
||
|
||
* expr.c (expand_expr_real_1): Fix formating.
|
||
BUFFER_REF and IN_EXPR are dead.
|
||
* fold-const.c (non_lvalue): BUFFER_REF is dead.
|
||
* tree-inline.c (estimate_num_insns_1): Likewise.
|
||
* tree-pretty-print.c (dump_generic_node): BUFFER_REF,
|
||
IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
|
||
* tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
|
||
|
||
2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* collect2.c (dump_file): Don't call cplus_demangle if
|
||
HAVE_LD_DEMANGLE is defined.
|
||
(main): Pass "--demangle" to ld if no_demangle is not 0 and
|
||
HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
|
||
if HAVE_LD_DEMANGLE is defined.
|
||
|
||
* configure.ac (--with-demangler-in-ld): Added
|
||
(HAVE_LD_DEMANGLE): Define if ld supports --demangle when
|
||
--with-demangler-in-ld is used.
|
||
* config.in: Regenerated.
|
||
* configure: Likewise.
|
||
|
||
2004-07-07 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/rs6000/rs6000.c (struct processor_costs): Add new fields
|
||
for simple floating point operations "fp", double precision
|
||
multiplication "dmul", and single and double precision division
|
||
"sdiv" and "ddiv". Update all CPU variant tables as appropriate.
|
||
(ppc630_cost): New table split from ppc620_cost, to distinguish
|
||
differences in floating point latencies.
|
||
(rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
|
||
(rs6000_rtx_costs): Add support for single and double precision
|
||
floating point addition, subtraction, multiplication, division,
|
||
fused-multiply-add, fused-multiply-sub, negation, absolute value
|
||
and negative absolute value. Tweak MEM case to use prefered idiom.
|
||
|
||
2004-07-07 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-flow-inline.h (may_propagate_copy): Move...
|
||
* tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we
|
||
attempt to copy between types requiring conversion.
|
||
* tree-flow.h (may_propagate_copy): Update decl.
|
||
* tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
|
||
|
||
2004-07-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.c (override_options): Don't set x86_prefetch_sse
|
||
from -mtune= option.
|
||
|
||
2004-07-07 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* builtins.c: Rename movstr*, except for movstrict*, to
|
||
movmem* and clrstr* to clrmem*.
|
||
* expr.c: Likewise.
|
||
* expr.h: Likewise.
|
||
* genopinit.c: Likewise.
|
||
* integrate.c: Likewise.
|
||
* local-alloc.c: Likewise.
|
||
* optabs.c: Likewise.
|
||
* optabs.h: Likewise.
|
||
* config/alpha/alpha.h: Likewise.
|
||
* config/alpha/alpha.md: Likewise.
|
||
* config/arm/arm-protos.h: Likewise.
|
||
* config/arm/arm.c: Likewise.
|
||
* config/arm/arm.md: Likewise.
|
||
* config/avr/avr.md: Likewise.
|
||
* config/c4x/c4x.c: Likewise.
|
||
* config/c4x/c4x.md: Likewise.
|
||
* config/frv/frv.md: Likewise.
|
||
* config/i386/i386-protos.h: Likewise.
|
||
* config/i386/i386.c: Likewise.
|
||
* config/i386/i386.h: Likewise.
|
||
* config/i386/i386.md: Likewise.
|
||
* config/i860/i860.c: Likewise.
|
||
* config/i860/i860.md: Likewise.
|
||
* config/ip2k/ip2k.md: Likewise.
|
||
* config/ip2k/libgcc.S: Likewise.
|
||
* config/ip2k/t-ip2k: Likewise.
|
||
* config/m32r/m32r.c: Likewise.
|
||
* config/m32r/m32r.md: Likewise.
|
||
* config/mcore/mcore.md: Likewise.
|
||
* config/mips/mips.c: Likewise.
|
||
* config/mips/mips.md: Likewise.
|
||
* config/ns32k/ns32k.c: Likewise.
|
||
* config/ns32k/ns32k.h: Likewise.
|
||
* config/ns32k/ns32k.md: Likewise.
|
||
* config/pa/pa.c: Likewise.
|
||
* config/pa/pa.md: Likewise.
|
||
* config/pdp11/pdp11.h: Likewise.
|
||
* config/pdp11/pdp11.md: Likewise.
|
||
* config/rs6000/rs6000.c: Likewise.
|
||
* config/rs6000/rs6000.md: Likewise.
|
||
* config/s390/s390-protos.h: Likewise.
|
||
* config/s390/s390.c: Likewise.
|
||
* config/s390/s390.md: Likewise.
|
||
* config/sh/lib1funcs.asm: Likewise.
|
||
* config/sh/sh.c: Likewise.
|
||
* config/sh/sh.md: Likewise.
|
||
* config/sh/t-sh: Likewise.
|
||
* config/sparc/sparc.h: Likewise.
|
||
* config/vax/vax.md: Likewise.
|
||
* config/xtensa/xtensa.c: Likewise.
|
||
* config/xtensa/xtensa.md: Likewise.
|
||
* doc/invoke.texi: Likewise.
|
||
* doc/md.texi: Likewise.
|
||
* doc/rtl.texi: Likewise.
|
||
|
||
2004-07-07 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
PR target/16407
|
||
* config/mips/mips-protos.h (mips_declare_common_object): Declare.
|
||
* config/mips/mips.c (mips_declare_common_object): New function,
|
||
mostly split out from...
|
||
(mips_output_aligned_decl_common): ...here.
|
||
* config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
|
||
(ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
|
||
* config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
|
||
rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object.
|
||
|
||
2004-07-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR c/16392
|
||
* function.c (assign_parms): Fix typo from previous change.
|
||
|
||
2004-07-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/15815
|
||
* doc/extend.texi (C++ Interface): Correct information and
|
||
discourage use.
|
||
|
||
2004-07-07 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/16130
|
||
PR target/16142
|
||
PR target/16143
|
||
* config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
|
||
insn.
|
||
|
||
2004-07-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
|
||
|
||
PR target/1679.
|
||
* config/m32r/m32r.c (m32r_function_symbol): New function:
|
||
Generate a symbol name RTX with the correct m32r specific flags
|
||
set.
|
||
(block_move_call): Use new function to generate correct symbol.
|
||
* config/m32r/m32r-protos.h: Add prototype for new funcion.
|
||
* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
|
||
function.
|
||
|
||
2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
|
||
TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
|
||
TYPE_BINFO_BASETYPE): Remove.
|
||
(BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
|
||
to ...
|
||
(BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
|
||
here.
|
||
(BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
|
||
(BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
|
||
(BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
|
||
(struct tree_binfo): Rename base_types to base_binfos.
|
||
* alias.c (record_component_aliases): Adjust BINFO macros.
|
||
* dbxout.c (dbxout_type): Likewise.
|
||
* dwarf2out.c (gen_member_die): Likewise.
|
||
* sdbout.c (sdbout_one_type): Likewise.
|
||
* tree-dump.c (deque_and_dump): Likewise.
|
||
* config/i386/i386.c (classify_argument,
|
||
contains_128bit_aligned_vector_p): Likewise.
|
||
|
||
2004-07-07 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
|
||
arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
|
||
|
||
2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h: Fix the example use.
|
||
|
||
2004-07-06 Richard Henderson <rth@redhat.com>
|
||
|
||
* langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
|
||
* langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
|
||
* tree-inline.c (copy_body_r, setup_one_parameter,
|
||
initialize_inlined_parameters, expand_call_inline,
|
||
declare_inline_vars): Don't check it.
|
||
(expand_calls_inline): Remove old version, rename new version
|
||
from gimple_expand_calls_inline.
|
||
* tree-optimize.c (execute_gimple): Remove.
|
||
(pass_gimple): Don't run anything.
|
||
|
||
2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* doc/sourcebuild.texi: Use semicolons instead of commas in
|
||
section title.
|
||
|
||
2004-07-06 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
|
||
(sra_walk_modify_expr, scan_init): Likewise.
|
||
(generate_element_zero): Check visited before scanning children.
|
||
(generate_element_init): Set visited on error.
|
||
(scalarize_init): Handle generate_element_init failure similar
|
||
to use_block_copy.
|
||
|
||
2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
|
||
(warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
|
||
|
||
2004-07-06 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/i386/i386.c (legitimize_pic_address): Make static.
|
||
(legitimize_address): Handle CONST with TLS operand.
|
||
(ix86_expand_move): Don't call legitimize_pic_address directly.
|
||
* config/i386/i386-protos.h (legitimize_pic_address): Remove.
|
||
|
||
2004-07-06 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
|
||
(noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
|
||
(noce_process_if_block): Initialize if_info.b_unconditional if insn_b
|
||
is currently executed unconditionally, i.e. not in "else_bb".
|
||
|
||
2004-07-06 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
* config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
|
||
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
|
||
|
||
2004-07-06 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* dojump.c (do_jump): REFERENCE_EXPR is dead.
|
||
* expr.c (expand_expr_real_1): Ditto.
|
||
* tree-inline.c (estimate_num_insns_1): Ditto.
|
||
* tree-pretty-print.c (dump_generic_node): Ditto.
|
||
(op_symbol): Ditto.
|
||
* tree.def: Ditto.
|
||
|
||
2004-07-06 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-pre.c (reference_node_pool): New pool.
|
||
(find_or_generate_expression): Class 'r' is okay too.
|
||
(create_value_expr_from): Ditto.
|
||
(add_to_sets): LHS should not include vuses.
|
||
(eliminate): Ditto.
|
||
(compute_avail): Reverse ordering of tests.
|
||
Valuize INDIRECT_REF as well.
|
||
|
||
2004-07-06 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
PR rtl-optimization/16380
|
||
* loop.c (check_dbra_loop): Sink comparison instructions if they
|
||
do something other than set cc0.
|
||
|
||
2004-07-06 James E Wilson <wilson@specifixinc.com>
|
||
|
||
* doc/interface.texi (longjmp and automatic variables): Delete
|
||
paragraph recommending taking the address of a variable.
|
||
|
||
2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h (VEC_embedded_alloc): Remove.
|
||
(VEC_embedded_size, VEC_embedded_init): New.
|
||
(VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
|
||
MEM_STAT_INFO.
|
||
(VEC_truncate): New.
|
||
(vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
|
||
(vec_embedded_alloc): Remove.
|
||
* vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
|
||
(vec_embedded_alloc): Remove.
|
||
|
||
2004-07-06 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
|
||
(gt-langhooks.h): Remove.
|
||
|
||
2004-07-06 George Helffrich <george@gly.bris.ac.uk>
|
||
|
||
* xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
|
||
|
||
2004-07-06 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.c (get_pc_symbol): Rename into
|
||
add_pc_to_pic_symbol.
|
||
(get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
|
||
(load_pic_register): Account for previous changes.
|
||
Use reg_names. Don't create the label twice.
|
||
* config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
|
||
UNSPEC_LOAD_PCREL_SYM.
|
||
(get_pc): Rename into load_pcrel_sym. Add predicate to
|
||
operands. Remove condition.
|
||
|
||
2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* dbxout.c (dbxout_type): Don't test whether the binfo slot of
|
||
RECORD, UNION & QUAL_UNION is actually a binfo.
|
||
|
||
* tree.h (TREE_VIA_VIRTUAL): Rename to ...
|
||
(BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
|
||
(BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
|
||
* dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
|
||
* dwarf2out.c (add_data_member_location_attribute): Likewise.
|
||
(gen_inheritance_die): Likewise.
|
||
* tree-dump.c (deque_and_dump): Likewise.
|
||
* doc/c-tree.texi (Binfos): Add under reconstruction note.
|
||
|
||
2004-07-06 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
|
||
Define.
|
||
* config/mcore/mcore.md: Model memory latency with a simple DFA
|
||
pipeline description instead of a define_function_unit.
|
||
|
||
2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
|
||
* langhooks.h (var_mod_type_p): Likewise.
|
||
* c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
|
||
* expr.c (count_type_elements): Properly handle return from
|
||
array_type_nelts and properly test for overflow.
|
||
* gimplify.c (gimplify_init_constructor): Properly handle return
|
||
from array_type_nelts.
|
||
(gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
|
||
* integrate.c (copy_decl_for_inlining): Correct comments.
|
||
* tree-inline.c (remap_decl): Update comments, remove dead code,
|
||
and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
|
||
(remap_type): Only remap if variably modified by vars in function
|
||
being inlined.
|
||
(copy_body_r): Use compatible_type langhooks to see when can fold.
|
||
(setup_one_parameter): Don't remap type.
|
||
(inline_forbidden_p_1): Add arg to variably_modified_type_p.
|
||
* tree.c (recompute_tree_invarant_for_addr_expr): Properly
|
||
compute TREE_INVARIANT for decl case.
|
||
(find_var_from_fn): New function.
|
||
(variably_modified_type_p): Add arg and call new function.
|
||
* tree.h (variably_modified_type_p): Add extra arg.
|
||
|
||
2004-07-05 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
|
||
(goto_handler_and_restore_v9): Delete disabled insn.
|
||
(goto_handler_and_restore_v9_sp64): Likewise.
|
||
|
||
2004-07-05 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* calls.c (load_register_parameters): Call expand_shift instead
|
||
of expand_binop with ashl_optab (or other shift optab) directly.
|
||
* expr.c (emit_group_load, emit_group_store): Likewise.
|
||
* function.c (assign_parm_setup_block): Likewise.
|
||
* stmt.c (shift_return_value): Likewise.
|
||
|
||
2004-07-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* expr.c (expand_assignment): Disable the bitfield += optimizations.
|
||
|
||
2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* doc/sourcebuild.texi: Revert previous patch.
|
||
|
||
2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
|
||
TARGET_MEM_FUNCTIONS.
|
||
* system.h: Poison TARGET_MEM_FUNCTIONS.
|
||
* libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
|
||
bcmp_libfunc, bzero_libfunc): Remove.
|
||
* optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
|
||
bzero_libfunc.
|
||
* doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
|
||
* doc/standards.texi: Don't mention calling BSD string functions.
|
||
* doc/invoke.texi: Likewise. Mention that memmove may be called.
|
||
* config/vax/t-memfuncs: New.
|
||
* config/memcmp.c, config/memcpy.c, config/memmove.c,
|
||
config/memset.c: New.
|
||
* config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
|
||
* config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
|
||
vax/t-memfuncs.
|
||
* config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
|
||
config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
|
||
config/elfos.h, config/gnu.h, config/h8300/h8300.h,
|
||
config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
|
||
config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
|
||
config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
|
||
config/netbsd.h, config/openbsd.h, config/pa/pa.h,
|
||
config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
|
||
config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
|
||
config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
|
||
|
||
2004-07-05 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.c (assign_parm_setup_reg): Properly rename variables in
|
||
FUNCTION_ARG_CALLEE_COPIES section.
|
||
|
||
2004-07-05 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* tree-mudflap.c: Include cgraph.h.
|
||
(mf_init_extern_trees): Rename to mudflap_init. Export.
|
||
Rewrite to create synthetic declarations instead of looking
|
||
up declarations from mf-runtime.h.
|
||
(mf_make_builtin, mf_make_cache_struct_type): New functions.
|
||
(mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
|
||
Correct commentary.
|
||
(execute_mudflap_function_decls, mudflap_register_call):
|
||
Don't call mf_init_extern_trees.
|
||
(mudflap_finish_file): Use cgraph_build_static_cdtor.
|
||
|
||
* tree-mudflap.h: Update prototypes.
|
||
* c-mudflap.c: Delete file.
|
||
* c-common.c: Include tree-mudflap.h.
|
||
(c_common_nodes_and_builtins): Call mudflap_init if appropriate.
|
||
* Makefile.in: Remove all references to c-mudflap.o.
|
||
Update dependencies.
|
||
|
||
2004-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
|
||
displacements with the spatial-locality cache-control completer.
|
||
|
||
2004-07-05 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* langhooks.c: Don't include gt-langhooks.h.
|
||
(var_labelno): Delete.
|
||
(lhd_set_decl_assembler_name): Do not append a distinguishing
|
||
number to file-scope internal-linkage declarations for the first
|
||
input file, even if they have DECL_CONTEXT set. Use DECL_UID of
|
||
the declaration itself (if at block scope), or its containing
|
||
TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
|
||
number.
|
||
|
||
* opts.c (cur_in_fname): New global.
|
||
* opts.h: Declare it.
|
||
* tree.c: Include opts.h.
|
||
(make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
|
||
DECL_UID equal to cur_in_fname.
|
||
(copy_node_stat): Do not change DECL_UID when copying a
|
||
TRANSLATION_UNIT_DECL.
|
||
(build_common_tree_nodes): Adjust next_decl_uid to reserve the
|
||
range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
|
||
|
||
* c-decl.c (c_static_assembler_name): Delete.
|
||
* c-tree.h (c_static_assembler_name): Delete prototype.
|
||
* c-lang.c, objc/objc-lang.c: Don't override
|
||
LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
|
||
|
||
* Makefile.in (tree.o): Update dependencies.
|
||
(GTFILES): Remove langhooks.c.
|
||
|
||
2004-07-05 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
|
||
by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
|
||
Normalize "X % C" as "X % -C" for signed modulus and negative C.
|
||
Optimize "X % -Y" as "X % Y" for signed modulus.
|
||
<EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
|
||
into "((unsigned) X % Y) == 0".
|
||
|
||
2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* sourcebuild.texi (Config Fragments): Use @comma{} in
|
||
cross-reference to section title.
|
||
|
||
2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
|
||
* gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
|
||
(gimplify_target_expr, gimplify_expr): Likewise.
|
||
(copy_if_shared_r): No longer need special case for BIND_EXPR.
|
||
(unshare_body, unvisit_body): Only look at nested if BODY_P is
|
||
whole function.
|
||
(gimplify_compound_lval): See if we can strip any useless conversion.
|
||
(gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
|
||
from RHS, not LHS.
|
||
(gimplify_modify_expr_to_memset): Likewise.
|
||
(gimplify_expr, case CONSTRUCTOR): Handle use as statement.
|
||
* tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
|
||
(declare_inline_vars): Likewise.
|
||
(walk_type_fields): New function.
|
||
(walk_tree): Use it.
|
||
* tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
|
||
|
||
* tree-sra.c (struct sra_walk_fns): Init function now returns bool.
|
||
(sra_walk_modify_expr): Allow init function to fail.
|
||
(scan_init): Now returns bool.
|
||
(generate_element_init): If can't understand INIT, return false.
|
||
(scalarize_init): Return false if generate_element_init does.
|
||
|
||
* tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
|
||
print bounds.
|
||
|
||
* expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
|
||
bounds if bounds aren't constant.
|
||
|
||
* tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
|
||
|
||
* function.c, langhooks-def.h, langhooks.h: Move max_size hook
|
||
to type hooks; remove bogus PARAMS.
|
||
|
||
2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
|
||
* dwarf2out.c (add_data_member_location_attribute): Check for
|
||
TREE_BINFO.
|
||
* tree.c (tree_node_kinds): Add "binfos".
|
||
(binfo_lang_slots): New.
|
||
(make_node_stat): Add TREE_BINFO.
|
||
(make_tree_binfo_stat): New.
|
||
(tree_node_structure): Add TREE_BINFO.
|
||
* tree.def (TREE_BINFO): New.
|
||
* tree.h (REC_OR_UNION_CHECK): Rename to ...
|
||
(RECORD_OR_UNION_CHECK): ... here.
|
||
(NOT_RECORD_OR_UNION_CHECK): New.
|
||
(TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
|
||
(TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
|
||
RECORD_OR_UNION_CHECK.
|
||
(TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
|
||
(TYPE_LANG_SLOT_1): New.
|
||
(BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
|
||
BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
|
||
BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
|
||
(BINFO_ELTS): Remove.
|
||
(BINFO_LANG_SLOT): New.
|
||
(struct tree_binfo): New.
|
||
(binfo_lang_slots): Declare.
|
||
(enum tree_node_structure_enum): Add TS_BINFO.
|
||
(union tree_node): Add binfo.
|
||
(make_tree_binfo_stat): Declare.
|
||
(make_tree_binfo): New.
|
||
(enum tree_node_kind): Add binfo_kind.
|
||
|
||
* objc/objc-act.c (start_class, objc_declare_protocols,
|
||
start_protocols): Use TYPE_LANG_SLOT_1.
|
||
* objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
|
||
to ...
|
||
(CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
|
||
(CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
|
||
CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
|
||
PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
|
||
|
||
2004-07-05 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* rtl.h (struct rtx_def): Remove the integrated flag.
|
||
Use the return_val flag for MEM_SCALAR_P.
|
||
Reshuffle and update flags in CLEAR_RTX_FLAGS.
|
||
|
||
2004-07-05 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
PR target/16357
|
||
* config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
|
||
to mips_expand_unaligned_load, mips_expand_unaligned_store, and
|
||
move_by_pieces.
|
||
|
||
2004-07-05 Josef Zlomek <zlomekj@suse.cz>
|
||
|
||
* var-tracking.c: Fix some comments.
|
||
(frame_stack_adjust): New.
|
||
(vt_stack_adjustments): Init stack_adjust of entry block to
|
||
minus stack adjustment of function prologue.
|
||
(adjust_stack_reference): Do not adjust if adjustment == 0.
|
||
(compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
|
||
(emit_notes_in_bb): Likewise.
|
||
(vt_add_function_parameters): Do not adjust locations of
|
||
function arguments.
|
||
(vt_initialize): Compute the stack adjustment of function
|
||
prologue and offset the initial "location" of frame_base_decl
|
||
from the stack pointer after prologue.
|
||
|
||
2004-07-04 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.c (struct assign_parm_data_all): New.
|
||
(struct assign_parm_data_one): New.
|
||
(assign_parms_initialize_all, assign_parms_augmented_arg_list,
|
||
assign_parm_find_data_types, assign_parms_setup_varargs,
|
||
assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
|
||
assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
|
||
assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
|
||
assign_parm_setup_block, assign_parm_setup_reg,
|
||
assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
|
||
(assign_parms): ... here.
|
||
|
||
2004-07-04 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
|
||
now are bitmap_set_t's.
|
||
(bitmap_insert_into_set): No point in inserting the value if
|
||
it's invariant.
|
||
(bitmap_set_contains): New function.
|
||
(bitmap_set_replace_value): Add comment on why we do it
|
||
this way.
|
||
(set_contains): Removed.
|
||
(bitmap_set_subtract_from_value_set): New name of
|
||
set_subtract now that it's arguments are two different
|
||
types of sets.
|
||
Update callers.
|
||
(bitmap_find_leader): Change algorithm used.
|
||
(find_or_generate_expression): Update use of functions for new
|
||
bitmap sets.
|
||
(create_expression_by_pieces): Ditto.
|
||
(insert_aux): Ditto.
|
||
(insert): Ditto.
|
||
(add_to_sets): Ditto.
|
||
(init_pre): Ditto.
|
||
(execute_pre): Ditto.
|
||
(compute_avail): Ditto.
|
||
Also ignore virtual phis.
|
||
|
||
2004-07-04 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* combine.c (simplify_comparison): Fix comment typo.
|
||
|
||
2004-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
|
||
into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
|
||
(eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
|
||
(output_restore): Change parameter from 'insn' to 'pat'.
|
||
(output_return): Adjust call to output_restore.
|
||
(output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
|
||
Adjust call to output_restore.
|
||
|
||
2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
|
||
|
||
* config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
|
||
and assert system is bsd.
|
||
|
||
2004-07-04 Richard Sandiford <rsandifo@redhat.com>
|
||
|
||
* config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
|
||
(TARGET_SWITCHES): Remove -mdebugc.
|
||
* config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
|
||
(sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
|
||
(seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
|
||
(sle_[sd]i_reg): Delete.
|
||
|
||
2004-07-04 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
|
||
Define.
|
||
* config/iq2000/iq2000.md: Translate old pipeline description to an
|
||
equivalent new one.
|
||
|
||
2004-07-04 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree-ssa-ccp.c (set_rhs): Change function to return a bool.
|
||
Ensure the replacement rhs is valid gimple before performing
|
||
the substitution. Return false if these sanity checks fail.
|
||
(fold_stmt): Only set changed to true, if set_rhs returns true.
|
||
(execute_fold_all_builtins): Only call modify_stmt if set_rhs
|
||
succeeds.
|
||
|
||
2004-07-04 Richard Henderson <rth@redhat.com>
|
||
|
||
PR c/16348
|
||
* c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
|
||
|
||
2004-07-04 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* configure.ac (ranlib_flags): New variable.
|
||
* Makefile.in (RANLIB_FLAGS): New variable.
|
||
(libbackend.a): Use it.
|
||
* configure: Regenerated.
|
||
|
||
2004-07-04 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
|
||
a "sign mask" instead of using ashr_optab directly.
|
||
|
||
2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
|
||
|
||
* doc/cpp.texi: Don't document what we do for ill-formed expressions.
|
||
* doc/cppopts.texi: Clarify processing of command-line defines.
|
||
|
||
2004-07-04 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
|
||
|
||
2004-07-04 Richard Henderson <rth@redhat.com>
|
||
|
||
* rtl.def (ADDRESSOF): Remove.
|
||
* alias.c (rtx_equal_for_memref_p): Don't handle addressof.
|
||
(find_base_term, memrefs_conflict_p): Likewise.
|
||
* cse.c (fixed_base_plus_p, find_best_addr: Likewise.
|
||
(fold_rtx, cse_insn, set_live_p): Likewise.
|
||
* dwarf2out.c (mem_loc_descriptor): Likewise.
|
||
(add_location_or_const_value_attribute): Likewise.
|
||
* emit-rtl.c (copy_insn_1): Likewise.
|
||
* explow.c (memory_address): Likewise.
|
||
* expmed.c (store_split_bit_field): Likewise.
|
||
* expr.c (expand_expr_real_1): Likewise.
|
||
* function.c (instantiate_decl
|
||
(instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
|
||
* genrecog.c (preds, validate_pattern): Likewise.
|
||
* integrate.c (copy_rtx_and_substitute): Likewise.
|
||
* recog.c (general_operand, register_operand): Likewise.
|
||
(memory_address_p): Likwise.
|
||
* reload1.c (eliminate_regs, elimination_effects): Likewise.
|
||
* rtl.c (copy_rtx): Likewise.
|
||
* rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
|
||
(rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
|
||
* rtlhooks.c (gen_lowpart_general): Likewise.
|
||
* stmt.c (expand_asm_operands): Likewise.
|
||
* web.c (entry_register, replace_ref, web_main): Likewise.
|
||
* config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
|
||
alpha_expand_block_move, alpha_expand_block_clear): Likewise.
|
||
* config/arm/arm.c (thumb_rtx_costs): Likewise.
|
||
* config/c4x/c4x.c (c4x_valid_operands): Likewise.
|
||
* config/frv/frv.c (move_destination_operand, move_source_operand,
|
||
condexec_dest_operand, condexec_source_operand,
|
||
condexec_memory_operand): Likewise.
|
||
* config/h8300/h8300.h (PREDICATE_CODES): Likewise.
|
||
* config/ia64/ia64.c (general_xfmode_operand): Likewise.
|
||
(destination_xfmode_operand): Likewise.
|
||
* config/mips/mips.h (PREDICATE_CODES): Likewise.
|
||
* config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
|
||
* config/s390/s390.c (general_s_operand): Likewise.
|
||
* config/s390/s390.md (mov*): Likewise.
|
||
* config/sparc/sparc.h (PREDICATE_CODES): Likewise.
|
||
|
||
* c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
|
||
* expr.c (expand_expr_real_1): Likewise.
|
||
* stmt.c (expand_decl): Likewise.
|
||
* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
|
||
|
||
* function.c (struct fixup_replacement, struct insns_for_mem_entry,
|
||
postponed_insns, put_var_into_stack, put_reg_into_stack,
|
||
schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
|
||
fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
|
||
fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
|
||
walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
|
||
gen_mem_addressof, flush_addressof, put_addressof_into_stack,
|
||
purge_bitfield_addressof_replacements, purge_addressof_replacements,
|
||
purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
|
||
struct insns_for_mem_walk_info, insns_for_mem_walk,
|
||
compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
|
||
setjmp_protect_args): Remove.
|
||
(push_function_context_to): Don't handle var_refs_queue.
|
||
(pop_function_context_from, free_after_compilation): Likewise.
|
||
(instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
|
||
(assign_parms, allocate_struct_function): Likewise.
|
||
(use_register_for_decl): New.
|
||
(expand_function_end): Don't setjmp_protect.
|
||
* function.h (struct emit_status): Update commentary.
|
||
(struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
|
||
(max_parm_reg, parm_reg_stack_loc): Remove.
|
||
* passes.c (DFI_addressof): Remove.
|
||
(dump_file_info): Remove addressof.
|
||
(rest_of_handle_addressof): Remove.
|
||
(rest_of_compilation): Don't call it.
|
||
* rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
|
||
* stmt.c (expand_decl): Use use_register_for_decl.
|
||
* tree.h: Update decls.
|
||
* web.c (mark_addressof): Remove.
|
||
* doc/invoke.texi (-dF): Remove.
|
||
|
||
2004-07-03 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
|
||
instead of gen_mem_addressof.
|
||
* config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
|
||
TImode output register.
|
||
|
||
2004-07-03 Richard Henderson <rth@redhat.com>
|
||
|
||
PR tree-optimization/16341
|
||
* tree-sra.c (sra_walk_function): Increment to next stmt before
|
||
processing the current stmt.
|
||
(sra_insert_after): Always use BSI_SAME_STMT.
|
||
|
||
2004-07-03 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
|
||
fp plus with minus.
|
||
|
||
2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
|
||
with tree_int_cst_equal.
|
||
|
||
2004-07-03 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/ia64/ia64.md: Define new attribute "empty".
|
||
(prologue_use, nop_x, insn_group_barrier): Set it.
|
||
|
||
* config/ia64/ia64.c (ia64_reorg): When looking for trailing call
|
||
skip over "empty" insns.
|
||
|
||
2004-07-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* tree-inline.c (initialize_inlined_parameters): Pass proper function
|
||
context to gimplify_body.
|
||
(walk_tree): Don't walk into types twice.
|
||
(walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
|
||
|
||
* tree-sra.c (generate_element_init): Remove any useless conversions.
|
||
|
||
* gimplify.c (gimplify_conversion): Remove stripping useless
|
||
conversions from here.
|
||
(gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
|
||
(gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
|
||
Unshare before substituting PLACEHOLDER_EXPR.
|
||
(gimplify_modify_expr_to_memset): Likewise.
|
||
Pass address of TO to memset, not TO itself.
|
||
(gimplify_init_constructor): Make copy of OBJECT so we have it each
|
||
time we make an expression (to match a PLACEHOLDER_EXPR).
|
||
|
||
* tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
|
||
VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
|
||
* tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
|
||
* tree-ssa-dom.c (local_fold): Likewise.
|
||
|
||
* langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
|
||
* langhooks.h (strct lang_hooks): New field type_max_size.
|
||
* function.c (assign_temp): Call it.
|
||
|
||
2004-07-03 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
|
||
* config/sh/sh.md: Convert the SH1 pipeline description to
|
||
a DFA model.
|
||
|
||
2004-07-02 Zack Weinberg <zack@codesourcery.com>
|
||
|
||
* c-decl.c (struct c_binding): Remove contour field; add
|
||
depth, invisible, nested fields.
|
||
(B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
|
||
(B_IN_EXTERNAL_SCOPE): New convenience macros.
|
||
(bind): Add invisible and nested arguments. Initialize
|
||
new fields of struct c_binding; adjust loop scanning for
|
||
insertion point.
|
||
(free_binding_and_advance): Clear structure with memset.
|
||
(pop_scope): Adjust to match. Set DECL_CONTEXT on everything
|
||
in file scope, even if it's in external scope too.
|
||
(pushdecl): Adjust to match. Create invisible file-scope
|
||
declarations for block-scope forward declarations of static functions.
|
||
(pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
|
||
(undeclared_variable, lookup_label, declare_label, define_label)
|
||
(lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
|
||
(c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
|
||
(store_parm_decls_oldstyle): Adjust to match.
|
||
(diagnose_mismatched_decls): Correct handling of linkage clashes.
|
||
(merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
|
||
|
||
* c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
|
||
(C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
|
||
|
||
2004-07-02 Richard Henderson <rth@redhat.com>
|
||
|
||
* c-decl.c (grokdeclarator): Don't frob current_function_decl
|
||
around variable_size.
|
||
(set_decl_nonlocal): Remove.
|
||
(store_parm_decls): Add stmts for pending sizes.
|
||
* calls.c (calls_function, calls_function_1): Remove.
|
||
(precompute_arguments): Don't call it.
|
||
* cfgexpand.c (set_save_expr_context): Remove.
|
||
(tree_expand_cfg): Don't call it.
|
||
* dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
|
||
(dwarf2out_finish): Likewise.
|
||
* expr.c (emit_block_move): Adjust addresses to BLKmode.
|
||
(store_constructor): Don't pre-evaluate SAVE_EXPR.
|
||
(safe_from_p): Don't queue SAVE_EXPRs.
|
||
(expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
|
||
or build plain VAR_DECLs.
|
||
* fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
|
||
(fold): Likewise.
|
||
(fold_checksum_tree): Don't special-case SAVE_EXPR.
|
||
* function.c (free_after_compilation): Don't clear x_save_expr_regs.
|
||
(put_var_into_stack): Don't handle SAVE_EXPR.
|
||
(gen_mem_addressof): Likewise.
|
||
* function.h (struct function): Remove x_save_expr_regs.
|
||
(save_expr_regs): Remove.
|
||
* gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
|
||
* print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
|
||
* stor-layout.c (variable_size): Don't set it.
|
||
(force_type_save_exprs, force_type_save_exprs_1): Remove.
|
||
* tree-inline.c (remap_save_expr): Remove fn argument. Update
|
||
all callers. Don't set SAVE_EXPR_CONTEXT.
|
||
* tree-inline.h (remap_save_expr): Update decl.
|
||
* tree.c (save_expr): Update build size.
|
||
(first_rtl_op): Don't handle SAVE_EXPR.
|
||
(unsave_expr_1, contains_placeholder_p): Likewise.
|
||
(decl_function_context): Likewise.
|
||
* tree.def (SAVE_EXPR): Remove args 1 and 2.
|
||
* tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
|
||
(SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
|
||
|
||
2004-07-03 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
|
||
doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
|
||
doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
|
||
doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
|
||
some first-person references and patronizing comments. Based on
|
||
printed manual.
|
||
* doc/invoke.texi: Don't reference fortran@gnu.org.
|
||
* doc/trouble.texi (Warning when a non-void function value is
|
||
ignored): Rewrite. From Russ Allbery and Chris Devers.
|
||
|
||
2004-07-02 Daniel Berlin <dberlin@dberlin.org)
|
||
|
||
* tree-ssa-pre.c (bitmap_set_t): New.
|
||
(bb_value_sets): avail_out is now a bitmap_set_t.
|
||
(bitmap_find_leader): New function.
|
||
(bitmap_value_insert_into_set): Ditto.
|
||
(bitmap_set_copy): Ditto.
|
||
(bitmap_value_replace_in_set): Ditto.
|
||
(bitmap_set_contains_value): Ditto.
|
||
(bitmap_set_new): Ditto.
|
||
(bitmap_set_pool): New pool.
|
||
(find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
|
||
(insert_aux): Ditto.
|
||
(add_to_sets): Ditto.
|
||
(compute_avail): Ditto
|
||
(eliminate): Ditto.
|
||
(init_pre): Ditto.
|
||
(fini_pre): Ditto.
|
||
(execute_pre): Ditto.
|
||
|
||
2004-07-02 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/rs6000/rs6000.c (struct processor_costs): New structure
|
||
used to hold instruction latencies/sizes for processor types.
|
||
(rs6000_cost): New global variable pointing to current CPU's costs.
|
||
(rs6000_override_options): Initialize rs6000_cost to point to the
|
||
appropriate cost table based upon rs6000_cpu and optimize_size.
|
||
(rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
|
||
timings inline.
|
||
|
||
2004-07-02 Richard Henderson <rth@redhat.com>
|
||
|
||
* expmed.c (make_tree): Don't use SET_DECL_RTL.
|
||
|
||
2004-07-02 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* tree-flow.h (bb_ann_d): Remove ephi_nodes field.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
|
||
(alpha_gp_save_rtx): Use assign_stack_local instead of
|
||
gen_mem_addressof.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
|
||
(alpha_rtx_cost_data): Update to match.
|
||
(alpha_rtx_cost_size): New.
|
||
(alpha_rtx_costs): Honor optimize_size.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* gimple-low.c (lower_function_body): Don't reset_block_changes here.
|
||
* cfgexpand.c (tree_expand_cfg): Do it here.
|
||
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
|
||
* config/ia64/ia64.c (ia64_output_mi_thunk): And here.
|
||
* config/mips/mips.c (mips_output_mi_thunk): And here.
|
||
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
|
||
* config/sh/sh.c (sh_output_mi_thunk): And here.
|
||
* config/sparc/sparc.c (sparc_output_mi_thunk): And here.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree.def (RTL_EXPR): Remove.
|
||
* c-typeck.c (lvalue_p): Don't handle it.
|
||
* expr.c (safe_from_p): Likewise.
|
||
(expand_expr_real_1): Likewise.
|
||
* fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
|
||
(fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
|
||
* gengtype.c (adjust_field_tree_exp): Likewise.
|
||
* stmt.c (warn_if_unused_value): Likewise.
|
||
* tree-gimple.c (recalculate_side_effects): Likewise.
|
||
* tree-pretty-print.c (dump_generic_node): Likewise.
|
||
* tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
|
||
(unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
|
||
* tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
|
||
|
||
* stmt.c (struct stmt_status): Remove x_last_expr_type,
|
||
x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
|
||
(last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
|
||
(expand_expr_stmt): Merge with expand_expr_stmt_value. Remove
|
||
all the bits that tracked last_expr.
|
||
(expand_end_bindings): Don't track last_expr.
|
||
(expand_start_stmt_expr, expand_end_stmt_expr): Remove.
|
||
(clear_last_expr): Remove.
|
||
(expand_asm): Don't call it.
|
||
(expand_asm_operands, expand_end_cond): Likewise.
|
||
(expand_naked_return, expand_null_return_1): Likewise.
|
||
* c-typeck.c (c_begin_compound_stmt): Likewise.
|
||
* cfgexpand.c (expand_block): Use expand_expr_stmt.
|
||
* expr.c (expand_expr_real_1): Likewise.
|
||
* tree.h: Update prototypes.
|
||
|
||
* function.h (struct sequence_stack): Remove sequence_rtl_expr.
|
||
(struct emit_status): Remove sequence_rtl_expr.
|
||
(struct function): Remove x_rtl_expr_chain.
|
||
(seq_rtl_expr, rtl_expr_chain): Remove.
|
||
* function.c (struct temp_slot): Remove rtl_expr.
|
||
(assign_stack_temp_for_type): Don't set it.
|
||
(free_temp_slots, pop_temp_slots): Don't check it.
|
||
(free_after_compilation): Don't clear x_rtl_expr_chain.
|
||
(fixup_var_refs): Don't search it.
|
||
(preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
|
||
* emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
|
||
or seq_rtl_expr.
|
||
(push_topmost_sequence): Likewise.
|
||
(end_sequence, init_emit): Likewise.
|
||
(start_sequence_for_rtl_expr): Remove.
|
||
* expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
|
||
* rtl.h (preserve_rtl_expr_result): Remove.
|
||
|
||
2004-07-02 Kazu Hirata <kazu@cs.umass.edu>
|
||
|
||
* ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
|
||
tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
|
||
typos.
|
||
|
||
2004-07-02 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
|
||
|
||
* gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
|
||
(STANDARD_STARTFILE_PREFIX_2): Define.
|
||
(standard_startfile_prefix_1): Initialize to
|
||
STANDARD_STARTFILE_PREFIX_1.
|
||
(standard_startfile_prefix_2): Initialize to
|
||
STANDARD_STARTFILE_PREFIX_2.
|
||
* config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
|
||
(STANDARD_STARTFILE_PREFIX_1): Define.
|
||
(STANDARD_STARTFILE_PREFIX_2): Define.
|
||
* doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
|
||
(STANDARD_STARTFILE_PREFIX_2): Document.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
|
||
in order to disable scalarization. Instead set a flag and wait
|
||
for a candidate decl.
|
||
|
||
2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
* doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
|
||
doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
|
||
Use terminology "testsuite" and "enumerated".
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* dwarf2out.c (reg_save): Use INVALID_REGNUM.
|
||
(dwarf2out_reg_save, dwarf2out_return_save): Likewise.
|
||
(initial_return_save): Likewise.
|
||
(flush_queued_reg_saves): Remap register numbers.
|
||
(dwarf2out_return_reg): Likewise.
|
||
|
||
2004-07-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||
|
||
* gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
|
||
|
||
* tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
|
||
access functions for lower bound and element size and only output
|
||
if lower bound nonzero or element size not same as that of type.
|
||
(dump_generic_node, case COMPONENT_REF): Use access func. for offset.
|
||
|
||
2004-07-01 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
|
||
|
||
2004-07-01 Per Bothner <per@bothner.com>
|
||
|
||
* final.c (final): Fix typo reported by Aaron W. LaFramboise.
|
||
|
||
2004-07-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
|
||
bitfields as well. STRIP_NOPS from src operand and PLUS_EXPR's
|
||
first operand. Don't optimize if the bitfield is volatile.
|
||
|
||
2004-07-01 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* c-pretty-print.c (pp_c_postfix_expression): Handle
|
||
floating-point comparison operators.
|
||
(pp_c_expression): Pass floating-point comparison
|
||
operators to pp_c_postfix_expression.
|
||
|
||
2004-07-01 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
|
||
rtx_cost instead of "had_mult" to determine whether the transformed
|
||
expression is cheaper than the original.
|
||
|
||
2004-07-01 Jerry Quinn <jlquinn@optonline.net>
|
||
|
||
* alias.c (get_alias_set, canon_rtx, get_addr,
|
||
nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
|
||
Use MEM_P.
|
||
* builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
|
||
expand_builtin): Likewise.
|
||
* calls.c (expand_call, emit_library_call_value_1, store_one_arg):
|
||
Likewise.
|
||
* combine.c (can_combine_p, combinable_i3pat, try_combine,
|
||
find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
|
||
rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
|
||
record_dead_and_set_regs_1, get_last_value_validate,
|
||
mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
|
||
* cse.c (check_dependence, canon_hash, equiv_constant,
|
||
gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
|
||
cse_around_loop, cse_check_loop_start, cse_set_around_loop,
|
||
count_reg_usage): Likewise.
|
||
* cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
|
||
cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
|
||
cselib_record_sets): Likewise.
|
||
* dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
|
||
dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
|
||
* ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
|
||
* df.c (df_uses_record): Likewise.
|
||
* dojump (do_jump): Likewise.
|
||
* dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
|
||
loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
|
||
decl_start_label): Likewise.
|
||
* emit-rtl.c (gen_complex_constant_part, gen_highpart,
|
||
operand_subword, change_address_1, make_safe_from): Likewise.
|
||
* explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
|
||
stabilize, force_not_mem): Likewise.
|
||
* expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
|
||
expand_mult_const, expand_divmod, emit_store_flag): Likewise.
|
||
* expr.c (convert_move, convert_modes, emit_block_move,
|
||
emit_group_load, emit_group_store, clear_storage, emit_move_insn,
|
||
emit_move_insn_1, expand_assignment, store_expr,
|
||
store_constructor_field, store_constructor, store_field,
|
||
force_operand, safe_from_p, expand_expr_real_1, expand_increment):
|
||
Likewise.
|
||
* final.c (cleanup_subreg_operands, alter_subreg,
|
||
get_mem_expr_from_op): Likewise.
|
||
* flow.c (notice_stack_pointer_modification_1,
|
||
init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
|
||
Likewise.
|
||
* function.c (mark_temp_addr_taken, preserve_temp_slots,
|
||
preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
|
||
optimize_bit_field, flush_addressof, purge_addressof_1,
|
||
instantiate_decl, instantiate_virtual_regs_1, assign_parms,
|
||
setjmp_protect, setjmp_protect_args, fix_lexical_addr,
|
||
keep_stack_depressed): Likewise.
|
||
* ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
|
||
noce_process_if_block, find_memory): Likewise.
|
||
* integrate.c (subst_constants, allocate_initial_values): Likewise.
|
||
* local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
|
||
update_equiv_regs): Likewise.
|
||
* loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
|
||
maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
|
||
* optabs.c (expand_abs, emit_unop_insn): Likewise.
|
||
* passes.c (rest_of_handle_final): Likewise.
|
||
* postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
|
||
move2add_note_store): Likewise.
|
||
* ra-build.c (detect_remat_webs): Likewise.
|
||
* ra-debug.c (dump_static_insn_cost): Likewise.
|
||
* ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
|
||
* recog.c (validate_change, apply_change_group, cancel_changes,
|
||
validate_replace_rtx_1, general_operand, register_operand,
|
||
nonmemory_operand, push_operand, pop_operand, memory_operand,
|
||
indirect_operand, asm_operand_ok, offsettable_memref_p,
|
||
offsettable_nonstrict_memref_p, constrain_operands,
|
||
store_data_bypass_p): Likewise.
|
||
* reg-stack.c (subst_stack_regs_pat): Likewise.
|
||
* regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
|
||
copy_cost, reg_scan_mark_refs): Likewise.
|
||
* regmove.c (optimize_reg_copy_3, stack_memref_p,
|
||
combine_stack_adjustments_for_block): Likewise.
|
||
* regrename.c (copyprop_hardreg_forward_1): Likewise.
|
||
* reload.c (can_reload_into, push_reload, decompose, immune_p,
|
||
find_reloads, find_reloads_address, find_reloads_address_1,
|
||
reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
|
||
find_equiv_reg): Likewise.
|
||
* reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
|
||
reload_as_needed, choose_reload_regs, emit_input_reload_insns,
|
||
do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
|
||
delete_address_reloads): Likewise.
|
||
* resource.c (mark_referenced_resources): Likewise.
|
||
* rtlanal.c (get_jump_table_offset, count_occurrences,
|
||
reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
|
||
reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
|
||
num_sign_bit_copies1): Likewise.
|
||
* rtlhooks.c (gen_lowpart_general): Likewise.
|
||
* sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
|
||
* sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
|
||
sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
|
||
sdbout_global_decl): Likewise.
|
||
* simplify-rtx.c (simplify_subreg): Likewise.
|
||
* stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
|
||
expand_anon_union_decl, expand_end_case_type): Likewise.
|
||
* unroll.c (calculate_giv_inc): Likewise.
|
||
* var-tracking.c (stack_adjust_offset_pre_post,
|
||
bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
|
||
add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
|
||
vt_add_function_parameters): Likewise.
|
||
* varasm.c (make_var_volatile, notice_global_symbol,
|
||
assemble_external, decode_addr_const, mark_weak,
|
||
default_encode_section_info): Likewise.
|
||
|
||
2004-07-01 Steven Bosscher <stevenb@suse.de>
|
||
|
||
* stmt.c (check_seenlabel): Remove.
|
||
(pushcase, pushcase_range, expand_end_case_type): Don't call it.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.h (struct function): Remove x_function_call_count.
|
||
(function_call_count): Remove.
|
||
* calls.c (expand_call): Don't set it.
|
||
* integrate.c (copy_rtx_and_substitute): Likewise.
|
||
|
||
* function.h (struct function): Remove x_cleanup_label.
|
||
(cleanup_label): Remove.
|
||
* stmt.c (expand_value_return): Don't use it.
|
||
* function.c (free_after_compilation): Don't set it.
|
||
(expand_function_start): Likewise. Remove parms_have_cleanups arg.
|
||
* cfgexpand.c (tree_expand_cfg): Update call.
|
||
* tree.h (expand_function_start): Update decl.
|
||
|
||
2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk>
|
||
|
||
PR c/1027
|
||
* c-lang.c (c_initialize_diagnostics): Move from here ...
|
||
* c-objc-common.c: ... to here. Include "c-pretty-print.h".
|
||
(c_tree_printer): Use pretty-printer to format %T.
|
||
* c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
|
||
before '*' if not C++.
|
||
(pp_c_direct_abstract_declarator): Don't try to print array upper
|
||
bound for flexible array members.
|
||
* c-tree.h: Include "diagnostic.h".
|
||
(c_initialize_diagnostics): Declare.
|
||
* objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
|
||
* c-format.c (format_type_warning): New function. Improve
|
||
diagnostics for incorrect format argument types.
|
||
(check_format_types): Use it. Add two parameters. Use the
|
||
TYPE_MAIN_VARIANT of wanted_type.
|
||
(check_format_info_main): Pass new parameters to
|
||
check_format_types.
|
||
(struct format_wanted_type): Update comment.
|
||
|
||
2004-07-01 Nick Clifton <nickc@redhat.com>
|
||
|
||
* target.h (struct gcc_target): Add new field to struct cxx:
|
||
import_export_class.
|
||
* target-def.h (TARGET_CXX): Initialise the new field.
|
||
(TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
|
||
the new field.
|
||
* doc/tm.texi: Document the new target hook.
|
||
|
||
2004-07-01 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* builtins.c (fold_builtin_classify): Fix typo.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.c (identify_blocks, identify_blocks_1): Remove.
|
||
* function.h (identify_blocks): Remove.
|
||
* rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
|
||
|
||
2004-07-01 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* builtins.c (fold_builtin_classify): New.
|
||
(fold_builtin_unordered_cmp): Fix commentary.
|
||
(fold_builtin): Use it.
|
||
* builtins.def: Define builtins for isnan,
|
||
isnanf, isnanl, finite, finitef, finitel,
|
||
isinf, isinff, isinfl.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* function.h (struct function): Remove dont_emit_block_notes.
|
||
* gimple-low.c (lower_function_body): Don't set it.
|
||
* cfgexpand.c (expand_block): Don't check it.
|
||
* cfglayout.c (insn_locators_initialize): Likewise.
|
||
* expr.c (expand_expr_real, expand_expr_real_1): Likewise.
|
||
* passes.c (rest_of_compilation): Likewise.
|
||
* stmt.c (expand_start_bindings_and_block): Likewise.
|
||
(expand_end_bindings): Likewise.
|
||
|
||
2004-07-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* cgraph.h (cgraph_build_static_cdtor): Declare.
|
||
* cgraphunit.c (cgraph_build_static_cdtor): New.
|
||
* c-objc-common.c (build_cdtor): Use it.
|
||
* coverage.c (create_coverage): Likewise.
|
||
* libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
|
||
* optabs.c (init_optabs): Don't set gcov_init_libfunc.
|
||
|
||
See ChangeLog.11 for earlier changes.
|