X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=6c7c1d0e3b146149f30e0f924680b3e153fc7e4e;hp=5d432ceabc3cff717244d358e788e09a35a0bebf;hb=73e68f91914deff5f5d351cf1e51a7acb3833df0;hpb=35cc02b5c80ac6738c1a3362a822e3d7e4d0c587 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d432ceabc3..6c7c1d0e3b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,50 +1,1336 @@ +2006-12-12 Olivier Hainque + + * config/vxlib.c: Extract tls related routines into ... + * config/vxlib-tls.c: New file. + * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA. + +2006-12-12 Sa Liu + Ben Elliston + + * config/spu/spu.opt (mfixed-range): New option. + * config/spu/spu.h (spu_fixed_range_string): Declare. + * config/spu/spu.c (spu_override_options): Handle -mfixed-range. + (fix_range): New function. + * doc/invoke.texi (SPU Options): Document -mfixed-range. + * testsuite/gcc.target/spu/fixed-range.c: New. + * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto. + +2006-12-11 H.J. Lu + + PR middle-end/17982 + PR middle-end/20218 + * cgraphunit.c (cgraph_optimize): Remove call to + process_pending_assemble_externals. + + * config/elfos.h (ASM_OUTPUT_EXTERNAL): New. + + * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed. + + * config/ia64/ia64.c (ia64_asm_output_external): Rewritten. + (ia64_hpux_add_extern_decl): Removed. + (ia64_hpux_file_end): Likewise. + (extern_func_list): Likewise. + (extern_func_head): Likewise. + + * output.h (assemble_external): Update comments. + (default_elf_asm_output_external): New. + (maybe_assemble_visibility): New. + + * toplev.c (compile_file): Update comment. + + * varasm.c (assemble_external): Always put it on + pending_assemble_externals. + (maybe_assemble_visibility): Make it extern and return int. + (default_elf_asm_output_external): New. + +2006-12-11 Daniel Berlin + + * tree-ssa-structalias.c (handle_ptr_arith): Return false when we + can't handle the pointer arithmetic. + +2006-12-11 Diego Novillo + + * doc/tree-ssa.texi: Update documentation for virtual operands + and the use of push_stmt_changes/pop_stmt_changes. + * doc/invoke.texi: Remove documentation for params + global-var-threshold. + Update documentation on max-aliased-vops. + + * tree-into-ssa.c: Cleanup comments, variables and + spacing in various functions. + (regs_to_rename): Declare. + (mem_syms_to_rename): Declare. + (dump_update_ssa): Declare. + (debug_update_ssa): Declare. + (dump_names_replaced_by): Declare. + (debug_names_replaced_by): Declare. + (dump_def_blocks): Declare. + (debug_def_blocks): Declare. + (dump_defs_stack): Declare. + (debug_defs_stack): Declare. + (dump_currdefs): Declare. + (debug_currdefs): Declare. + (mark_def_sites): Do not handle virtual operands. + (compute_idf): Rename from find_idf. Update users. + (register_new_def): Make local. Convert second argument + to 'tree'. + Use BLOCK_DEFS_STACK directly. + If pushing a non-register, also push the underlying + symbol. + (rewrite_stmt): Do not handle virtual operands. + (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack, + dump_currdefs and dump_tree_ssa_stats. + (dump_tree_ssa_stats): Also dump REPL_TBL. + (replace_use): Remove. Update all users to call SET_USE + instead. + (rewrite_blocks): Move code to free memory to + fini_ssa_renamer. + (mark_def_site_blocks): Move initialization code to + init_ssa_renamer. + (init_ssa_renamer): New. + (fini_ssa_renamer): New. + (rewrite_into_ssa): Call them. + (prepare_block_for_update): Process SSA_OP_ALL_USES first + and SSA_OP_ALL_DEFS later. Do not process virtual + operands separately. + (dump_update_ssa): Call dump_decl_set. + (init_update_ssa): Initialize regs_to_rename and + mem_syms_to_rename. + Call init_ssa_renamer. + (delete_update_ssa): Call fini_ssa_renamer. + Free blocks_with_phis_to_rewrite. + (mark_sym_for_renaming): If the variable has + sub-variables, also mark them. + If the variable belongs to a partition, also mark it. + (mark_set_for_renaming): Call mark_sym_for_renaming on + every symbol in the set. + (switch_virtuals_to_full_rewrite): Call + mark_set_for_renaming. + (update_ssa): Separate syms_to_rename into regs_to_rename + and mem_syms_to_rename. + + * tree-dump.c (dump_options): Add TDF_MEMSYMS. + * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS. + (debug_generic_stmt): Likewise. + (debug_tree_chain): Likewise. + (dump_symbols): New. + (dump_generic_node): Check for TDF_MEMSYMS. + Handle MEMORY_PARTITION_TAG. + If the statement references memory and TDF_MEMSYMS is + given, call dump_symbols. + Indicate default names with (D). + (dump_vops): Update for new virtual operator format. + + * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to + tree_contains_struct. + (tree_code_size): Handle MEMORY_PARTITION_TAG. + (tree_node_structure): Likewise. + (needs_to_live_in_memory): Handle SSA names. + * tree.h (MTAG_P): Likewise. + (struct tree_memory_partition_tag): Declare. + (MPT_SYMBOLS): Define. + (union tree_node): Add field 'mpt'. + * treestruct.def (TS_MEMORY_PARTITION_TAG): Define. + * tree.def (MEMORY_PARTITION_TAG): Define. + + * tree-pass.h (TDF_MEMSYMS): Define. + + * params.h (GLOBAL_VAR_THRESHOLD): Remove. + + * tree-ssa-alias.c: Include pointer-set.h + (struct alias_map_d): Remove fields total_alias_vops, + grouped_p and may_aliases. Update all users. + (struct mp_info_def): Declare. + (mp_info_t): New type. + (get_smt_for): Rename from get_tmt_for. Update all + users. + (add_may_alias): Add argument ALREADY_ADDED. If given, + use it to avoid adding duplicate entries to alias sets. + (replace_may_alias): Remove. Update all users. + (total_alias_vops_cmp): Remove. Update all users. + (group_aliases_into): Remove. Update all users. + (tree_pointer_compare): Remove. Update all users. + (compact_name_tags): Remove. Update all users. + (group_aliases): Remove. Update all users. + (mark_non_addressable): Move from tree-flow-inline.h. + Remove the symbol from the partition holding it, if + needed. + (dump_mp_info): New. + (debug_mp_info): New. + (sort_mp_info): New. + (create_partition_for): New. + (rewrite_alias_set_for): New. + (compute_memory_partitions): New. + (compute_may_aliases): Call it. + (init_alias_info): If computing aliases for the first + time, mark every memory symbol for renaming. + (have_common_aliases_p): New. + (compute_flow_insensitive_aliasing): Call it. + (setup_pointers_and_addressables): Do not cache + num_referenced_vars. + For register promoted symbols, mark their former + partition for renaming. + (maybe_create_global_var): Only create .GLOBAL_VAR if + there are no call-clobbered variables and a mix of pure + and non-pure functions were found. + (may_alias_p): Tidy comments. + (create_tag_raw): Remove unused variable new_type. + (dump_alias_info): call dump_memory_partitions. + (dump_points_to_info_for): Call dump_decl_set. + (may_be_aliased): Tidy comments and formatting. + + * timevar.def (TV_MEMORY_PARTITIONING): Define. + * tree-vectorizer.c (vect_memsyms_to_rename): Rename from + vect_vnames_to_rename. Set DECL_UIDs instead of SSA name + versions in it. + (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs. + * tree-vect-transform.c (vect_transform_loop): Call + mark_set_for_renaming with vect_memsyms_to_rename. + * tree-flow-inline.h (zero_imm_uses_p): New. + (memory_partition): New. + (set_memory_partition): New. + (factoring_name_p): New. + (symbol_mem_tag): New. Update every function that used + to access the annotation directly. + (set_symbol_mem_tag): Likewise. + + * tree-ssa-copy.c (may_propagate_copy): Allow copies + between a partition and a symbol as long as the symbol + belongs to the partition. + (merge_alias_info): Ignore merge requests when memory + partitions are involved. + + * tree-ssa.c (verify_ssa_name): Check that default + definitions have empty defining statements. + (verify_use): Remove argument IS_VIRTUAL. + Don't call verify_ssa_name. + (verify_phi_args): Call verify_ssa_name. + (verify_flow_insensitive_alias_info): Handle MPTs. + (verify_flow_sensitive_alias_info): Likewise. + (verify_name_tags): Likewise. + (verify_call_clobbering): Likewise. + (verify_ssa): Check for VOPs only after aliasing + information is available. + Check virtuals and real operands separately. + Call verify_ssa_name on every operand. + (stmt_references_memory_p): Move to tree-ssa-operands.c. + (walk_use_def_chains_1): Guard against NULL PHI + arguments. + + * tree-ssa-operands.c (stmt_references_memory_p): Move from + tree-ssa.c. + (get_mpt_for): New. + (dump_memory_partitions): New. + (debug_memory_partitions): New. + + * tree-flow.h (struct var_ann_d): Add field mpt. + (struct stmt_ann_d): Add bitfield references_memory. + * Makefile.in (tree-ssa-structalias.o): Include + pointer-set.h + (tree-ssa-alias.o): Likewise. + * tree-ssa-structalias.c: (update_alias_info): Use + STORED_SYMS to determine which variables are being + written to by the store operation. + * tree-ssa-structalias.h (struct alias_info) + : Remove. Update all users. + : Change to a pointer set. Update all + users. + : Likewise. + : Likewise. + (NUM_REFERENCES): Remove. Update all users. + (NUM_REFERENCES_CLEAR): Remove. Update all users. + (NUM_REFERENCES_INC): Remove. Update all users. + (NUM_REFERENCES_SET): Remove. Update all users. + + * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove. + Update all users. + (PARAM_MAX_ALIASED_VOPS): Set to 10. + * tree-ssanames.c (make_ssa_name): Initialize + SSA_NAME_IS_DEFAULT_DEF to 0. + +2006-12-11 Aldy Hernandez + + * tree-ssa-dse.c (aggregate_vardecl_d): New. + (dse_global_data): Add aggregate_vardecl field. + (dse_possible_dead_store_p): New. + Add prev_defvar variable. + Allow immediate uses and previous immediate uses to differ + if they are setting different parts of the whole. + (get_aggregate_vardecl): New. + (dse_record_partial_aggregate_store): New. + (dse_whole_aggregate_clobbered_p): New. + (dse_partial_kill_p): New. + (dse_optimize_stmt): Abstract code checking a possible dead store + into new function dse_possible_dead_store_p(). + Call dse_maybe_record_aggregate_store(). + When checking whether a STMT and its USE_STMT refer to the + same memory address, check also for partial kills that clobber + the whole. + Move some variable definitions to the block where they are used. + (aggregate_vardecl_hash): New. + (aggregate_vardecl_eq): New. + (aggregate_vardecl_free): New. + (aggregate_whole_store_p): New. + (tree_ssa_dse): Initialize and free aggregate_vardecl. + Mark which aggregate stores we care about. + +2006-12-11 Andrew Macleod + + * tree-ssa-operands.h (struct vuse_element_d): Declare. + (vuse_element_t): Declare. + (struct vuse_vec_d): Declare. + (vuse_vec_p): Declare. + (VUSE_VECT_NUM_ELEM): Define. + (VUSE_VECT_ELEMENT_NC): Define. + (VUSE_ELEMENT_PTR_NC): Define. + (VUSE_ELEMENT_VAR_NC): Define. + (VUSE_VECT_ELEMENT): Define. + (VUSE_ELEMENT_PTR): Define. + (VUSE_ELEMENT_VAR): Define. + (struct maydef_optype_d) : Remove. + : Remove. + : Add. + (struct vuse_optype_d) : Remove. + : Remove. + : Add. + (struct mustdef_optype_d) : Remove. + : Remove. + : Add. + (VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR. + (VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR. + (VUSE_NUM): Define. + (VUSE_VECT): Define. + (MAYDEF_OP_PTR): Add argument. Use VUSE_OP_PTR. + (MAYDEF_OP): Add argument. Use VUSE_OP. + (MAYDEF_NUM): Define. + (MAYDEF_VECT): Define. + (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR. + (MUSTDEF_KILL): Use VUSE_OP. + (MUSTDEF_NUM): Define. + (MUSTDEF_VECT): Define. + (realloc_maydef): Declare. + (realloc_vuse): Declare. + (struct ssa_operand_iterator_d) : Add. + : Add. + (LOADED_SYMS): Define. + (STORED_SYMS): Define. + (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef. + * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE + operators. + * tree-pretty-print.c: Likewise. + * tree-ssa-dse.c: Likewise. + * tree-flow-inline.h: Likewise. + (op_iter_next_mustdef): New. + * tree-ssa-operands.c: Likewise. + (ALLOC_OPTYPE): Remove. + Update all users. + (alloc_def): New. + (alloc_use): New. + (alloc_maydef): New. + (alloc_vuse): New. + (alloc_mustdef): New. + (realloc_maydef): New. + (realloc_vuse): New. + +2006-12-11 Aldy Hernandez + + * tree-ssa-operands.c: Remove build_v_must_defs. + (init_ssa_operands): Delete build_v_must_defs. + (finalize_ssa_v_must_def_ops): Remove. + (finalize_ssa_v_must_defs): Remove. + (finalize_ssa_stmt_operands): Do not call + finalize_ssa_v_must_defs. + (start_ssa_stmt_operands): Do not check build_v_must_defs. + (append_v_must_def): Delete. + (copy_virtual_operands): Do not copy V_MUST_DEFs. + (get_modify_expr_operands): Remove reference to V_MUST_DEF from + comment. Remove opf_kill_def. + (build_ssa_operands): Remove references to v_must_defs. + (copy_virtual_operands): Same. + (copy_virtual_operands): Same. + (fini_ssa_operands): Same. + (free_ssa_operands): Same. + (add_mustdef_op): Remove. + Remove mustdef_optype_p. + (alloc_mustdef): Remove. + Remove references to V_MUST_DEFs in comment at top of file. + (get_expr_operands): Remove opf_kill_def. + (opf_kill_def): Remove. + (add_virtual_operand): Remove opf_kill_def. + (get_indirect_ref_operands): Same. + (get_tmr_operands): Same. + + * tree-vectorizer.c (rename_variables_in_bb): Remove + SSA_OP_ALL_KILLS. + + * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove + SSA_OP_ALL_KILLS. + (check_loop_closed_ssa_stmt): Same. + + * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment. + (verify_use): Same. + (verify_ssa): Remove V_MUST_DEFs traces. + (verify_ssa): Remove SSA_OP_ALL_KILLS. + + * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to + SSA_OP_VMAYDEF. + (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS. + (rewrite_stmt): Remove SSA_OP_ALL_KILLS. + + * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF + references. + (MUSTDEF_OPS): Remove. + (SSA_OP_VMUSTDEF): Remove. + (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove. + (struct mustdef_optype_d): Remove. + Remove mustdef_optype_p. + (struct stmt_operands_d): Remove mustdef_ops. + (ssa_operand_iterator_d): Remove mustdefs and mustkills. + (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF. + (MUSTDEF_RESULT_PTR): Remove. + (MUSTDEF_RESULT): Remove. + (MUSTDEF_KILL_PTR): Remove. + (MUSTDEF_KILL): Remove. + (MUSTDEF_NUM): Remove. + (MUSTDEF_VECT): Remove. + (SSA_OP_VIRTUAL_KILLS): Remove. + (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS. + (SSA_OP_VMUSTKILL): Remove. + (SSA_OP_ALL_KILLS): Remove. + (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS. + + * tree-flow-inline.h (op_iter_init_def): Remove + SSA_OP_VIRTUAL_KILLS. + (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS. + + * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove + SSA_OP_VIRTUAL_KILLS. + + * tree-ssa-loop-im.c (determine_max_movement): Remove + SSA_OP_VIRTUAL_KILLS. + (gather_mem_refs_stmt): Same. + (gather_mem_refs_stmt): Same. + + * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete. + (perform_tree_ssa_dce): Remove call to + mark_really_necessary_kill_operand_phis. + + * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs + and mustkills. + (op_iter_next_use): Do not check mustkills. + (op_iter_next_def): Do not check mustdefs. + (op_iter_next_tree): Do not check mustkills or mustdefs. + (clear_and_done_ssa_iter): Do not set mustdefs or mustkills. + (op_iter_next_maymustdef): Do not check mustkills. + (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL. + (op_iter_init_mustdef): Remove. + + * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to + SSA_OP_VMAYDEF. + + * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF. + + * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments. + (visit_assignment): Same. + + * tree-ssa-copy.c (copy_prop_visit_assignment): Same. + + * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment. + + * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF. + + * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF. + Remove kill_p variable. + + * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs. + (dump_dfa_stats): Remove code related to V_MUST_DEFs. + (collect_dfa_stats_r): Do not set num_v_must_defs. + (mark_new_vars_to_rename): Remove v_must_defs_{before,after} + code. + + * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to + SSA_OP_VMAYUSE. + + * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove + SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL. + + * tree-ssa-propagate.c (stmt_makes_single_store): Remove + SSA_OP_VMUSTDEF. + +2006-12-11 Zdenek Dvorak + + PR rtl-optimization/30113 + * loop-iv.c (implies_p): Require the mode of the operands to be + scalar. + +2006-12-11 Diego Novillo + + * tree-ssa-operands.h (create_ssa_artificial_load_stmt): + Rename from create_ssa_artficial_load_stmt. Update all users. + * tree-into-ssa.c (register_new_def): Make static. + * tree.c (is_global_var): Handle SSA_NAMEs. + * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define. Update all users + that used to call gimple_default_def. + * tree-ssa-operands.c (push_stmt_changes): New. + (pop_stmt_changes): New. Update every pass that modifies + statements to bracket modifications with + push_stmt_changes/pop_stmt_changes. + (discard_stmt_changes): New. + * tree-ssa-dom.c (stmts_to_rescan): Change to stack of + 'tree *' instead of 'tree'. Update all users. + * tree-flow-inline.h (zero_imm_uses_p): New. + (symbol_mem_tag): New. Update every function that used + to access the annotation directly. + (set_symbol_mem_tag): Likewise. + * tree-dfa.c (dump_variable): Always show the escape mask. + (mark_symbols_for_renaming): Rename from + mark_new_vars_to_rename. Update all users. + Only mark to rename naked symbols in real and virtual + operands. + +2006-12-11 Andreas Schwab + + * varasm.c (elf_record_gcc_switches): Cast second argument of + ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT. + +2006-12-11 Diego Novillo + + * tree-scalar-evolution.c (scev_const_prop): + * tree-phinodes.c (remove_phi_node): Add argument + RELEASE_LHS_P. If given, release the SSA name on the LHS of + the PHI node. + Update all users. + * tree-ssa-dce.c: Remove forward declarations for static + functions. Re-arrange functions bodies as needed. + (find_obviously_necessary_stmts): Never mark PHI nodes as + obviously necessary. + +2006-12-11 Carlos O'Donell + + * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition. + +2006-12-11 Jan Hubicka + + * value-prof.c (tree_stringops_transform): New. + (tree_value_profile_transformations): Require count to be non-zero; + call stringop transform; reset stmt BSI after BB changed. + (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label. + (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New. + (tree_stringops_values_to_profile): New. + (tree_values_to_profile): Call tree_stringops_values_to_profile. + * tree.h (build_string_literal): Tidy prototype. + (validate_arglist, builtin_memset_read_str, get_pointer_alignment): + Declare. + * builtins.c (validate_arglist, builtin_memset_read_str, + get_pointer_alignment): Export. + +2006-12-11 Uros Bizjak + + PR target/30120 + Revert: + 2006-11-15 Uros Bizjak + + * config/i386/i386.opt: New target option -mx87regparm. + + * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno, + float_in_x87: Add new variables. mmx_words, sse_words: Remove. + (X87_REGPARM_MAX): Define. + + * config/i386/i386.c (override_options): Error out for + -mx87regparm but no 80387 support. + (ix86_attribute_table): Add x87regparm. + (ix86_handle_cconv_attribute): Update comments for x87regparm. + (ix86_comp_type_attributes): Check for mismatched x87regparm types. + (ix86_function_x87regparm): New function. + (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating + point registers. + (init_cumulative_args): Initialize x87_nregs and float_in_x87 + variables. + (function_arg_advance): Process x87_nregs and x87_regno when + floating point argument is to be passed in 80387 register. + (function_arg): Pass XFmode arguments in 80387 registers for local + functions. Pass SFmode and DFmode arguments to local functions + in 80387 registers when flag_unsafe_math_optimizations is set. + + * reg-stack.c (convert_regs_entry): Disable NaN load for + stack registers that are used for argument passing. + + * doc/extend.texi: Document x87regparm function attribute. + * doc/invoke.texi: Document -mx87regparm. + +2006-12-11 Jan Hubicka + + Move all varpool routines out of cgraph/cgraphunit to varpool.c + * cgraph.c: Update comments. + (cgraph_varpool_hash, + cgraph_varpool_nodes, cgraph_varpool_last_needed_node + cgraph_varpool_node_name, cgraph_varpool_node, + cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node, + cgraph_variable_initializer_availability): Move to + varpool.c and drop cgraph_ prefixes. + (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue, + cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl): + move to varpool.c; drop cgraph_ prefix; make static. + (dump_cgraph_varpool_node): Move to varpool.c under name + dump_varpool_node. + (dump_varpool, hash_varpool_node, eq_varpool_node, + decide_is_variable_needed): Move to varpool.c + (decl_assembler_name_equal): Move to tree.c. + (availability_names): Rename to ... + (cgraph_availability_names): ... this one. + (dump_cgraph_node): Update. + * cgraph.h: Reorder declarations now in varpool.c + (cgraph_vailablity_names): Declare. + (struct cgraph_varpool_node): Rename to ... + (struct varpool_node): ... this one. + (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue, + cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node, + cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node, + cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node, + cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls, + cgraph_variable_initializer_availability): Rename to ... + (varpool_first_unanalyzed_node, varpool_nodes_queue, + varpool_first_unanalyzed_node, varpool_node, + varpool_node_for_asm, varpool_mark_needed_node, + varpool_finalize_decl, varpool_enqueue_needed_node, + varpool_assemble_pending_decls, variable_initializer_availability): + Rename to ... + * tree.c (decl_assembler_name_equal): Move here from cgraph.c. + * tree.h (decl_assembler_name_equal): Declare. + * omp-low.c (lower_omp_critical): Update. + * ipa-reference (analyze_variable, static_execute): Likewise. + * toplev.c (wrapup_global_declaration_2, compile_file): Update. + * cgraphunit.c: Update comments. + (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name + varpool_assembled_nodes_queue. + (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name + varpool_analyze_pending_decls. + (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name + varpool_remove_unreferenced_decls. + (record_reference): Update. + (cgraph_create_edges): Update. + (record_referneces_in_initializer): New function. + (cgraph_varpool_assemble_decl): Move to varpool.c under name + varpool_assemble_decl; make global. + (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name + varpool_assemble_pending_decls. + (process_function_and_variable_attributes, cgraph_finalize_compilation_unit, + struct cgraph_order_sort, cgraph_output_in_order, + cgraph_function_and_variable_invisibility, cgraph_optimize, + cgraph_increase_alignment): Update. + * dwarf2out.c (decls_for_scope): Likewise. + * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise. + * except.c (output_ttype): Likewise. + * varasm.c (mark_decl_referenced): Likewise. + (find_decl_and_mark_referenced, assemble_alias): update. + * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c + * passes.c (rest_of_decl_compilation): Update. + +2006-12-11 Ira Rosen + + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use + GIMPLE_STMT_OPERAND. + * tree-vect-transform.c (vect_permute_store_chain): Likewise. + (vect_setup_realignment): Likewise. + +2006-12-11 Sa Liu + Ben Elliston + + * config/spu/spu-elf.h (STARTFILE_SPEC): Update. + (ENDFILE_SPEC): Likewise. + * config/spu/spu.opt (mstdmain): New option. + * config/spu/crti.asm: Remove. + * config/spu/crtn.asm: Likewise. + * config/spu/crt0.c: Likewise. + * config/spu/crtend.c: Likewise. + * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files + listed above. + ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove. + * doc/invoke.texi (SPU Options): Document -mstdmain. + +2006-12-10 Zdenek Dvorak + + * doc/loop.texi: Document number_of_latch_executions and + number_of_cond_exit_executions. + * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, + chrec_is_positive, number_of_iterations_for_all_loops, + scev_const_prop): Use number_of_latch_executions. + (set_nb_iterations_in_loop): Do not increase the value of the + number of iterations. + (number_of_iterations_in_loop): Renamed to ... + (number_of_latch_executions): ... this. + (number_of_exit_cond_executions): New function. + * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration + removed. + (number_of_latch_executions, number_of_exit_cond_executions): Declare. + * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use + number_of_latch_executions. + * tree-data-ref.c (get_number_of_iters_for_loop): Use + number_of_exit_cond_executions. + * tree-vect-analyze.c (vect_get_loop_niters): Ditto. + * cfgloop.h (struct loop): Improve description of the nb_iterations + field. + +2006-12-10 Daniel Berlin + + * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id. + (tree_pointer_compare): Remove. + +2006-12-10 Zdenek Dvorak + + * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop. + * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP. + * tree-loop-linear.c (linear_transform_loops): Ditto. + * tree-ssa-loop-im.c (determine_lsm): Ditto. + * tree-ssa-loop-niter.c (estimate_numbers_of_iterations, + free_numbers_of_iterations_estimates): Ditto. + * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto. + * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. + * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto. + * modulo-sched.c (sms_schedule): Ditto. + * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables, + tree_unroll_loops_completely): Ditto. + * predict.c (predict_loops): Ditto. + * tree-if-conv.c (main_tree_if_conversion): Ditto. + * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely, + decide_unrolling_and_peeling): Ditto. + * cfgloopmanip.c (unloop): Use delete_loop. + (place_new_loop): Access larray vector instead of parray. + (create_preheaders, force_single_succ_latches, + fix_loop_structure): Use FOR_EACH_LOOP and delete_loop.. + * loop-doloop.c (doloop_optimize_loops): Ditto. + * loop-invariant.c (move_loop_invariants): Ditto. + * tree-cfg.c (replace_uses_by): Ditto. + * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto. + * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): + Moved to ... + * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): + ... here. + * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop, + compute_overall_effect_of_inner_loop, chrec_is_positive): Use + get_loop and get_chrec_loop. + (number_of_iterations_for_all_loops): Use number_of_loops. + (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP. + * tree-scalar-evolution.h (get_chrec_loop): New inline function. + * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops, + and FOR_EACH_LOOP. + * tree-chrec.c (evolution_function_is_invariant_rec_p, + chrec_convert_1): Use get_loop and get_chrec_loop. + * loop-init.c (loop_optimizer_init): Use number_of_loops. + (loop_optimizer_init): Use FOR_EACH_LOOP. + * tree-vectorizer.c (vect_loops_num): Removed. + (vectorize_loops): Store number of loops locally. Use + FOR_EACH_LOOP and get_loop. + * tree-vectorizer.h (vect_loops_num): Removed. + * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop. + (find_data_references_in_loop): Do not set parallel_p. + * tree-data-ref.h: Do not declare VEC(loop_p). + * cfgloop.c (flow_loops_dump, mark_single_exit_loops, + verify_loop_structure): Use FOR_EACH_LOOP. + (flow_loops_free): Use FOR_EACH_LOOP, free larray vector. + (initialize_loops_parallel_p): Removed. + (flow_loops_find): Push the loops into a vector. + (delete_loop): New function. + (cancel_loop): Use delete_loop. + * cfgloop.h: Declare VEC(loop_p). + (struct loop): Remove parallel_p field. + (struct loops): Replace num and parray field by larray vector. + Remove shared_headers field. + (delete_loop): Declare. + (get_loop, get_loops, number_of_loops, fel_next, fel_init, + FOR_EACH_LOOP): New. + * doc/loop.tex: Document new accessor functions. + +2006-12-10 Andrew MacLeod + + * common.opt (-ftree-lrs): Remove live range splitting option. + * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies. + * opts.c (decode_options): Remove flag_tree_live_range_split. + * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_. + * tree-flow-inline.h (single_imm_use_p): New. Check for single use. + * tree-outof-ssa.c: Remove header files which aren't needed. + (SSANORM_*): Remove flags. + (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, + coalesce_result_decls_and_copies, coalesce_asm_operands): Remove. + (coalesce_ssa_name): Move to tree-ssa-coalesce.c. + (assign_vars): Use Basevar instead of root_var structure. + (replace_def_variable): Dont do anything if def is replaceable. + (remove_ssa_form): Integrate functional changes. + (rewrite_out_of_ssa): Remove live-range_split option. + * tree-ssa-coalesce.c: New File for ssa-name coalescing. + (coalesce_cost): Calculate the cost of a coalesce. + (coalesce_cost_bb): Calculate the coalesce cost within a BB. + (coalesce_cost_edge): Calculate the coalesce cost on an edge. + (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list. + (pop_best_coalesce): Remove the best coalesce from the list. + (coalesce_pair_map_hash): Calculate coalesce pair hash. + (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function. + (create_coalesce_list): Create a coalesce list object. + (delete_coalesce_list): Free a coalesce list object. + (find_coalesce_pair): Find matching pair in the coalesce list. + (add_cost_one_coalesce): Add a coalesce to the "cost one" list. + (add_coalesce): Add a coalesce to the coalesce list. + (compare_pairs): Comparision function to determine pair sorted order. + (num_coalesce_pairs): Number of coalesced pairs. + (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair): + Coalesce pair iterator functions. + (sort_coalesce_list): Sort coalesce pairs in order of expense. + (dump_coalesce_list): Show coalesce list. + (ssa_conflicts_new): Create an SSA conflict graph. + (ssa_conflicts_delete): Delete an SSA conflict graph. + (ssa_conflicts_test_p): Test for conflicts. + (ssa_conflicts_add_one): Add a single conflict. + (ssa_conflicts_add): Add a conflict pair. + (ssa_conflicts_merge): Merge conflicts. + (struct live_track_d): Struct for tracking live partitions. + (new_live_track): Create new live_track object. + (delete_live_track): Delete a live_track object. + (live_track_remove_partition): Remove a partition from the live list. + (live_track_add_partition): Add a partition from the live list. + (live_track_clear_var): Take VAR from the live list. + (live_track_live_p): Is var live? + (live_track_process_use): Make var come alive. + (live_track_process_def): Make var go dead, add conflicts. + (live_track_init): Initialize to a live on exit set. + (live_track_clear_base_vars): Clear live partitions. + (build_ssa_conflict_graph): Build a conflict graph. + (print_exprs): Common debug output routine. + (abnormal_corrupt): Output info about a failed coalesce across an + abnormal edge. + (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE. + (create_outofssa_var_map): Create a var map and coalesce list. + (attempt_coalesce): Coalesce a pair. + (coalesce_partitions): Coalesce all pairs in a coalesce list. + (coalesce_ssa_name): Entry point. Determine what ssa_names to coalesce. + * tree-ssa-live.c: Remove header files which aren't needed. + (var_map_base_init): New. Initialize a basevar list. + (var_map_base_fini): New. Finish a basevar list. + (init_var_map): Initialize new fields. + (delete_var_map): Free new fields. + (var_union): Use renamed fields. + (compact_var_map): Remove. + (partition_to_view_init): Use renamed fields, change order of an if. + (partition_view_fini): Use renamed fields. + (partition_view_normal): Create basevar list if requested. + (partition_view_bitmap): Create a view based on a bitmap of partitions. + (change_partition_var): Use renamed fields. + (create_ssa_var_map): Remove. + (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact, + root_var_init): Remove. + (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list, + delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce, + compare_pairs, num_coalesce_pairs, first_partition_pair, + end_partition_pair_p, next_partition_pair, sort_coalesce_list, + pop_best_coalesce, add_conflicts_if_valid, set_if_valid, + build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list, + tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there. + (dump_var_map): Use renamed fields. + * tree-ssa-live.h (struct _var_map): Modify fields. + (partition_to_var, version_to_var, var_to_partition): Use renamed + fields. + (basevar_index): New. Index of the base variable of a partition. + (num_basevars): New. Number of unique base variables in partition map. + (register_ssa_partition): Use renamed fields. + (struct tree_partition_associator_d): Remove. + (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition, + tpa_find_tree, tpa_decompact, root_var_init, root_var_num, + root_var, root_var_first_partition, root_var_next_partition, + root_var_dump, root_var_delete, root_var_remove_partition, + root_var_find, root_var_compact, root_var_decompact): Remove. + (struct partition_pair, struct coalesce_list_d): Moved to + tree-ssa-coalesce.c + * tree-ssa-ter.c: Remove header files which aren't needed. + +2006-12-10 Steven Bosscher + + * cse.c: (struct cse_basic_block_data): Remove LAST field. + (struct branch_path): Remove BRANCH and TAKEN fields. Add new + BB field. + (cse_visited_basic_blocks): New static bitmap. + (cse_end_of_basic_block, cse_basic_block): Remove. + (cse_find_path, cse_dump_path, cse_prescan_path, + cse_extended_basic_block): New static functions. + (cse_insn): Don't CSE over setjmp calls. Use the CFG to find + basic block boundaries. Don't record jump equivalences here. + Update the CFG after doing in-place replacement of the SET_SRC. + (cse_main): Rewrite. Look for extended basic block headers + and call cse_extended_basic_block on them until all paths that + start at this header are exhausted. + (rest_of_handle_cse): Verify that the CFG is incrementally updated + and correct after cse_main. + Don't call delete_trivially_dead_insns, let cfgcleanup do that. + (rest_of_handle_cse2): Verify the CFG here, too, after cse_main. + (pass_cse): Add TODO_verify_flow. + (pass_cse2): Likewise. + +2006-12-10 Rask Ingemann Lambertsen + + * reload1.c (choose_reload_regs): Don't set byte offset when + resolving subregs of hard regs. + +2006-12-09 Zack Weinberg + + * c-opts.c (c_common_parse_file): Unconditionally give a warning, + suitable for the language, if set_yydebug is true. + * c-pragma.h: Define enum pragma_omp_clause here. Don't define + YYDEBUG or declare yydebug. + * c-parser.c (yydebug, enum pragma_omp_clause): Delete. + +2006-12-09 Jan Hubicka + + * cgraph.c: Update copyright. + * cgraph.h: Likewise + (cgraph_update_pending_function): Remove prototype. + * cgraphunit.c: Update copyright; update overall comment. + (cgraph_assemble_pending_functions): Make local. + +2006-12-09 Maxim Kuvyrkov + + * haifa-sched.c (schedule_block): Remove excessive sanity check. + +2006-12-08 Trevor Smigiel + + * config/spu/spu-protos.h (spu_split_immediate): Renamed from + spu_split_address. + (cpat_const_p, gen_cpat_const): Add. + * config/spu/spu.c (immediate_class): New enum. + (cpat_info, classify_immediate): New. + (print_operand): Use S, D, T instead of F, G, H. Use + classify_immediate. Handle cpat cases. + (spu_split_immediate): Renamed from spu_split_address. Split all + immediates that can be split. + (immediate_load_p): Use classify_immediate. + (spu_legitimate_constant_p): Accept everything except some cases of + CONST_VECTOR. + (spu_expand_move): Use spu_split_immedate. + (fsmbi_const_p): Use classify_immediate. + (cpat_const_p): New. + (gen_cpat_const: New. + * config/spu/constraints.md (j,k,l): New constraints for cpat + instructions. + * config/spu/spu.md (unnamed splitter): Change address splitter to + handle all immediates. + (_mov, _movdi, _movti): Handle i, j, k constraints for cpat + instructions. + (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns + when possible. + +2006-12-08 John David Anglin + + PR target/30039 + * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit + patterns. Correct length of high:DI instruction sequence. + +2006-12-08 Mike Stump + + * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build + libgcc with -mmacosx-version-min=10.4. + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to + G4 for 10.5+ unless doing kernel builds. + +2006-12-08 Uros Bizjak + + PR target/30120 + * reg-stack.c (convert_regs_entry): Mark current argument passing + registers as live. + + * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing + of float arguments in x87 registers. + +2006-12-08 John David Anglin + + * pa.h (LEGITIMATE_CONSTANT_P): Simplify. + +2006-12-08 Mark Shinwell + + * recog.c (mode_dependent_address_p): Identify pre-increment, + pre-decrement, post-increment and post-decrement addressing as always + being mode-dependent. + * config/m32c/m32c.c (m32c_mode_dependent_address): Delete. + * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete. + * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, + PRE_INC and POST_INC checks. + * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, + PRE_INC, POST_DEC and POST_INC cases. + * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): + Delete POST_INC and PRE_DEC cases. + * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to + no-op. + * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to + no-op. + * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete + PRE_INC and PRE_DEC cases. + * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete. + (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/vax/vax.c (vax_mode_dependent_address_p): Delete + auto-increment cases. + * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete + auto-increment cases. + * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + +2006-12-08 Andrew MacLeod + + * Makefile.in: Add new file tree-ssa-ter.c. + * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, + free_temp_expr_table, add_value_to_version_list, + add_value_to_partition_list, remove_value_from_partition_list, + add_dependence, check_replaceable, finish_expr, mark_replaceable, + kill_expr, kill_virtual_exprs, find_replaceable_in_bb, + find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c. + * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add + prototypes. + * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c. + (struct value_expr_d): Remove. + (struct temp_expr_table_d): Rename fields, add explicit vector of + replaceable expressions instead of sharing. Change value_expr_p's to + bitmap. Delete free_list. + (new_temp_expr_table): Rename fields, count number of ssa_names in + each partition. + (free_temp_expr_table): Rename field, free new fields. + (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list, + add_info_to_list, remove_value_from_list): Delete. + (version_to_be_replaced_p): New. Is an ssa-name replaceable? + (make_dependent_on_partition): New. Set bit in version list, allocating + a bitmap if need be. + (add_to_partition_kill_list): New. Set bit in the partition list, + allocating a bitmap if need be. + (remove_from_partition_kill_list): New. Remove a bit from the + partition list, free the bitmap if it is empty. + (add_dependence): Use renamed field, cleanup. Don't add a dependence + on partitions with only one member. + (is_replaceable_p): New. Split out replaceability check from + check_replaceable. + (process_replaceable): New. Code split from check_replaceable. + (check_replaceable): Removed. + (finished_with_expr): Renamed from finish_expr. + (kill_expr): Use renamed fields and less parameters. + (kill_virtual_exprs): Less parameters. + (mark_replaceable): Use renamed fields. + (find_replaceable_in_bb): Use renamed fields, cleanup. + (find_replaceable_exprs): Use renamed routines, cleanup. + (dump_replaceable_exprs): Don't go past end of ssa_names list. + (debug_ter): New. Debug routine to dump state. + +2006-12-08 Bernd Schmidt + + * config/bfin/bfin.c (effective_address_32bit_p): Return true for + anything involving the GOT. + (bfin_adjust_cost): Don't take the REGNO of a MEM. + (trapping_loads_p): Look inside the pattern of an insn to find the + SET. + * config/bfin/bfin.md (attr "type"): Add movcc. + (insn_reservation "alu"): Likewise. + (movsicc_insn1, movsicc_insn2): Change type to movcc. + +2006-12-07 Andrew Pinski + + * config/spu/spu-c.c (spu_build_overload_builtin): Delete. + (spu_resolve_overloaded_builtin): Check for non scalar instead + of vector type and check the function call argument type also for + non scalar. + Call build_function_call instead of spu_build_overload_builtin. + +2006-12-07 Trevor Smigiel + + * config/spu/spu.c (array_to_constant): Correct the order of arguments + to the calls of hwint_to_const_double. + +2006-12-07 Nick Clifton + + * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to + elf_record_gcc_switches. + +2006-12-07 Andrew Macleod + + * expr.c (string_constant): Account for non-zero lower bound arrays. + +2006-12-07 Richard Guenther + + * builtins.c (expand_builtin_pow): Adjust predicates for + pow to cbrt expansion to unsafe math and !HONOR_NANS for + negative base. + +2006-12-07 Jan Hubicka + + * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset + codegen. + +2006-12-07 Jan Hubicka + + * tree-vrp.c (compare_values): Short circuit INTEGER_CST; + use fold_constant_to_binary; tolerate wrong type constants. + (value_intersect_p): Do just two tests. + +2006-12-07 Bernd Schmidt + + * config/bfin/bfin.c (print_operand): New modifier 'N' for constants. + * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, + lshifthi3): Use it, and fix the order of alternatives. + +2006-12-07 Nick Clifton + + * common.opt (record-gcc-switches): New command line switch. + * target.h (print_switch_type): New enum. + (print_switch_fn_type): New typedef for a function pointer. + (struct gcc_target): Add record_gcc_switches and + record_gcc_switches_section fields. + * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a + default definition. + (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default + definition. + * toplev.c (print_single_switch): Simplify by providing a + pointer to function that will format and output the switch + appropriately. + (print_switch_values): Likewise. + (print_to_asm_out_file): New function. + (print_to_stderr): New function. + (init_asm_output): If flag_record_gcc_switches is set then if + the target supports recording the switches then emit them into + the assembler output file, otherwise tell the user that the + switch is not supported. + * varasm.c (eld_record_gcc_switches): New function. Example + handler for the record_gcc_switches target hook. + * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new + target hook. + (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise. + * doc/invoke.texi (-frecord-gcc-switches): Document. + +2006-12-07 Maxim Kuvyrkov + + PR target/29794 + * sched-rgn.c (add_block1): Use correct initializer. + +2006-12-07 Richard Guenther + + * tree-vect-transform.c (vectorizable_call): Fix leftover of + TREE_OPERAND to GIMPLE_STMT_OPERAND conversion. + +2006-12-06 Aldy Hernandez + + PR/30079 + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR + not GIMPLE_MODIFY_STMT. + +2006-12-06 Jan Hubicka + + * tree-vrp.c (operand_less_p): New. + (compare_values, value_inside_range): Rewrite in terms of + operand_less_p. + +2006-12-06 Uros Bizjak + + * config/i386/i386.md (DIRFLAG_REG): Remove constant. + (type): Remove cld. + (length_immediate): Do not depend on cld type attribute. + (length_address): Ditto. + (modrm): Ditto. + (memory): Ditto. + (cld): Remove insn pattern. + (strmov_singleop): Do not use DIRFLAG_REG. + (*strmovdi_rex_1): Ditto. + (*strmovsi_1): Ditto. + (*strmovsi_rex_1): Ditto. + (*strmovhi_1): Ditto. + (*strmovhi_rex_1): Ditto. + (*strmovqi_1): Ditto. + (*strmovqi_rex_1): Ditto. + (rep_mov): Ditto. + (*rep_movdi_rex64): Ditto. + (*rep_movsi): Ditto. + (*rep_movsi_rex64): Ditto. + (*rep_movqi): Ditto. + (*rep_movqi_rex64): Ditto. + (strset_singleop): Ditto. + (*strsetdi_rex_1): Ditto. + (*strsetsi_1): Ditto. + (*strsetsi_rex_1): Ditto. + (*strsethi_1): Ditto. + (*strsethi_rex_1): Ditto. + (*strsetqi_1): Ditto. + (*strsetqi_rex_1): Ditto. + (rep_stos): Ditto. + (*rep_stosdi_rex64): Ditto. + (*rep_stossi): Ditto. + (*rep_stossi_rex64): Ditto. + (*rep_stosqi): Ditto. + (*rep_stosqi_rex64): Ditto. + (cmpstrnsi): Do not generate cld insn. + (cmpstrnqi_nz_1): Do not use DIRFLAG_REG. + (*cmpstrnqi_nz_1): Ditto. + (*cmpstrnqi_nz_rex_1): Ditto. + (cmpstrnqi_1): Ditto. + (*cmpstrnqi_1): Ditto. + (*cmpstrnqi_rex_1): Ditto. + (strlenqi_1): Ditto. + (*strlenqi_1): Ditto. + (*strlenqi_rex_1): Ditto. + + * config/i386/geode.md (shift): Do not depend on cld type attribute. + * config/i386/pentium.md (pent_cld): Remove insn reservation. + * config/i386/athlon.md (athlon_decode): Do not depend on cld + type attribute. + * config/i386/ppro.md (ppro_cld): Remove insn reservation. + * config/i386/k6.md (k6_alux_only): Do not depend on cld type + attribute. + (k6_alux_only_load): Ditto. + (k6_alux_only_store): Ditto. + + * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean. + Do not emit cld instruction. + (ix86_expand_setmem): Ditto. + (ix86_expand_strlen): Do not emit cld instruction. + +2006-12-06 Bernd Schmidt + + * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak + old ones. + +2006-12-06 Diego Novillo + + * gdbinit.in: Set complaints to 0. + +2006-12-06 Jan Hubicka + + * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO, + ALONE_MEM_STAT_DECL): New macros. + * bitmap.h: Include statistics.h + (struct bitmap_head_def): Add variant with pointer to bitmap descriptor. + (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics. + (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare. + * bitmap.c: Include hashtab.h + (bitmap_descriptor): New. + (bitmap_hash): New static variable + (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead): + New static functions. + (bitmap_register): New. + (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from, + bitmap_obstack_release): Do accounting. + (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do + accounting. + (bitmap_gc_alloc_stat): Likewise. + (bitmap_obstack_free, bitmap_find_bit): Do statictics. + (print_statistics, dump_bitmap_statistics): New functions. + * toplev.c (finalize): Dump bitmap statistics. + +2006-12-06 Bernd Schmidt + + * reload1.c (delete_output_reload): Count occurrences in + CALL_INSN_FUNCTION_USAGE. + * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without + crashing at the end of the list. + +2006-12-05 Daniel Berlin + + * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156. + Optimize to avoid marking more SMT's as used when they aren't. + +2006-12-05 Eric Christopher + + * config/i386/i386.c (x86_output_aligned_bss): Move out + of COMMON_ASM_OP ifdef. + +2006-12-05 Eric Christopher + + * config/darwin.h (DARWIN_EXTRA_SPECS): New. + (STARTFILE_SPEC): Use. + (DARWIN_DYLIB1_SPEC): New. + (DARWIN_CRT1_SPEC): New. + * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use + DARWIN_EXTRA_SPECS. + * config/i386/darwin.h: Ditto. + * config/rs6000/darwin.h: Ditto. + +2006-12-05 Daniel Berlin + + * tree-vrp.c (pass_vrp): Remove PROP_smt_usage. + * tree-complex.c (pass_lower_complex): Ditto. + * tree-ssa-ccp.c (pass_ccp): Ditto. + (pass_store_ccp): Ditto. + * tree-ssa-dom.c (pass_dominator): Ditto. + (pass_phi_only_cprop): Ditto. + * tree-sra.c (pass_sra): Ditto. + * tree-ssa-forwprop.c (pass_forwprop): Ditto. + * tree-flow.h (updating_used_alone): Remove. + (updating_used_alone): Ditto. + * tree-ssa-alias.c (updating_used_alone): Remove variable. + (lhs_may_store_to): Remove function. + (recalculate_used_alone): Ditto. + (compute_may_aliases): Remove used_alone calculation. + * tree.h (struct tree_memory_tag): Remove is_used_alone and + old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE. + * tree-pass.h (PROP_smt_usage): Remove. + * passes.c (execute_todo): Remove used alone recalculation. + (execute_one_pass): Ditto. + * tree-ssa-operands.c (add_virtual_operand): Remove used_alone + stuff. + +2006-12-05 Brooks Moses + + * doc/include/texinfo.tex: Update to version 2006-11-08.17. + +2006-12-05 Zdenek Dvorak + + PR tree-optimization/14784 + * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix. + 2006-12-05 Aldy Hernandez Merge from gimple-tuples-branch. 2006-12-04 Aldy Hernandez - * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with - GIMPLE_MODIFY_STMT. - (s390_gimplify_va_arg): Same. - * config/sparc/sparc.c (sparc_gimplify_va_arg): Same. - * config/sh/sh.c (sh_va_start): Same. - (sh_gimplify_va_arg_expr): Same. - * config/xtensa/xtensa.c (xtensa_va_start): Same. - (xtensa_gimplify_va_arg_expr): Same. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Same. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same. - * config/mips/mips.c (mips_va_start): Same. - (mips_gimplify_va_arg_expr): Same. + * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with + GIMPLE_MODIFY_STMT. + (s390_gimplify_va_arg): Same. + * config/sparc/sparc.c (sparc_gimplify_va_arg): Same. + * config/sh/sh.c (sh_va_start): Same. + (sh_gimplify_va_arg_expr): Same. + * config/xtensa/xtensa.c (xtensa_va_start): Same. + (xtensa_gimplify_va_arg_expr): Same. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Same. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same. + * config/mips/mips.c (mips_va_start): Same. + (mips_gimplify_va_arg_expr): Same. 2006-12-04 Aldy Hernandez - * Merge from mainline at revision 119445. + * Merge from mainline at revision 119445. 2006-12-04 Aldy Hernandez - * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to - GIMPLE_MODIFY_STMT. - (spu_gimplify_va_arg_expr): Same. + * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to + GIMPLE_MODIFY_STMT. + (spu_gimplify_va_arg_expr): Same. 2006-12-04 Aldy Hernandez - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): - Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT. - (xstormy16_expand_builtin_va_arg): Same. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT. + (xstormy16_expand_builtin_va_arg): Same. 2006-12-04 Aldy Hernandez - * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR - to GIMPLE_MODIFY_STMT. + * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR + to GIMPLE_MODIFY_STMT. 2006-12-04 Aldy Hernandez - * config/alpha/alpha.c (va_list_skip_additions): Change all + * config/alpha/alpha.c (va_list_skip_additions): Change all occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT. - (alpha_va_start): Same. - (alpha_gimplify_va_arg_1): Same. - (alpha_gimplify_va_arg): Same. + (alpha_va_start): Same. + (alpha_gimplify_va_arg_1): Same. + (alpha_gimplify_va_arg): Same. 2006-12-01 Aldy Hernandez @@ -52,74 +1338,68 @@ 2006-12-01 Aldy Hernandez - * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to - GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to - GENERIC_TREE_TYPE. - * tree-complex.c: Same. - * tree-pretty-print.c: Same. - * tree.c: Same. - * tree.h: Same. - * builtins.c: Same. - * fold-const.c: Same. - * tree-ssa-dom.c: Same. - * tree-ssa-propagate.c: Same. - * tree-ssa-alias.c: Same. - * gimple-low.c: Same. - * dwarf2out.c: Same. - * c-pretty-print.c: Same. - * gimplify.c: Same. - * tree-inline.c: Same. - * tree-outof-ssa.c: Same. - * tree-ssa-structalias.c: Same. - * tree-ssa-reassoc.c: Same. - * stmt.c: Same. + * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to + GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to + GENERIC_TREE_TYPE. + * tree-complex.c: Same. + * tree-pretty-print.c: Same. + * tree.c: Same. + * tree.h: Same. + * builtins.c: Same. + * fold-const.c: Same. + * tree-ssa-dom.c: Same. + * tree-ssa-propagate.c: Same. + * tree-ssa-alias.c: Same. + * gimple-low.c: Same. + * dwarf2out.c: Same. + * c-pretty-print.c: Same. + * gimplify.c: Same. + * tree-inline.c: Same. + * tree-outof-ssa.c: Same. + * tree-ssa-structalias.c: Same. + * tree-ssa-reassoc.c: Same. + * stmt.c: Same. 2006-11-16 Aldy Hernandez - * tree.c (build2_stat): Fix comment. + * tree.c (build2_stat): Fix comment. 2006-11-13 Aldy Hernandez - * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and - TREE_OPERAND when appropriate. + * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and + TREE_OPERAND when appropriate. 2006-11-04 Aldy Hernandez - * java/java-tree.h (lang_tree_node): Handle gimple tuples. - (EXPR_WFL_EMIT_LINE_NOTE): Look inside base. - (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus. - * java/java-gimplify.c (java_gimplify_expr): Comment on why we do - not handle GIMPLE_MODIFY_STMT in the switch statement. - (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT. - (java_gimplify_new_array_init): Same. + * java/java-tree.h (lang_tree_node): Handle gimple tuples. + (EXPR_WFL_EMIT_LINE_NOTE): Look inside base. + (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus. + * java/java-gimplify.c (java_gimplify_expr): Comment on why we do + not handle GIMPLE_MODIFY_STMT in the switch statement. + (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT. + (java_gimplify_new_array_init): Same. 2006-11-03 Aldy Hernandez - * gimplify.c (gimplify_omp_for): Allow gimple statements. - * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND. - * fold-const.c (fold_binary): Allow gimple statements. - (fold): Same. - * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal): - Rename from gfc_conv_descriptor_data_set. - Call gfc_add_modify instead of gfc_add_modify_expr. - * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal): - Rename from gfc_conv_descriptor_data_set. - (gfc_conv_descriptor_data_set): New macro. - (gfc_conv_descriptor_data_set_tuples): New macros. - * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call - gfc_conv_descriptor_data_set_tuples. - * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr. - Generate GIMPLE_MODIFY_STMT when appropriate. - * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr. - (gfc_add_modify_expr): New macro. - (gfc_add_modify_stmt): New macro. - * fortran/f95-lang.c (lang_tree_node): Handle gimple statements. - - 2006-11-02 Aldy Hernandez - - * ada/ada-tree.h (lang_tree_node): Handle gimple tuples. - * ada/trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with - GIMPLE_MODIFY_STMT. + * gimplify.c (gimplify_omp_for): Allow gimple statements. + * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND. + * fold-const.c (fold_binary): Allow gimple statements. + (fold): Same. + * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal): + Rename from gfc_conv_descriptor_data_set. + Call gfc_add_modify instead of gfc_add_modify_expr. + * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal): + Rename from gfc_conv_descriptor_data_set. + (gfc_conv_descriptor_data_set): New macro. + (gfc_conv_descriptor_data_set_tuples): New macros. + * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call + gfc_conv_descriptor_data_set_tuples. + * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr. + Generate GIMPLE_MODIFY_STMT when appropriate. + * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr. + (gfc_add_modify_expr): New macro. + (gfc_add_modify_stmt): New macro. + * fortran/f95-lang.c (lang_tree_node): Handle gimple statements. 2006-11-01 Aldy Hernandez @@ -132,11 +1412,11 @@ 2006-10-09 Aldy Hernandez - * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not + * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not enable checking. - Also, add __extension__ to GCC versions. - * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. - * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning + Also, add __extension__ to GCC versions. + * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. + * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning patrol. 2006-10-05 Aldy Hernandez @@ -186,159 +1466,159 @@ 2006-09-28 Aldy Hernandez - * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND. - * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same. - (ifc_temp_var): Same. - * tree-vect-analyze.c (vect_determine_vectorization_factor): Check + * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND. + * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same. + (ifc_temp_var): Same. + * tree-vect-analyze.c (vect_determine_vectorization_factor): Check for gimple statements. - (vect_analyze_operations): Same. - (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND. - * gimplify.c (gimplify_return_expr): Handle gimple statements. - * lambda-code.c (can_put_in_inner_loop): Same. - (can_put_after_inner_loop): Same. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. - (vect_create_data_ref_ptr): Same. - (vect_init_vector): Same. - (vect_get_vec_def_for_operand): Same. - (vect_create_epilog_for_reduction): Same. - (vectorizable_reduction): Same. - (vectorizable_assignment): Same. - (vectorizable_operation): Same. - (vectorizable_load): Same. - (vectorizable_condition): Same. - * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs. - (rs6000_gimplify_va_arg): Same. + (vect_analyze_operations): Same. + (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND. + * gimplify.c (gimplify_return_expr): Handle gimple statements. + * lambda-code.c (can_put_in_inner_loop): Same. + (can_put_after_inner_loop): Same. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. + (vect_create_data_ref_ptr): Same. + (vect_init_vector): Same. + (vect_get_vec_def_for_operand): Same. + (vect_create_epilog_for_reduction): Same. + (vectorizable_reduction): Same. + (vectorizable_assignment): Same. + (vectorizable_operation): Same. + (vectorizable_load): Same. + (vectorizable_condition): Same. + * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs. + (rs6000_gimplify_va_arg): Same. 2006-09-25 Aldy Hernandez - * tree-vrp.c (simplify_div_or_mod_using_ranges): Use - GIMPLE_STMT_OPERAND. - (simplify_abs_using_ranges): Same. - * tree-complex.c (expand_complex_operations_1): Use - PROTECTED_TREE_OPERAND. - * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple - stmt. - (get_val_for): Use GIMPLE_STMT_OPERAND. - * tree-tailcall.c (adjust_accumulator_values): Same. - (adjust_return_value): Same. - * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default - case. Remove special case for tcc_gimple_stmt. - * tree.h (CAN_HAVE_LOCATION_P): New. - * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for - GIMPLE_STMT_P. - * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND. - * tree-ssa-dom.c (propagate_rhs_into_lhs): Same. - * tree-nrv.c (execute_return_slot_opt): Same. - * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P. - * tree-vn.c (set_value_handle): Same. - (get_value_handle): Same. - * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P. - * tree-vectorizer.c (find_loop_location): Same. - * c-typeck.c (c_process_expr_stmt): Same. - (c_finish_stmt_expr): Same. - * gimplify.c (should_carry_locus_p): Same. - (tree_to_gimple_tuple): Delete definition and use of unecessary - variable save_tree_block. - * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P. - (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND. - (realify_fake_stores): Same. - * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr): - Use TREE_OPERAND. - * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P. - (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS. - * tree-cfg.c (move_stmt_r): Use EXPR_P. Check for GIMPLE_STMT_P. - * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P. - (c_parser_statement_after_labels): Same. - (c_parser_paren_condition): Same. - (c_parser_for_statement): Same. - (c_parser_omp_for_loop): Same. - * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND. - (linearize_expr_tree): Same. - * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P. - * function.c (instantiate_expr): Same. + * tree-vrp.c (simplify_div_or_mod_using_ranges): Use + GIMPLE_STMT_OPERAND. + (simplify_abs_using_ranges): Same. + * tree-complex.c (expand_complex_operations_1): Use + PROTECTED_TREE_OPERAND. + * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple + stmt. + (get_val_for): Use GIMPLE_STMT_OPERAND. + * tree-tailcall.c (adjust_accumulator_values): Same. + (adjust_return_value): Same. + * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default + case. Remove special case for tcc_gimple_stmt. + * tree.h (CAN_HAVE_LOCATION_P): New. + * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for + GIMPLE_STMT_P. + * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND. + * tree-ssa-dom.c (propagate_rhs_into_lhs): Same. + * tree-nrv.c (execute_return_slot_opt): Same. + * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P. + * tree-vn.c (set_value_handle): Same. + (get_value_handle): Same. + * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P. + * tree-vectorizer.c (find_loop_location): Same. + * c-typeck.c (c_process_expr_stmt): Same. + (c_finish_stmt_expr): Same. + * gimplify.c (should_carry_locus_p): Same. + (tree_to_gimple_tuple): Delete definition and use of unecessary + variable save_tree_block. + * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P. + (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND. + (realify_fake_stores): Same. + * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr): + Use TREE_OPERAND. + * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P. + (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS. + * tree-cfg.c (move_stmt_r): Use EXPR_P. Check for GIMPLE_STMT_P. + * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P. + (c_parser_statement_after_labels): Same. + (c_parser_paren_condition): Same. + (c_parser_for_statement): Same. + (c_parser_omp_for_loop): Same. + * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND. + (linearize_expr_tree): Same. + * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P. + * function.c (instantiate_expr): Same. 2006-09-22 Aldy Hernandez - * tree.c (expr_location): Use GIMPLE_STMT_LOCUS. - (set_expr_location): Same. - (expr_locus): Same. - (set_expr_locus): Same. - (expr_filename): Same. - (expr_lineno): Same. - (tree_block): Use GIMPLE_STMT_BLOCK. - (protected_tree_operand): Use GIMPLE_STMT_OPERAND. - * tree.h (struct gimple_stmt): Remove prev and next. - (GIMPLE_STMT_OPERAND_CHECK): New. - (TREE_TO_GIMPLE_STMT): Delete. - (GIMPLE_STMT_TO_TREE): Delete. - (GIMPLE_STMT_OPERAND): Use union, not cast. - (GIMPLE_STMT_LOCUS): New. - (GIMPLE_STMT_BLOCK): New. - * gimplify.c (tree_to_gimple_tuple): Use union. Do not cast - to tree_base. - * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable. + * tree.c (expr_location): Use GIMPLE_STMT_LOCUS. + (set_expr_location): Same. + (expr_locus): Same. + (set_expr_locus): Same. + (expr_filename): Same. + (expr_lineno): Same. + (tree_block): Use GIMPLE_STMT_BLOCK. + (protected_tree_operand): Use GIMPLE_STMT_OPERAND. + * tree.h (struct gimple_stmt): Remove prev and next. + (GIMPLE_STMT_OPERAND_CHECK): New. + (TREE_TO_GIMPLE_STMT): Delete. + (GIMPLE_STMT_TO_TREE): Delete. + (GIMPLE_STMT_OPERAND): Use union, not cast. + (GIMPLE_STMT_LOCUS): New. + (GIMPLE_STMT_BLOCK): New. + * gimplify.c (tree_to_gimple_tuple): Use union. Do not cast + to tree_base. + * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable. 2006-09-21 Aldy Hernandez - * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base - to base. - * tree-tailcall.c (adjust_return_value): Same. - * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case. - (copy_node_stat): Change common.base to base. - (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt. - Remove GIMPLE_STATEMENT_LIST case. - * tree.h (struct gimple_stmt): Make operands of type tree. - (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, - CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, - TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, - TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, - TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL, - TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, - TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, - BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED, - TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE, - CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED, - TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, - TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI, - SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P): - Change common.base to base. - (GIMPLE_STATEMENT_LIST*): Remove. - (union tree_node): Add base. Remove gimple_statement_list. - Remove pointer from gstmt. - * tree-ssa-propagate.c (set_rhs): Change common.base to base. - * treestruct.def: Add TS_BASE. Remove TS_GIMPLE_STATEMENT_LIST. - * tree-vn.c (vn_compute): Change common.base to base. - * tree-eh.c (verify_eh_throw_stmt_node): Same. - * tree-flow-inline.h (var_ann): Same. - (function_ann): Same. - (stmt_ann): Same. - (mark_non_addressable): Same. - * gimplify.c (tree_to_gimple_tuple): Same. - * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST. - * tree-dfa.c (create_var_ann): Change common.base to base. - (create_function_ann): Same. - (create_stmt_ann): Same. - (create_tree_ann): Same. - (collect_dfa_stats_r): Same. - * tree-ssa-pre.c (NECESSARY): Change common.base to base. - * tree-ssa-dce.c (NECESSARY): Same. - * tree-ssa.c (delete_tree_ssa): Same. - * tree-optimize.c (execute_free_cfg_annotations): Same. - * tree-flow.h: Same. + * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base + to base. + * tree-tailcall.c (adjust_return_value): Same. + * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case. + (copy_node_stat): Change common.base to base. + (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt. + Remove GIMPLE_STATEMENT_LIST case. + * tree.h (struct gimple_stmt): Make operands of type tree. + (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, + CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, + TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, + TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, + TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL, + TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, + TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, + BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED, + TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE, + CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED, + TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, + TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI, + SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P): + Change common.base to base. + (GIMPLE_STATEMENT_LIST*): Remove. + (union tree_node): Add base. Remove gimple_statement_list. + Remove pointer from gstmt. + * tree-ssa-propagate.c (set_rhs): Change common.base to base. + * treestruct.def: Add TS_BASE. Remove TS_GIMPLE_STATEMENT_LIST. + * tree-vn.c (vn_compute): Change common.base to base. + * tree-eh.c (verify_eh_throw_stmt_node): Same. + * tree-flow-inline.h (var_ann): Same. + (function_ann): Same. + (stmt_ann): Same. + (mark_non_addressable): Same. + * gimplify.c (tree_to_gimple_tuple): Same. + * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST. + * tree-dfa.c (create_var_ann): Change common.base to base. + (create_function_ann): Same. + (create_stmt_ann): Same. + (create_tree_ann): Same. + (collect_dfa_stats_r): Same. + * tree-ssa-pre.c (NECESSARY): Change common.base to base. + * tree-ssa-dce.c (NECESSARY): Same. + * tree-ssa.c (delete_tree_ssa): Same. + * tree-optimize.c (execute_free_cfg_annotations): Same. + * tree-flow.h: Same. 2006-09-19 Aldy Hernandez - * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST. - (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and + * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST. + (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and GIMPLE_MODIFY_STMT. - * tree.h (struct gimple_stmt): Add prev and next fields. + * tree.h (struct gimple_stmt): Add prev and next fields. (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK. (GIMPLE_STATEMENT_LIST_HEAD): New. (GIMPLE_STATEMENT_LIST_TAIL): New. (struct gimple_statement_list): New. (union tree_node): Add gimple_stmt_list and gstmt. - * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT. - * tree.def: Add GIMPLE_STATEMENT_LIST. + * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT. + * tree.def: Add GIMPLE_STATEMENT_LIST. 2006-09-06 Aldy Hernandez @@ -1143,7 +2423,7 @@ (spu_force_reg): Remove. 2006-12-01 Joseph Myers - David Edelsohn + David Edelsohn PR target/24036 * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING, @@ -1235,8 +2515,8 @@ * tree-vectorizer.h (vectorizable_function): Export. * tree-vect-transform.c (vectorizable_function): Likewise. - * tree-vect-patterns.c (vect_recog_pow_pattern): Set - type_in to scalar type in recognition of squaring. + * tree-vect-patterns.c (vect_recog_pow_pattern): Set + type_in to scalar type in recognition of squaring. Make sure the target can vectorize sqrt in recognition of sqrt, set type_in to vector type in this case. @@ -11592,6 +12872,7 @@ 2006-04-20 Jakub Jelinek + PR C/27558 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).