1 2006-12-13 Diego Novillo <dnovillo@redhat.com>
3 * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to
4 accomodate 511 operands.
6 2006-12-13 Richard Guenther <rguenther@suse.de>
8 * builtins.c (expand_builtin_cexpi): Fix typo.
10 2006-12-13 Jan Hubicka <jh@suse.cz>
12 * Makefile.in: Add dependencies.
13 * tree-pretty-print.c: Include value-prof.h
14 (dump_generic_bb_buff): Dump histograms
15 * value-prof.c: Include pointer-set.h
16 (gimple_alloc_histogram_value, histogram_hash, histogram_eq,
17 set_histogram_value, gimple_histogram_value,
18 gimple_add_histogram_value, gimple_remove_histogram_value,
19 gimple_histogram_value_of_type, dump_histogram_value,
20 dump_histograms_for_stmt, gimple_remove_stmt_histograms,
21 gimple_duplicate_stmt_histograms, visit_hist,
22 verify_histograms): New functions.
23 (tree_value_profile_transformations): Update for new histogram API.
24 (tree_divmod_fixed_value): Update for new histogram API.
25 (tree_divmod_fixed_value_transform): Update for new histogram API.
26 (tree_mod_pow2): Update for new histogram API.
27 (tree_mod_pow2_value_transform): Update for new histogram API.
28 (tree_mod_subtract): Update for new histogram API.
29 (tree_mod_subtract_transform): Update for new histogram API.
30 (tree_stringops_transform): Update for new histogram API.
31 (tree_divmod_values_to_profile): Update for new histogram API.
32 (tree_stringops_values_to_profile): Update for new histogram API.
33 (tree_find_values_to_profile): Update for new histogram API.
34 * value-prof.h (gimple_histogram_value): Declare.
35 (gimple_histogram_value_of_type): Declare.
36 (gimple_add_histogram_value): Declare.
37 (gimple_remove_histogram_value): Declare.
38 (dump_histograms_for_stmt): Declare.
39 (gimple_remove_histogram_value): Declare.
40 (gimple_remove_stmt_histograms): Declare.
41 (gimple_duplicate_stmt_histograms): Declare.
42 (verify_histograms): Declare.
44 (struct funrction): Add value_histograms hash.
45 (VALUE_HISTOGRAMS): New macro.
46 * profile.c (compute_value_histograms): update for new API.
47 * tree-inline.c: Include value-prof.h
48 (copy_bb): Update histograms.
49 * tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms;
50 reorder to get smaller memory layout.
51 * tree-cfg.c: Include value-prof.h
52 (bsi_remove): Update histograms.
53 (bsi_replace): Update histograms.
54 (verify_stmts): Call histogram verifier.
55 (tree_duplicate_bb): Update histograms.
56 (move_block_to_fn): Update histograms.
58 2006-12-13 Richard Guenther <rguenther@suse.de>
60 * ipa-inline.c (cgraph_flatten_node): Replace leafify with
62 (cgraph_decide_inlining): Likewise.
64 2006-12-13 Richard Guenther <rguenther@suse.de>
66 PR tree-optimization/17687
67 * builtins.def (BUILT_IN_CEXPI, BUILT_IN_CEXPIF, BUILT_IN_CEXPIL):
68 New builtins for imaginary argument cexp.
69 * builtin-types.def (BT_FN_COMPLEX_FLOAT_FLOAT,
70 BT_FN_COMPLEX_DOUBLE_DOUBLE, BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE):
71 New required builtin types.
72 * builtins.c (expand_builtin_cexpi): Declare.
73 (mathfn_built_in): Handle BUILT_IN_CEXPI.
74 (expand_builtin_cexpi): New static helper.
75 (expand_builtin): Call it.
76 (do_mpfr_sincos): Adjust for CEXPI evaluation.
77 (fold_builtin_sincos): New function to fold sincos to cepxi.
79 2006-12-13 Richard Guenther <rguenther@suse.de>
81 * ipa-reference.c (scan_for_static_refs): Also scan
82 tcc_comparison class trees.
84 2006-12-12 David Daney <ddaney@avtrex.com>
86 * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before
89 2006-12-12 Andrew Pinski <pinskia@gmail.com>
91 * tree-vect-transform.c (vect_permute_load_chain):
92 Set DECL_GIMPLE_REG_P to true for the vect_perm_*
95 2006-12-13 Sa Liu <saliu@de.ibm.com>
96 Ben Elliston <bje@au.ibm.com>
98 * config/spu/spu.h (C_COMMON_OVERRIDE_OPTIONS): Define.
99 (REGISTER_TARGET_PRAGMAS): Don't zero warn_main flag.
100 * config/spu/spu-protos.h (spu_c_common_override_options):
102 * config/spu/spu-c.c (spu_c_common_override_options): New.
103 * config/spu/spu.c (spu_override_options): Whitespace fix.
105 2006-12-12 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
107 * config/spu/spu.c (cpat_info): Fix an incorrectly identified case.
109 2006-12-12 Geoffrey Keating <geoffk@apple.com>
111 * mips-tdump.c: Replace CROSS_COMPILE with
112 CROSS_DIRECTORY_STRUCTURE.
113 * mips-tfile.c: Likewise.
115 * configure.ac: Likewise.
116 * cppdefault.c: Likewise.
117 * Makefile.in: Likewise.
118 * config/alpha/osf.h: Likewise.
119 * config/i386/cygwin.h: Likewise.
120 * config/i386/beos-elf.h: Likewise.
121 * config/i386/nto.h: Likewise.
122 * config/fr30/fr30.h: Likewise.
123 * config/svr4.h: Likewise.
124 * config/rs6000/aix.h: Likewise.
125 * config/rs6000/sysv4.h: Likewise.
126 * config/pa/pa64-hpux.h: Likewise.
127 * config/pa/pa-hpux10.h: Likewise.
128 * config/pa/pa-hpux11.h: Likewise.
129 * collect2.c: Likewise.
130 * configure: Regenerate.
132 * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP
133 actually takes an unsigned HOST_WIDE_INT for its second parameter.
135 2006-12-13 Ulrich Weigand <uweigand@de.ibm.com>
137 * config/spu/spu.c (TARGET_ENCODE_SECTION_INFO): Define.
138 (spu_encode_section_info): New.
139 * config/spu/spu.h (ALIGNED_SYMBOL_REF_P): Adjust.
140 (SYMBOL_FLAG_ALIGN1): New.
142 2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
145 * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
146 bitmap for EXECUTE_IF_SET_IN_BITMAP.
148 2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
151 * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ...
152 (DECL_GIMPLE_REG_P): This.
153 * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into
155 * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P.
156 * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P
157 and check for VECTOR_TYPE.
158 * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with
160 * tree-flow-inline.h (var_can_have_subvars): Use the renamed
162 * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P
163 and check for VECTOR_TYPE.
164 (gimplify_bind_expr): Likewise.
165 (gimplify_function_tree): Likewise.
166 * expmed.c: Include target.h.
167 (extract_bit_field): For vector mode, try find a better mode first.
168 If that fails use gen_lowpart (for vectors only).
169 * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P
170 and check for VECTOR_TYPE.
171 * tree-ssa-pre.c (create_expressions_by_pieces): Likewise.
172 (insert_into_preds_of_block): Likewise.
173 (insert_fake_stores): Create gimple register store_tmps for
175 * tree-sra.c (sra_elt): New field, is_vector_lhs.
176 (sra_walk_expr <case BIT_FIELD_REF>): For vector types that
177 are the left hand side, set the element's is_vector_lhs to true.
178 (instantiate_element): For vector types which were on the left
179 hand size, set DECL_GIMPLE_REG_P to false.
180 * tree-nested.c (create_tmp_var_for): Use the renamed DECL_GIMPLE_REG_P. * tree-inline.c (declare_return_variable): Use the renamed
182 and check for VECTOR_TYPE.
183 (copy_decl_to_var): Use the renamed DECL_GIMPLE_REG_P.
184 (copy_result_decl_to_var): Likewise.
185 * tree-vect-transform.c (vect_get_new_vect_var): For vector types,
186 create a gimple register variable.
187 (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the
188 vect_inter_* temp variables.
189 * Makefile.in (expmed.o): Update dependencies.
191 2006-12-12 Peter Bergner <bergner@vnet.ibm.com>
193 * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and
194 the offset == 0 "then" clauses.
195 * config/rs6000/predicates.md (gpc_reg_operand): Check for
198 2006-12-12 Marcin Dalecki <martin@dalecki.de>
200 * doc/passes.texi: remove docs about "redundant PHI removal".
201 * tree-pass.h: remove orphaned declaration of pass_redundant_phi,
202 remove redundant pass_partition_blocks declaration.
204 2006-12-12 Andrew Macleod <amacleod@redhat.com>
206 PR tree-optimization/30159
207 * tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name
208 functions in case a default_def coalesce is required.
210 2006-12-12 Jakub Jelinek <jakub@redhat.com>
213 * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
215 * config/ia64/linux.h (CPP_SPEC): Define.
216 * config/s390/linux.h (CPP_SPEC): Define.
218 2006-12-12 Jim Wilson <wilson@specifix.com>
219 Jakub Jelinek <jakub@redhat.com>
221 PR rtl-optimization/27761
222 * combine.c (try_combine): Don't create a useless garbage SET
223 if PATTERN (i2) is a PARALLEL. If added_sets_1, save
224 PATTERN (i1) resp. SET from i1src to i1dest in i1pat
225 and use it to prevent accidental modification of i1src.
227 2006-12-12 Ira Rosen <irar@il.ibm.com>
229 * tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check
230 for stores with gaps.
231 * tree-vect-transform.c (vect_permute_store_chain): Create
232 interleave_high or interleave_low according to the endianess.
234 2006-12-12 Richard Guenther <rguenther@suse.de>
237 * fold-const.c (fold_read_from_constant_string): Only fold read
238 from constant string if the result type is integer.
240 2006-12-12 Olivier Hainque <hainque@adacore.com>
242 * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
244 2006-12-12 Olivier Hainque <hainque@adacore.com>
246 * config/vxlib.c: Extract tls related routines into ...
247 * config/vxlib-tls.c: New file.
248 * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA.
250 2006-12-12 Sa Liu <saliu@de.ibm.com>
251 Ben Elliston <bje@au.ibm.com>
253 * config/spu/spu.opt (mfixed-range): New option.
254 * config/spu/spu.h (spu_fixed_range_string): Declare.
255 * config/spu/spu.c (spu_override_options): Handle -mfixed-range.
256 (fix_range): New function.
257 * doc/invoke.texi (SPU Options): Document -mfixed-range.
258 * testsuite/gcc.target/spu/fixed-range.c: New.
259 * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto.
261 2006-12-11 H.J. Lu <hongjiu.lu@intel.com>
265 * cgraphunit.c (cgraph_optimize): Remove call to
266 process_pending_assemble_externals.
268 * config/elfos.h (ASM_OUTPUT_EXTERNAL): New.
270 * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed.
272 * config/ia64/ia64.c (ia64_asm_output_external): Rewritten.
273 (ia64_hpux_add_extern_decl): Removed.
274 (ia64_hpux_file_end): Likewise.
275 (extern_func_list): Likewise.
276 (extern_func_head): Likewise.
278 * output.h (assemble_external): Update comments.
279 (default_elf_asm_output_external): New.
280 (maybe_assemble_visibility): New.
282 * toplev.c (compile_file): Update comment.
284 * varasm.c (assemble_external): Always put it on
285 pending_assemble_externals.
286 (maybe_assemble_visibility): Make it extern and return int.
287 (default_elf_asm_output_external): New.
289 2006-12-11 Daniel Berlin <dberlin@dberlin.org>
291 * tree-ssa-structalias.c (handle_ptr_arith): Return false when we
292 can't handle the pointer arithmetic.
294 2006-12-11 Diego Novillo <dnovillo@redhat.com>
296 * doc/tree-ssa.texi: Update documentation for virtual operands
297 and the use of push_stmt_changes/pop_stmt_changes.
298 * doc/invoke.texi: Remove documentation for params
299 global-var-threshold.
300 Update documentation on max-aliased-vops.
302 * tree-into-ssa.c: Cleanup comments, variables and
303 spacing in various functions.
304 (regs_to_rename): Declare.
305 (mem_syms_to_rename): Declare.
306 (dump_update_ssa): Declare.
307 (debug_update_ssa): Declare.
308 (dump_names_replaced_by): Declare.
309 (debug_names_replaced_by): Declare.
310 (dump_def_blocks): Declare.
311 (debug_def_blocks): Declare.
312 (dump_defs_stack): Declare.
313 (debug_defs_stack): Declare.
314 (dump_currdefs): Declare.
315 (debug_currdefs): Declare.
316 (mark_def_sites): Do not handle virtual operands.
317 (compute_idf): Rename from find_idf. Update users.
318 (register_new_def): Make local. Convert second argument
320 Use BLOCK_DEFS_STACK directly.
321 If pushing a non-register, also push the underlying
323 (rewrite_stmt): Do not handle virtual operands.
324 (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack,
325 dump_currdefs and dump_tree_ssa_stats.
326 (dump_tree_ssa_stats): Also dump REPL_TBL.
327 (replace_use): Remove. Update all users to call SET_USE
329 (rewrite_blocks): Move code to free memory to
331 (mark_def_site_blocks): Move initialization code to
333 (init_ssa_renamer): New.
334 (fini_ssa_renamer): New.
335 (rewrite_into_ssa): Call them.
336 (prepare_block_for_update): Process SSA_OP_ALL_USES first
337 and SSA_OP_ALL_DEFS later. Do not process virtual
339 (dump_update_ssa): Call dump_decl_set.
340 (init_update_ssa): Initialize regs_to_rename and
342 Call init_ssa_renamer.
343 (delete_update_ssa): Call fini_ssa_renamer.
344 Free blocks_with_phis_to_rewrite.
345 (mark_sym_for_renaming): If the variable has
346 sub-variables, also mark them.
347 If the variable belongs to a partition, also mark it.
348 (mark_set_for_renaming): Call mark_sym_for_renaming on
349 every symbol in the set.
350 (switch_virtuals_to_full_rewrite): Call
351 mark_set_for_renaming.
352 (update_ssa): Separate syms_to_rename into regs_to_rename
353 and mem_syms_to_rename.
355 * tree-dump.c (dump_options): Add TDF_MEMSYMS.
356 * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS.
357 (debug_generic_stmt): Likewise.
358 (debug_tree_chain): Likewise.
360 (dump_generic_node): Check for TDF_MEMSYMS.
361 Handle MEMORY_PARTITION_TAG.
362 If the statement references memory and TDF_MEMSYMS is
363 given, call dump_symbols.
364 Indicate default names with (D).
365 (dump_vops): Update for new virtual operator format.
367 * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to
368 tree_contains_struct.
369 (tree_code_size): Handle MEMORY_PARTITION_TAG.
370 (tree_node_structure): Likewise.
371 (needs_to_live_in_memory): Handle SSA names.
372 * tree.h (MTAG_P): Likewise.
373 (struct tree_memory_partition_tag): Declare.
374 (MPT_SYMBOLS): Define.
375 (union tree_node): Add field 'mpt'.
376 * treestruct.def (TS_MEMORY_PARTITION_TAG): Define.
377 * tree.def (MEMORY_PARTITION_TAG): Define.
379 * tree-pass.h (TDF_MEMSYMS): Define.
381 * params.h (GLOBAL_VAR_THRESHOLD): Remove.
383 * tree-ssa-alias.c: Include pointer-set.h
384 (struct alias_map_d): Remove fields total_alias_vops,
385 grouped_p and may_aliases. Update all users.
386 (struct mp_info_def): Declare.
387 (mp_info_t): New type.
388 (get_smt_for): Rename from get_tmt_for. Update all
390 (add_may_alias): Add argument ALREADY_ADDED. If given,
391 use it to avoid adding duplicate entries to alias sets.
392 (replace_may_alias): Remove. Update all users.
393 (total_alias_vops_cmp): Remove. Update all users.
394 (group_aliases_into): Remove. Update all users.
395 (tree_pointer_compare): Remove. Update all users.
396 (compact_name_tags): Remove. Update all users.
397 (group_aliases): Remove. Update all users.
398 (mark_non_addressable): Move from tree-flow-inline.h.
399 Remove the symbol from the partition holding it, if
402 (debug_mp_info): New.
404 (create_partition_for): New.
405 (rewrite_alias_set_for): New.
406 (compute_memory_partitions): New.
407 (compute_may_aliases): Call it.
408 (init_alias_info): If computing aliases for the first
409 time, mark every memory symbol for renaming.
410 (have_common_aliases_p): New.
411 (compute_flow_insensitive_aliasing): Call it.
412 (setup_pointers_and_addressables): Do not cache
414 For register promoted symbols, mark their former
415 partition for renaming.
416 (maybe_create_global_var): Only create .GLOBAL_VAR if
417 there are no call-clobbered variables and a mix of pure
418 and non-pure functions were found.
419 (may_alias_p): Tidy comments.
420 (create_tag_raw): Remove unused variable new_type.
421 (dump_alias_info): call dump_memory_partitions.
422 (dump_points_to_info_for): Call dump_decl_set.
423 (may_be_aliased): Tidy comments and formatting.
425 * timevar.def (TV_MEMORY_PARTITIONING): Define.
426 * tree-vectorizer.c (vect_memsyms_to_rename): Rename from
427 vect_vnames_to_rename. Set DECL_UIDs instead of SSA name
429 (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs.
430 * tree-vect-transform.c (vect_transform_loop): Call
431 mark_set_for_renaming with vect_memsyms_to_rename.
432 * tree-flow-inline.h (zero_imm_uses_p): New.
433 (memory_partition): New.
434 (set_memory_partition): New.
435 (factoring_name_p): New.
436 (symbol_mem_tag): New. Update every function that used
437 to access the annotation directly.
438 (set_symbol_mem_tag): Likewise.
440 * tree-ssa-copy.c (may_propagate_copy): Allow copies
441 between a partition and a symbol as long as the symbol
442 belongs to the partition.
443 (merge_alias_info): Ignore merge requests when memory
444 partitions are involved.
446 * tree-ssa.c (verify_ssa_name): Check that default
447 definitions have empty defining statements.
448 (verify_use): Remove argument IS_VIRTUAL.
449 Don't call verify_ssa_name.
450 (verify_phi_args): Call verify_ssa_name.
451 (verify_flow_insensitive_alias_info): Handle MPTs.
452 (verify_flow_sensitive_alias_info): Likewise.
453 (verify_name_tags): Likewise.
454 (verify_call_clobbering): Likewise.
455 (verify_ssa): Check for VOPs only after aliasing
456 information is available.
457 Check virtuals and real operands separately.
458 Call verify_ssa_name on every operand.
459 (stmt_references_memory_p): Move to tree-ssa-operands.c.
460 (walk_use_def_chains_1): Guard against NULL PHI
463 * tree-ssa-operands.c (stmt_references_memory_p): Move from
466 (dump_memory_partitions): New.
467 (debug_memory_partitions): New.
469 * tree-flow.h (struct var_ann_d): Add field mpt.
470 (struct stmt_ann_d): Add bitfield references_memory.
471 * Makefile.in (tree-ssa-structalias.o): Include
473 (tree-ssa-alias.o): Likewise.
474 * tree-ssa-structalias.c: (update_alias_info): Use
475 STORED_SYMS to determine which variables are being
476 written to by the store operation.
477 * tree-ssa-structalias.h (struct alias_info)
478 <total_alias_vops>: Remove. Update all users.
479 <written_vars>: Change to a pointer set. Update all
481 <dereferenced_ptrs_store>: Likewise.
482 <dereferenced_ptrs_load>: Likewise.
483 (NUM_REFERENCES): Remove. Update all users.
484 (NUM_REFERENCES_CLEAR): Remove. Update all users.
485 (NUM_REFERENCES_INC): Remove. Update all users.
486 (NUM_REFERENCES_SET): Remove. Update all users.
488 * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove.
490 (PARAM_MAX_ALIASED_VOPS): Set to 10.
491 * tree-ssanames.c (make_ssa_name): Initialize
492 SSA_NAME_IS_DEFAULT_DEF to 0.
494 2006-12-11 Aldy Hernandez <aldyh@redhat.com>
496 * tree-ssa-dse.c (aggregate_vardecl_d): New.
497 (dse_global_data): Add aggregate_vardecl field.
498 (dse_possible_dead_store_p): New.
499 Add prev_defvar variable.
500 Allow immediate uses and previous immediate uses to differ
501 if they are setting different parts of the whole.
502 (get_aggregate_vardecl): New.
503 (dse_record_partial_aggregate_store): New.
504 (dse_whole_aggregate_clobbered_p): New.
505 (dse_partial_kill_p): New.
506 (dse_optimize_stmt): Abstract code checking a possible dead store
507 into new function dse_possible_dead_store_p().
508 Call dse_maybe_record_aggregate_store().
509 When checking whether a STMT and its USE_STMT refer to the
510 same memory address, check also for partial kills that clobber
512 Move some variable definitions to the block where they are used.
513 (aggregate_vardecl_hash): New.
514 (aggregate_vardecl_eq): New.
515 (aggregate_vardecl_free): New.
516 (aggregate_whole_store_p): New.
517 (tree_ssa_dse): Initialize and free aggregate_vardecl.
518 Mark which aggregate stores we care about.
520 2006-12-11 Andrew Macleod <amacleod@redhat.com>
522 * tree-ssa-operands.h (struct vuse_element_d): Declare.
523 (vuse_element_t): Declare.
524 (struct vuse_vec_d): Declare.
525 (vuse_vec_p): Declare.
526 (VUSE_VECT_NUM_ELEM): Define.
527 (VUSE_VECT_ELEMENT_NC): Define.
528 (VUSE_ELEMENT_PTR_NC): Define.
529 (VUSE_ELEMENT_VAR_NC): Define.
530 (VUSE_VECT_ELEMENT): Define.
531 (VUSE_ELEMENT_PTR): Define.
532 (VUSE_ELEMENT_VAR): Define.
533 (struct maydef_optype_d) <use_var>: Remove.
536 (struct vuse_optype_d) <kill_var>: Remove.
539 (struct mustdef_optype_d) <kill_var>: Remove.
542 (VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR.
543 (VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR.
546 (MAYDEF_OP_PTR): Add argument. Use VUSE_OP_PTR.
547 (MAYDEF_OP): Add argument. Use VUSE_OP.
548 (MAYDEF_NUM): Define.
549 (MAYDEF_VECT): Define.
550 (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR.
551 (MUSTDEF_KILL): Use VUSE_OP.
552 (MUSTDEF_NUM): Define.
553 (MUSTDEF_VECT): Define.
554 (realloc_maydef): Declare.
555 (realloc_vuse): Declare.
556 (struct ssa_operand_iterator_d) <vuse_index>: Add.
558 (LOADED_SYMS): Define.
559 (STORED_SYMS): Define.
560 (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef.
561 * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE
563 * tree-pretty-print.c: Likewise.
564 * tree-ssa-dse.c: Likewise.
565 * tree-flow-inline.h: Likewise.
566 (op_iter_next_mustdef): New.
567 * tree-ssa-operands.c: Likewise.
568 (ALLOC_OPTYPE): Remove.
574 (alloc_mustdef): New.
575 (realloc_maydef): New.
578 2006-12-11 Aldy Hernandez <aldyh@redhat.com>
580 * tree-ssa-operands.c: Remove build_v_must_defs.
581 (init_ssa_operands): Delete build_v_must_defs.
582 (finalize_ssa_v_must_def_ops): Remove.
583 (finalize_ssa_v_must_defs): Remove.
584 (finalize_ssa_stmt_operands): Do not call
585 finalize_ssa_v_must_defs.
586 (start_ssa_stmt_operands): Do not check build_v_must_defs.
587 (append_v_must_def): Delete.
588 (copy_virtual_operands): Do not copy V_MUST_DEFs.
589 (get_modify_expr_operands): Remove reference to V_MUST_DEF from
590 comment. Remove opf_kill_def.
591 (build_ssa_operands): Remove references to v_must_defs.
592 (copy_virtual_operands): Same.
593 (copy_virtual_operands): Same.
594 (fini_ssa_operands): Same.
595 (free_ssa_operands): Same.
596 (add_mustdef_op): Remove.
597 Remove mustdef_optype_p.
598 (alloc_mustdef): Remove.
599 Remove references to V_MUST_DEFs in comment at top of file.
600 (get_expr_operands): Remove opf_kill_def.
601 (opf_kill_def): Remove.
602 (add_virtual_operand): Remove opf_kill_def.
603 (get_indirect_ref_operands): Same.
604 (get_tmr_operands): Same.
606 * tree-vectorizer.c (rename_variables_in_bb): Remove
609 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove
611 (check_loop_closed_ssa_stmt): Same.
613 * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment.
615 (verify_ssa): Remove V_MUST_DEFs traces.
616 (verify_ssa): Remove SSA_OP_ALL_KILLS.
618 * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to
620 (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS.
621 (rewrite_stmt): Remove SSA_OP_ALL_KILLS.
623 * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF
625 (MUSTDEF_OPS): Remove.
626 (SSA_OP_VMUSTDEF): Remove.
627 (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove.
628 (struct mustdef_optype_d): Remove.
629 Remove mustdef_optype_p.
630 (struct stmt_operands_d): Remove mustdef_ops.
631 (ssa_operand_iterator_d): Remove mustdefs and mustkills.
632 (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF.
633 (MUSTDEF_RESULT_PTR): Remove.
634 (MUSTDEF_RESULT): Remove.
635 (MUSTDEF_KILL_PTR): Remove.
636 (MUSTDEF_KILL): Remove.
637 (MUSTDEF_NUM): Remove.
638 (MUSTDEF_VECT): Remove.
639 (SSA_OP_VIRTUAL_KILLS): Remove.
640 (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS.
641 (SSA_OP_VMUSTKILL): Remove.
642 (SSA_OP_ALL_KILLS): Remove.
643 (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS.
645 * tree-flow-inline.h (op_iter_init_def): Remove
646 SSA_OP_VIRTUAL_KILLS.
647 (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS.
649 * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
650 SSA_OP_VIRTUAL_KILLS.
652 * tree-ssa-loop-im.c (determine_max_movement): Remove
653 SSA_OP_VIRTUAL_KILLS.
654 (gather_mem_refs_stmt): Same.
655 (gather_mem_refs_stmt): Same.
657 * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete.
658 (perform_tree_ssa_dce): Remove call to
659 mark_really_necessary_kill_operand_phis.
661 * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs
663 (op_iter_next_use): Do not check mustkills.
664 (op_iter_next_def): Do not check mustdefs.
665 (op_iter_next_tree): Do not check mustkills or mustdefs.
666 (clear_and_done_ssa_iter): Do not set mustdefs or mustkills.
667 (op_iter_next_maymustdef): Do not check mustkills.
668 (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL.
669 (op_iter_init_mustdef): Remove.
671 * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to
674 * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF.
676 * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments.
677 (visit_assignment): Same.
679 * tree-ssa-copy.c (copy_prop_visit_assignment): Same.
681 * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment.
683 * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF.
685 * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF.
686 Remove kill_p variable.
688 * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs.
689 (dump_dfa_stats): Remove code related to V_MUST_DEFs.
690 (collect_dfa_stats_r): Do not set num_v_must_defs.
691 (mark_new_vars_to_rename): Remove v_must_defs_{before,after}
694 * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to
697 * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
698 SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL.
700 * tree-ssa-propagate.c (stmt_makes_single_store): Remove
703 2006-12-11 Zdenek Dvorak <dvorakz@suse.cz>
705 PR rtl-optimization/30113
706 * loop-iv.c (implies_p): Require the mode of the operands to be
709 2006-12-11 Diego Novillo <dnovillo@redhat.com>
711 * tree-ssa-operands.h (create_ssa_artificial_load_stmt):
712 Rename from create_ssa_artficial_load_stmt. Update all users.
713 * tree-into-ssa.c (register_new_def): Make static.
714 * tree.c (is_global_var): Handle SSA_NAMEs.
715 * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define. Update all users
716 that used to call gimple_default_def.
717 * tree-ssa-operands.c (push_stmt_changes): New.
718 (pop_stmt_changes): New. Update every pass that modifies
719 statements to bracket modifications with
720 push_stmt_changes/pop_stmt_changes.
721 (discard_stmt_changes): New.
722 * tree-ssa-dom.c (stmts_to_rescan): Change to stack of
723 'tree *' instead of 'tree'. Update all users.
724 * tree-flow-inline.h (zero_imm_uses_p): New.
725 (symbol_mem_tag): New. Update every function that used
726 to access the annotation directly.
727 (set_symbol_mem_tag): Likewise.
728 * tree-dfa.c (dump_variable): Always show the escape mask.
729 (mark_symbols_for_renaming): Rename from
730 mark_new_vars_to_rename. Update all users.
731 Only mark to rename naked symbols in real and virtual
734 2006-12-11 Andreas Schwab <schwab@suse.de>
736 * varasm.c (elf_record_gcc_switches): Cast second argument of
737 ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT.
739 2006-12-11 Diego Novillo <dnovillo@redhat.com>
741 * tree-scalar-evolution.c (scev_const_prop):
742 * tree-phinodes.c (remove_phi_node): Add argument
743 RELEASE_LHS_P. If given, release the SSA name on the LHS of
746 * tree-ssa-dce.c: Remove forward declarations for static
747 functions. Re-arrange functions bodies as needed.
748 (find_obviously_necessary_stmts): Never mark PHI nodes as
751 2006-12-11 Carlos O'Donell <carlos@codesourcery.com>
753 * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition.
755 2006-12-11 Jan Hubicka <jh@suse.cz>
757 * value-prof.c (tree_stringops_transform): New.
758 (tree_value_profile_transformations): Require count to be non-zero;
759 call stringop transform; reset stmt BSI after BB changed.
760 (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label.
761 (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New.
762 (tree_stringops_values_to_profile): New.
763 (tree_values_to_profile): Call tree_stringops_values_to_profile.
764 * tree.h (build_string_literal): Tidy prototype.
765 (validate_arglist, builtin_memset_read_str, get_pointer_alignment):
767 * builtins.c (validate_arglist, builtin_memset_read_str,
768 get_pointer_alignment): Export.
770 2006-12-11 Uros Bizjak <ubizjak@gmail.com>
774 2006-11-15 Uros Bizjak <ubizjak@gmail.com>
776 * config/i386/i386.opt: New target option -mx87regparm.
778 * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno,
779 float_in_x87: Add new variables. mmx_words, sse_words: Remove.
780 (X87_REGPARM_MAX): Define.
782 * config/i386/i386.c (override_options): Error out for
783 -mx87regparm but no 80387 support.
784 (ix86_attribute_table): Add x87regparm.
785 (ix86_handle_cconv_attribute): Update comments for x87regparm.
786 (ix86_comp_type_attributes): Check for mismatched x87regparm types.
787 (ix86_function_x87regparm): New function.
788 (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
790 (init_cumulative_args): Initialize x87_nregs and float_in_x87
792 (function_arg_advance): Process x87_nregs and x87_regno when
793 floating point argument is to be passed in 80387 register.
794 (function_arg): Pass XFmode arguments in 80387 registers for local
795 functions. Pass SFmode and DFmode arguments to local functions
796 in 80387 registers when flag_unsafe_math_optimizations is set.
798 * reg-stack.c (convert_regs_entry): Disable NaN load for
799 stack registers that are used for argument passing.
801 * doc/extend.texi: Document x87regparm function attribute.
802 * doc/invoke.texi: Document -mx87regparm.
804 2006-12-11 Jan Hubicka <jh@suse.cz>
806 Move all varpool routines out of cgraph/cgraphunit to varpool.c
807 * cgraph.c: Update comments.
808 (cgraph_varpool_hash,
809 cgraph_varpool_nodes, cgraph_varpool_last_needed_node
810 cgraph_varpool_node_name, cgraph_varpool_node,
811 cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node,
812 cgraph_variable_initializer_availability): Move to
813 varpool.c and drop cgraph_ prefixes.
814 (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue,
815 cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl):
816 move to varpool.c; drop cgraph_ prefix; make static.
817 (dump_cgraph_varpool_node): Move to varpool.c under name
819 (dump_varpool, hash_varpool_node, eq_varpool_node,
820 decide_is_variable_needed): Move to varpool.c
821 (decl_assembler_name_equal): Move to tree.c.
822 (availability_names): Rename to ...
823 (cgraph_availability_names): ... this one.
824 (dump_cgraph_node): Update.
825 * cgraph.h: Reorder declarations now in varpool.c
826 (cgraph_vailablity_names): Declare.
827 (struct cgraph_varpool_node): Rename to ...
828 (struct varpool_node): ... this one.
829 (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue,
830 cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node,
831 cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node,
832 cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node,
833 cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls,
834 cgraph_variable_initializer_availability): Rename to ...
835 (varpool_first_unanalyzed_node, varpool_nodes_queue,
836 varpool_first_unanalyzed_node, varpool_node,
837 varpool_node_for_asm, varpool_mark_needed_node,
838 varpool_finalize_decl, varpool_enqueue_needed_node,
839 varpool_assemble_pending_decls, variable_initializer_availability):
841 * tree.c (decl_assembler_name_equal): Move here from cgraph.c.
842 * tree.h (decl_assembler_name_equal): Declare.
843 * omp-low.c (lower_omp_critical): Update.
844 * ipa-reference (analyze_variable, static_execute): Likewise.
845 * toplev.c (wrapup_global_declaration_2, compile_file): Update.
846 * cgraphunit.c: Update comments.
847 (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name
848 varpool_assembled_nodes_queue.
849 (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name
850 varpool_analyze_pending_decls.
851 (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name
852 varpool_remove_unreferenced_decls.
853 (record_reference): Update.
854 (cgraph_create_edges): Update.
855 (record_referneces_in_initializer): New function.
856 (cgraph_varpool_assemble_decl): Move to varpool.c under name
857 varpool_assemble_decl; make global.
858 (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name
859 varpool_assemble_pending_decls.
860 (process_function_and_variable_attributes, cgraph_finalize_compilation_unit,
861 struct cgraph_order_sort, cgraph_output_in_order,
862 cgraph_function_and_variable_invisibility, cgraph_optimize,
863 cgraph_increase_alignment): Update.
864 * dwarf2out.c (decls_for_scope): Likewise.
865 * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise.
866 * except.c (output_ttype): Likewise.
867 * varasm.c (mark_decl_referenced): Likewise.
868 (find_decl_and_mark_referenced, assemble_alias): update.
869 * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c
870 * passes.c (rest_of_decl_compilation): Update.
872 2006-12-11 Ira Rosen <irar@il.ibm.com>
874 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use
876 * tree-vect-transform.c (vect_permute_store_chain): Likewise.
877 (vect_setup_realignment): Likewise.
879 2006-12-11 Sa Liu <saliu@de.ibm.com>
880 Ben Elliston <bje@au.ibm.com>
882 * config/spu/spu-elf.h (STARTFILE_SPEC): Update.
883 (ENDFILE_SPEC): Likewise.
884 * config/spu/spu.opt (mstdmain): New option.
885 * config/spu/crti.asm: Remove.
886 * config/spu/crtn.asm: Likewise.
887 * config/spu/crt0.c: Likewise.
888 * config/spu/crtend.c: Likewise.
889 * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files
891 ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove.
892 * doc/invoke.texi (SPU Options): Document -mstdmain.
894 2006-12-10 Zdenek Dvorak <dvorakz@suse.cz>
896 * doc/loop.texi: Document number_of_latch_executions and
897 number_of_cond_exit_executions.
898 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
899 chrec_is_positive, number_of_iterations_for_all_loops,
900 scev_const_prop): Use number_of_latch_executions.
901 (set_nb_iterations_in_loop): Do not increase the value of the
902 number of iterations.
903 (number_of_iterations_in_loop): Renamed to ...
904 (number_of_latch_executions): ... this.
905 (number_of_exit_cond_executions): New function.
906 * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration
908 (number_of_latch_executions, number_of_exit_cond_executions): Declare.
909 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use
910 number_of_latch_executions.
911 * tree-data-ref.c (get_number_of_iters_for_loop): Use
912 number_of_exit_cond_executions.
913 * tree-vect-analyze.c (vect_get_loop_niters): Ditto.
914 * cfgloop.h (struct loop): Improve description of the nb_iterations
917 2006-12-10 Daniel Berlin <dberlin@dberlin.org>
919 * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id.
920 (tree_pointer_compare): Remove.
922 2006-12-10 Zdenek Dvorak <dvorakz@suse.cz>
924 * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop.
925 * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP.
926 * tree-loop-linear.c (linear_transform_loops): Ditto.
927 * tree-ssa-loop-im.c (determine_lsm): Ditto.
928 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
929 free_numbers_of_iterations_estimates): Ditto.
930 * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto.
931 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
932 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
933 * modulo-sched.c (sms_schedule): Ditto.
934 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables,
935 tree_unroll_loops_completely): Ditto.
936 * predict.c (predict_loops): Ditto.
937 * tree-if-conv.c (main_tree_if_conversion): Ditto.
938 * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
939 decide_unrolling_and_peeling): Ditto.
940 * cfgloopmanip.c (unloop): Use delete_loop.
941 (place_new_loop): Access larray vector instead of parray.
942 (create_preheaders, force_single_succ_latches,
943 fix_loop_structure): Use FOR_EACH_LOOP and delete_loop..
944 * loop-doloop.c (doloop_optimize_loops): Ditto.
945 * loop-invariant.c (move_loop_invariants): Ditto.
946 * tree-cfg.c (replace_uses_by): Ditto.
947 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto.
948 * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
950 * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
952 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
953 compute_overall_effect_of_inner_loop, chrec_is_positive): Use
954 get_loop and get_chrec_loop.
955 (number_of_iterations_for_all_loops): Use number_of_loops.
956 (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP.
957 * tree-scalar-evolution.h (get_chrec_loop): New inline function.
958 * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops,
960 * tree-chrec.c (evolution_function_is_invariant_rec_p,
961 chrec_convert_1): Use get_loop and get_chrec_loop.
962 * loop-init.c (loop_optimizer_init): Use number_of_loops.
963 (loop_optimizer_init): Use FOR_EACH_LOOP.
964 * tree-vectorizer.c (vect_loops_num): Removed.
965 (vectorize_loops): Store number of loops locally. Use
966 FOR_EACH_LOOP and get_loop.
967 * tree-vectorizer.h (vect_loops_num): Removed.
968 * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop.
969 (find_data_references_in_loop): Do not set parallel_p.
970 * tree-data-ref.h: Do not declare VEC(loop_p).
971 * cfgloop.c (flow_loops_dump, mark_single_exit_loops,
972 verify_loop_structure): Use FOR_EACH_LOOP.
973 (flow_loops_free): Use FOR_EACH_LOOP, free larray vector.
974 (initialize_loops_parallel_p): Removed.
975 (flow_loops_find): Push the loops into a vector.
976 (delete_loop): New function.
977 (cancel_loop): Use delete_loop.
978 * cfgloop.h: Declare VEC(loop_p).
979 (struct loop): Remove parallel_p field.
980 (struct loops): Replace num and parray field by larray vector.
981 Remove shared_headers field.
982 (delete_loop): Declare.
983 (get_loop, get_loops, number_of_loops, fel_next, fel_init,
985 * doc/loop.tex: Document new accessor functions.
987 2006-12-10 Andrew MacLeod <amacleod@redhat.com>
989 * common.opt (-ftree-lrs): Remove live range splitting option.
990 * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies.
991 * opts.c (decode_options): Remove flag_tree_live_range_split.
992 * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_.
993 * tree-flow-inline.h (single_imm_use_p): New. Check for single use.
994 * tree-outof-ssa.c: Remove header files which aren't needed.
995 (SSANORM_*): Remove flags.
996 (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands,
997 coalesce_result_decls_and_copies, coalesce_asm_operands): Remove.
998 (coalesce_ssa_name): Move to tree-ssa-coalesce.c.
999 (assign_vars): Use Basevar instead of root_var structure.
1000 (replace_def_variable): Dont do anything if def is replaceable.
1001 (remove_ssa_form): Integrate functional changes.
1002 (rewrite_out_of_ssa): Remove live-range_split option.
1003 * tree-ssa-coalesce.c: New File for ssa-name coalescing.
1004 (coalesce_cost): Calculate the cost of a coalesce.
1005 (coalesce_cost_bb): Calculate the coalesce cost within a BB.
1006 (coalesce_cost_edge): Calculate the coalesce cost on an edge.
1007 (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list.
1008 (pop_best_coalesce): Remove the best coalesce from the list.
1009 (coalesce_pair_map_hash): Calculate coalesce pair hash.
1010 (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function.
1011 (create_coalesce_list): Create a coalesce list object.
1012 (delete_coalesce_list): Free a coalesce list object.
1013 (find_coalesce_pair): Find matching pair in the coalesce list.
1014 (add_cost_one_coalesce): Add a coalesce to the "cost one" list.
1015 (add_coalesce): Add a coalesce to the coalesce list.
1016 (compare_pairs): Comparision function to determine pair sorted order.
1017 (num_coalesce_pairs): Number of coalesced pairs.
1018 (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair):
1019 Coalesce pair iterator functions.
1020 (sort_coalesce_list): Sort coalesce pairs in order of expense.
1021 (dump_coalesce_list): Show coalesce list.
1022 (ssa_conflicts_new): Create an SSA conflict graph.
1023 (ssa_conflicts_delete): Delete an SSA conflict graph.
1024 (ssa_conflicts_test_p): Test for conflicts.
1025 (ssa_conflicts_add_one): Add a single conflict.
1026 (ssa_conflicts_add): Add a conflict pair.
1027 (ssa_conflicts_merge): Merge conflicts.
1028 (struct live_track_d): Struct for tracking live partitions.
1029 (new_live_track): Create new live_track object.
1030 (delete_live_track): Delete a live_track object.
1031 (live_track_remove_partition): Remove a partition from the live list.
1032 (live_track_add_partition): Add a partition from the live list.
1033 (live_track_clear_var): Take VAR from the live list.
1034 (live_track_live_p): Is var live?
1035 (live_track_process_use): Make var come alive.
1036 (live_track_process_def): Make var go dead, add conflicts.
1037 (live_track_init): Initialize to a live on exit set.
1038 (live_track_clear_base_vars): Clear live partitions.
1039 (build_ssa_conflict_graph): Build a conflict graph.
1040 (print_exprs): Common debug output routine.
1041 (abnormal_corrupt): Output info about a failed coalesce across an
1043 (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE.
1044 (create_outofssa_var_map): Create a var map and coalesce list.
1045 (attempt_coalesce): Coalesce a pair.
1046 (coalesce_partitions): Coalesce all pairs in a coalesce list.
1047 (coalesce_ssa_name): Entry point. Determine what ssa_names to coalesce.
1048 * tree-ssa-live.c: Remove header files which aren't needed.
1049 (var_map_base_init): New. Initialize a basevar list.
1050 (var_map_base_fini): New. Finish a basevar list.
1051 (init_var_map): Initialize new fields.
1052 (delete_var_map): Free new fields.
1053 (var_union): Use renamed fields.
1054 (compact_var_map): Remove.
1055 (partition_to_view_init): Use renamed fields, change order of an if.
1056 (partition_view_fini): Use renamed fields.
1057 (partition_view_normal): Create basevar list if requested.
1058 (partition_view_bitmap): Create a view based on a bitmap of partitions.
1059 (change_partition_var): Use renamed fields.
1060 (create_ssa_var_map): Remove.
1061 (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact,
1062 root_var_init): Remove.
1063 (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list,
1064 delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce,
1065 compare_pairs, num_coalesce_pairs, first_partition_pair,
1066 end_partition_pair_p, next_partition_pair, sort_coalesce_list,
1067 pop_best_coalesce, add_conflicts_if_valid, set_if_valid,
1068 build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list,
1069 tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there.
1070 (dump_var_map): Use renamed fields.
1071 * tree-ssa-live.h (struct _var_map): Modify fields.
1072 (partition_to_var, version_to_var, var_to_partition): Use renamed
1074 (basevar_index): New. Index of the base variable of a partition.
1075 (num_basevars): New. Number of unique base variables in partition map.
1076 (register_ssa_partition): Use renamed fields.
1077 (struct tree_partition_associator_d): Remove.
1078 (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition,
1079 tpa_find_tree, tpa_decompact, root_var_init, root_var_num,
1080 root_var, root_var_first_partition, root_var_next_partition,
1081 root_var_dump, root_var_delete, root_var_remove_partition,
1082 root_var_find, root_var_compact, root_var_decompact): Remove.
1083 (struct partition_pair, struct coalesce_list_d): Moved to
1085 * tree-ssa-ter.c: Remove header files which aren't needed.
1087 2006-12-10 Steven Bosscher <steven@gcc.gnu.org>
1089 * cse.c: (struct cse_basic_block_data): Remove LAST field.
1090 (struct branch_path): Remove BRANCH and TAKEN fields. Add new
1092 (cse_visited_basic_blocks): New static bitmap.
1093 (cse_end_of_basic_block, cse_basic_block): Remove.
1094 (cse_find_path, cse_dump_path, cse_prescan_path,
1095 cse_extended_basic_block): New static functions.
1096 (cse_insn): Don't CSE over setjmp calls. Use the CFG to find
1097 basic block boundaries. Don't record jump equivalences here.
1098 Update the CFG after doing in-place replacement of the SET_SRC.
1099 (cse_main): Rewrite. Look for extended basic block headers
1100 and call cse_extended_basic_block on them until all paths that
1101 start at this header are exhausted.
1102 (rest_of_handle_cse): Verify that the CFG is incrementally updated
1103 and correct after cse_main.
1104 Don't call delete_trivially_dead_insns, let cfgcleanup do that.
1105 (rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
1106 (pass_cse): Add TODO_verify_flow.
1107 (pass_cse2): Likewise.
1109 2006-12-10 Rask Ingemann Lambertsen <rask@sygehus.dk>
1111 * reload1.c (choose_reload_regs): Don't set byte offset when
1112 resolving subregs of hard regs.
1114 2006-12-09 Zack Weinberg <zackw@panix.com>
1116 * c-opts.c (c_common_parse_file): Unconditionally give a warning,
1117 suitable for the language, if set_yydebug is true.
1118 * c-pragma.h: Define enum pragma_omp_clause here. Don't define
1119 YYDEBUG or declare yydebug.
1120 * c-parser.c (yydebug, enum pragma_omp_clause): Delete.
1122 2006-12-09 Jan Hubicka <jh@suse.cz>
1124 * cgraph.c: Update copyright.
1125 * cgraph.h: Likewise
1126 (cgraph_update_pending_function): Remove prototype.
1127 * cgraphunit.c: Update copyright; update overall comment.
1128 (cgraph_assemble_pending_functions): Make local.
1130 2006-12-09 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1132 * haifa-sched.c (schedule_block): Remove excessive sanity check.
1134 2006-12-08 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
1136 * config/spu/spu-protos.h (spu_split_immediate): Renamed from
1138 (cpat_const_p, gen_cpat_const): Add.
1139 * config/spu/spu.c (immediate_class): New enum.
1140 (cpat_info, classify_immediate): New.
1141 (print_operand): Use S, D, T instead of F, G, H. Use
1142 classify_immediate. Handle cpat cases.
1143 (spu_split_immediate): Renamed from spu_split_address. Split all
1144 immediates that can be split.
1145 (immediate_load_p): Use classify_immediate.
1146 (spu_legitimate_constant_p): Accept everything except some cases of
1148 (spu_expand_move): Use spu_split_immedate.
1149 (fsmbi_const_p): Use classify_immediate.
1150 (cpat_const_p): New.
1151 (gen_cpat_const: New.
1152 * config/spu/constraints.md (j,k,l): New constraints for cpat
1154 * config/spu/spu.md (unnamed splitter): Change address splitter to
1155 handle all immediates.
1156 (_mov<mode>, _movdi, _movti): Handle i, j, k constraints for cpat
1158 (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns
1161 2006-12-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1164 * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
1165 patterns. Correct length of high:DI instruction sequence.
1167 2006-12-08 Mike Stump <mrs@apple.com>
1169 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
1170 libgcc with -mmacosx-version-min=10.4.
1171 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
1172 G4 for 10.5+ unless doing kernel builds.
1174 2006-12-08 Uros Bizjak <ubizjak@gmail.com>
1177 * reg-stack.c (convert_regs_entry): Mark current argument passing
1180 * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing
1181 of float arguments in x87 registers.
1183 2006-12-08 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
1185 * pa.h (LEGITIMATE_CONSTANT_P): Simplify.
1187 2006-12-08 Mark Shinwell <shinwell@codesourcery.com>
1189 * recog.c (mode_dependent_address_p): Identify pre-increment,
1190 pre-decrement, post-increment and post-decrement addressing as always
1191 being mode-dependent.
1192 * config/m32c/m32c.c (m32c_mode_dependent_address): Delete.
1193 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1194 * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete.
1195 * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
1196 PRE_INC and POST_INC checks.
1197 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1198 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1199 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1200 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1201 * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
1202 PRE_INC, POST_DEC and POST_INC cases.
1203 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
1204 Delete POST_INC and PRE_DEC cases.
1205 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
1207 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1208 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
1210 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1211 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1212 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete
1213 PRE_INC and PRE_DEC cases.
1214 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1215 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1216 * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1217 (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1218 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1219 * config/vax/vax.c (vax_mode_dependent_address_p): Delete
1220 auto-increment cases.
1221 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete
1222 auto-increment cases.
1223 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
1225 2006-12-08 Andrew MacLeod <amacleod@redhat.com>
1227 * Makefile.in: Add new file tree-ssa-ter.c.
1228 * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table,
1229 free_temp_expr_table, add_value_to_version_list,
1230 add_value_to_partition_list, remove_value_from_partition_list,
1231 add_dependence, check_replaceable, finish_expr, mark_replaceable,
1232 kill_expr, kill_virtual_exprs, find_replaceable_in_bb,
1233 find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
1234 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
1236 * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
1237 (struct value_expr_d): Remove.
1238 (struct temp_expr_table_d): Rename fields, add explicit vector of
1239 replaceable expressions instead of sharing. Change value_expr_p's to
1240 bitmap. Delete free_list.
1241 (new_temp_expr_table): Rename fields, count number of ssa_names in
1243 (free_temp_expr_table): Rename field, free new fields.
1244 (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list,
1245 add_info_to_list, remove_value_from_list): Delete.
1246 (version_to_be_replaced_p): New. Is an ssa-name replaceable?
1247 (make_dependent_on_partition): New. Set bit in version list, allocating
1248 a bitmap if need be.
1249 (add_to_partition_kill_list): New. Set bit in the partition list,
1250 allocating a bitmap if need be.
1251 (remove_from_partition_kill_list): New. Remove a bit from the
1252 partition list, free the bitmap if it is empty.
1253 (add_dependence): Use renamed field, cleanup. Don't add a dependence
1254 on partitions with only one member.
1255 (is_replaceable_p): New. Split out replaceability check from
1257 (process_replaceable): New. Code split from check_replaceable.
1258 (check_replaceable): Removed.
1259 (finished_with_expr): Renamed from finish_expr.
1260 (kill_expr): Use renamed fields and less parameters.
1261 (kill_virtual_exprs): Less parameters.
1262 (mark_replaceable): Use renamed fields.
1263 (find_replaceable_in_bb): Use renamed fields, cleanup.
1264 (find_replaceable_exprs): Use renamed routines, cleanup.
1265 (dump_replaceable_exprs): Don't go past end of ssa_names list.
1266 (debug_ter): New. Debug routine to dump state.
1268 2006-12-08 Bernd Schmidt <bernd.schmidt@analog.com>
1270 * config/bfin/bfin.c (effective_address_32bit_p): Return true for
1271 anything involving the GOT.
1272 (bfin_adjust_cost): Don't take the REGNO of a MEM.
1273 (trapping_loads_p): Look inside the pattern of an insn to find the
1275 * config/bfin/bfin.md (attr "type"): Add movcc.
1276 (insn_reservation "alu"): Likewise.
1277 (movsicc_insn1, movsicc_insn2): Change type to movcc.
1279 2006-12-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1281 * config/spu/spu-c.c (spu_build_overload_builtin): Delete.
1282 (spu_resolve_overloaded_builtin): Check for non scalar instead
1283 of vector type and check the function call argument type also for
1285 Call build_function_call instead of spu_build_overload_builtin.
1287 2006-12-07 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
1289 * config/spu/spu.c (array_to_constant): Correct the order of arguments
1290 to the calls of hwint_to_const_double.
1292 2006-12-07 Nick Clifton <nickc@redhat.com>
1294 * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to
1295 elf_record_gcc_switches.
1297 2006-12-07 Andrew Macleod <amacleod@redhat.com>
1299 * expr.c (string_constant): Account for non-zero lower bound arrays.
1301 2006-12-07 Richard Guenther <rguenther@suse.de>
1303 * builtins.c (expand_builtin_pow): Adjust predicates for
1304 pow to cbrt expansion to unsafe math and !HONOR_NANS for
1307 2006-12-07 Jan Hubicka <jh@suse.cz>
1309 * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset
1312 2006-12-07 Jan Hubicka <jh@suse.cz>
1314 * tree-vrp.c (compare_values): Short circuit INTEGER_CST;
1315 use fold_constant_to_binary; tolerate wrong type constants.
1316 (value_intersect_p): Do just two tests.
1318 2006-12-07 Bernd Schmidt <bernd.schmidt@analog.com>
1320 * config/bfin/bfin.c (print_operand): New modifier 'N' for constants.
1321 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
1322 lshifthi3): Use it, and fix the order of alternatives.
1324 2006-12-07 Nick Clifton <nickc@redhat.com>
1326 * common.opt (record-gcc-switches): New command line switch.
1327 * target.h (print_switch_type): New enum.
1328 (print_switch_fn_type): New typedef for a function pointer.
1329 (struct gcc_target): Add record_gcc_switches and
1330 record_gcc_switches_section fields.
1331 * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a
1333 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
1335 * toplev.c (print_single_switch): Simplify by providing a
1336 pointer to function that will format and output the switch
1338 (print_switch_values): Likewise.
1339 (print_to_asm_out_file): New function.
1340 (print_to_stderr): New function.
1341 (init_asm_output): If flag_record_gcc_switches is set then if
1342 the target supports recording the switches then emit them into
1343 the assembler output file, otherwise tell the user that the
1344 switch is not supported.
1345 * varasm.c (eld_record_gcc_switches): New function. Example
1346 handler for the record_gcc_switches target hook.
1347 * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new
1349 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise.
1350 * doc/invoke.texi (-frecord-gcc-switches): Document.
1352 2006-12-07 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1355 * sched-rgn.c (add_block1): Use correct initializer.
1357 2006-12-07 Richard Guenther <rguenther@suse.de>
1359 * tree-vect-transform.c (vectorizable_call): Fix leftover of
1360 TREE_OPERAND to GIMPLE_STMT_OPERAND conversion.
1362 2006-12-06 Aldy Hernandez <aldyh@redhat.com>
1365 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR
1366 not GIMPLE_MODIFY_STMT.
1368 2006-12-06 Jan Hubicka <jh@suse.cz>
1370 * tree-vrp.c (operand_less_p): New.
1371 (compare_values, value_inside_range): Rewrite in terms of
1374 2006-12-06 Uros Bizjak <ubizjak@gmail.com>
1376 * config/i386/i386.md (DIRFLAG_REG): Remove constant.
1378 (length_immediate): Do not depend on cld type attribute.
1379 (length_address): Ditto.
1382 (cld): Remove insn pattern.
1383 (strmov_singleop): Do not use DIRFLAG_REG.
1384 (*strmovdi_rex_1): Ditto.
1385 (*strmovsi_1): Ditto.
1386 (*strmovsi_rex_1): Ditto.
1387 (*strmovhi_1): Ditto.
1388 (*strmovhi_rex_1): Ditto.
1389 (*strmovqi_1): Ditto.
1390 (*strmovqi_rex_1): Ditto.
1392 (*rep_movdi_rex64): Ditto.
1393 (*rep_movsi): Ditto.
1394 (*rep_movsi_rex64): Ditto.
1395 (*rep_movqi): Ditto.
1396 (*rep_movqi_rex64): Ditto.
1397 (strset_singleop): Ditto.
1398 (*strsetdi_rex_1): Ditto.
1399 (*strsetsi_1): Ditto.
1400 (*strsetsi_rex_1): Ditto.
1401 (*strsethi_1): Ditto.
1402 (*strsethi_rex_1): Ditto.
1403 (*strsetqi_1): Ditto.
1404 (*strsetqi_rex_1): Ditto.
1406 (*rep_stosdi_rex64): Ditto.
1407 (*rep_stossi): Ditto.
1408 (*rep_stossi_rex64): Ditto.
1409 (*rep_stosqi): Ditto.
1410 (*rep_stosqi_rex64): Ditto.
1411 (cmpstrnsi): Do not generate cld insn.
1412 (cmpstrnqi_nz_1): Do not use DIRFLAG_REG.
1413 (*cmpstrnqi_nz_1): Ditto.
1414 (*cmpstrnqi_nz_rex_1): Ditto.
1415 (cmpstrnqi_1): Ditto.
1416 (*cmpstrnqi_1): Ditto.
1417 (*cmpstrnqi_rex_1): Ditto.
1418 (strlenqi_1): Ditto.
1419 (*strlenqi_1): Ditto.
1420 (*strlenqi_rex_1): Ditto.
1422 * config/i386/geode.md (shift): Do not depend on cld type attribute.
1423 * config/i386/pentium.md (pent_cld): Remove insn reservation.
1424 * config/i386/athlon.md (athlon_decode): Do not depend on cld
1426 * config/i386/ppro.md (ppro_cld): Remove insn reservation.
1427 * config/i386/k6.md (k6_alux_only): Do not depend on cld type
1429 (k6_alux_only_load): Ditto.
1430 (k6_alux_only_store): Ditto.
1432 * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean.
1433 Do not emit cld instruction.
1434 (ix86_expand_setmem): Ditto.
1435 (ix86_expand_strlen): Do not emit cld instruction.
1437 2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com>
1439 * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak
1442 2006-12-06 Diego Novillo <dnovillo@redhat.com>
1444 * gdbinit.in: Set complaints to 0.
1446 2006-12-06 Jan Hubicka <jh@suse.cz>
1448 * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO,
1449 ALONE_MEM_STAT_DECL): New macros.
1450 * bitmap.h: Include statistics.h
1451 (struct bitmap_head_def): Add variant with pointer to bitmap descriptor.
1452 (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics.
1453 (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare.
1454 * bitmap.c: Include hashtab.h
1455 (bitmap_descriptor): New.
1456 (bitmap_hash): New static variable
1457 (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead):
1458 New static functions.
1459 (bitmap_register): New.
1460 (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from,
1461 bitmap_obstack_release): Do accounting.
1462 (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do
1464 (bitmap_gc_alloc_stat): Likewise.
1465 (bitmap_obstack_free, bitmap_find_bit): Do statictics.
1466 (print_statistics, dump_bitmap_statistics): New functions.
1467 * toplev.c (finalize): Dump bitmap statistics.
1469 2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com>
1471 * reload1.c (delete_output_reload): Count occurrences in
1472 CALL_INSN_FUNCTION_USAGE.
1473 * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without
1474 crashing at the end of the list.
1476 2006-12-05 Daniel Berlin <dberlin@dberlin.org>
1478 * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156.
1479 Optimize to avoid marking more SMT's as used when they aren't.
1481 2006-12-05 Eric Christopher <echristo@apple.com>
1483 * config/i386/i386.c (x86_output_aligned_bss): Move out
1484 of COMMON_ASM_OP ifdef.
1486 2006-12-05 Eric Christopher <echristo@apple.com>
1488 * config/darwin.h (DARWIN_EXTRA_SPECS): New.
1489 (STARTFILE_SPEC): Use.
1490 (DARWIN_DYLIB1_SPEC): New.
1491 (DARWIN_CRT1_SPEC): New.
1492 * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
1494 * config/i386/darwin.h: Ditto.
1495 * config/rs6000/darwin.h: Ditto.
1497 2006-12-05 Daniel Berlin <dberlin@dberlin.org>
1499 * tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
1500 * tree-complex.c (pass_lower_complex): Ditto.
1501 * tree-ssa-ccp.c (pass_ccp): Ditto.
1502 (pass_store_ccp): Ditto.
1503 * tree-ssa-dom.c (pass_dominator): Ditto.
1504 (pass_phi_only_cprop): Ditto.
1505 * tree-sra.c (pass_sra): Ditto.
1506 * tree-ssa-forwprop.c (pass_forwprop): Ditto.
1507 * tree-flow.h (updating_used_alone): Remove.
1508 (updating_used_alone): Ditto.
1509 * tree-ssa-alias.c (updating_used_alone): Remove variable.
1510 (lhs_may_store_to): Remove function.
1511 (recalculate_used_alone): Ditto.
1512 (compute_may_aliases): Remove used_alone calculation.
1513 * tree.h (struct tree_memory_tag): Remove is_used_alone and
1514 old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE.
1515 * tree-pass.h (PROP_smt_usage): Remove.
1516 * passes.c (execute_todo): Remove used alone recalculation.
1517 (execute_one_pass): Ditto.
1518 * tree-ssa-operands.c (add_virtual_operand): Remove used_alone
1521 2006-12-05 Brooks Moses <brooks.moses@codesourcery.com>
1523 * doc/include/texinfo.tex: Update to version 2006-11-08.17.
1525 2006-12-05 Zdenek Dvorak <dvorakz@suse.cz>
1527 PR tree-optimization/14784
1528 * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.
1530 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
1532 Merge from gimple-tuples-branch.
1534 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
1536 * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with
1538 (s390_gimplify_va_arg): Same.
1539 * config/sparc/sparc.c (sparc_gimplify_va_arg): Same.
1540 * config/sh/sh.c (sh_va_start): Same.
1541 (sh_gimplify_va_arg_expr): Same.
1542 * config/xtensa/xtensa.c (xtensa_va_start): Same.
1543 (xtensa_gimplify_va_arg_expr): Same.
1544 * config/ia64/ia64.c (ia64_gimplify_va_arg): Same.
1545 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same.
1546 * config/mips/mips.c (mips_va_start): Same.
1547 (mips_gimplify_va_arg_expr): Same.
1549 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
1551 * Merge from mainline at revision 119445.
1553 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
1555 * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to
1557 (spu_gimplify_va_arg_expr): Same.
1559 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
1561 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1562 Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
1563 (xstormy16_expand_builtin_va_arg): Same.
1565 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
1567 * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR
1568 to GIMPLE_MODIFY_STMT.
1570 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
1572 * config/alpha/alpha.c (va_list_skip_additions): Change all
1573 occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
1574 (alpha_va_start): Same.
1575 (alpha_gimplify_va_arg_1): Same.
1576 (alpha_gimplify_va_arg): Same.
1578 2006-12-01 Aldy Hernandez <aldyh@redhat.com>
1580 * gimplify.c (gimplify_modify_expr): Remove FIXME comment.
1582 2006-12-01 Aldy Hernandez <aldyh@redhat.com>
1584 * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to
1585 GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to
1587 * tree-complex.c: Same.
1588 * tree-pretty-print.c: Same.
1592 * fold-const.c: Same.
1593 * tree-ssa-dom.c: Same.
1594 * tree-ssa-propagate.c: Same.
1595 * tree-ssa-alias.c: Same.
1596 * gimple-low.c: Same.
1597 * dwarf2out.c: Same.
1598 * c-pretty-print.c: Same.
1600 * tree-inline.c: Same.
1601 * tree-outof-ssa.c: Same.
1602 * tree-ssa-structalias.c: Same.
1603 * tree-ssa-reassoc.c: Same.
1606 2006-11-16 Aldy Hernandez <aldyh@redhat.com>
1608 * tree.c (build2_stat): Fix comment.
1610 2006-11-13 Aldy Hernandez <aldyh@redhat.com>
1612 * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and
1613 TREE_OPERAND when appropriate.
1615 2006-11-04 Aldy Hernandez <aldyh@redhat.com>
1617 * java/java-tree.h (lang_tree_node): Handle gimple tuples.
1618 (EXPR_WFL_EMIT_LINE_NOTE): Look inside base.
1619 (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus.
1620 * java/java-gimplify.c (java_gimplify_expr): Comment on why we do
1621 not handle GIMPLE_MODIFY_STMT in the switch statement.
1622 (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT.
1623 (java_gimplify_new_array_init): Same.
1625 2006-11-03 Aldy Hernandez <aldyh@redhat.com>
1627 * gimplify.c (gimplify_omp_for): Allow gimple statements.
1628 * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND.
1629 * fold-const.c (fold_binary): Allow gimple statements.
1631 * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal):
1632 Rename from gfc_conv_descriptor_data_set.
1633 Call gfc_add_modify instead of gfc_add_modify_expr.
1634 * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal):
1635 Rename from gfc_conv_descriptor_data_set.
1636 (gfc_conv_descriptor_data_set): New macro.
1637 (gfc_conv_descriptor_data_set_tuples): New macros.
1638 * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call
1639 gfc_conv_descriptor_data_set_tuples.
1640 * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr.
1641 Generate GIMPLE_MODIFY_STMT when appropriate.
1642 * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr.
1643 (gfc_add_modify_expr): New macro.
1644 (gfc_add_modify_stmt): New macro.
1645 * fortran/f95-lang.c (lang_tree_node): Handle gimple statements.
1647 2006-11-01 Aldy Hernandez <aldyh@redhat.com>
1649 * Merge from mainline at revision 118200.
1651 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
1653 * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust
1656 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
1658 * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not
1660 Also, add __extension__ to GCC versions.
1661 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
1662 * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning
1665 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
1667 * tree-complex.c (expand_complex_libcall): Adjust for
1669 (expand_complex_comparison): Same.
1670 * tree-pretty-print.c (dump_generic_node): Is_expr should include
1671 GIMPLE_STMT_P statements.
1672 * value-prof.c (tree_divmod_fixed_value_transform): Adjust for
1674 (tree_mod_pow2_value_transform): Same.
1675 (tree_mod_subtract_transform): Same.
1676 * tree.c (build2_stat): Check for gimplified function in cfun.
1677 * tree.h (DECL_GIMPLIFIED): Delete.
1678 (struct tree_function_decl): Remove gimplified_flag.
1679 * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT.
1680 * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
1681 (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
1682 (cxx_omp_clause_copy_ctor): Same.
1683 (cxx_omp_clause_assign_op): Same.
1684 * c-pretty-print.c (pp_c_conditional_expression): Same.
1685 (pp_c_expression): Same.
1686 * langhooks.c (lhd_omp_predetermined_sharing): Same.
1687 * function.h (struct function): Add gimplified field.
1688 * tree-if-conv.c (add_to_dst_predicate_list): Adjust for
1690 (find_phi_replacement_condition): Same.
1691 * gimplify.c (gimplify_modify_expr_to_memcpy): Same.
1692 (gimplify_modify_expr_to_memset): Same.
1693 (gimplify_init_ctor_eval_range): Same.
1694 (gimplify_modify_expr_complex_part): Same.
1695 (tree_to_gimple_tuple): Same.
1696 (gimplify_modify_expr): Same.
1697 (gimple_push_cleanup): Same.
1698 (gimplify_omp_for): Same.
1699 (gimplify_omp_atomic_pipeline): Same.
1700 (gimplify_omp_atomic_mutex): Same.
1701 (gimplify_expr): Same.
1702 (gimplify_one_sizepos): Same.
1703 (gimplify_function_tree): Same.
1704 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same.
1705 (vect_recog_widen_sum_pattern): Same.
1706 * tree-vect-transform.c (get_initial_def_for_reduction): Same.
1707 (vect_create_epilog_for_reduction): Same.
1708 (vectorizable_reduction): Same.
1710 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
1712 * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND.
1713 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same.
1714 (ifc_temp_var): Same.
1715 * tree-vect-analyze.c (vect_determine_vectorization_factor): Check
1716 for gimple statements.
1717 (vect_analyze_operations): Same.
1718 (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND.
1719 * gimplify.c (gimplify_return_expr): Handle gimple statements.
1720 * lambda-code.c (can_put_in_inner_loop): Same.
1721 (can_put_after_inner_loop): Same.
1722 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
1723 (vect_create_data_ref_ptr): Same.
1724 (vect_init_vector): Same.
1725 (vect_get_vec_def_for_operand): Same.
1726 (vect_create_epilog_for_reduction): Same.
1727 (vectorizable_reduction): Same.
1728 (vectorizable_assignment): Same.
1729 (vectorizable_operation): Same.
1730 (vectorizable_load): Same.
1731 (vectorizable_condition): Same.
1732 * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs.
1733 (rs6000_gimplify_va_arg): Same.
1735 2006-09-25 Aldy Hernandez <aldyh@redhat.com>
1737 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use
1738 GIMPLE_STMT_OPERAND.
1739 (simplify_abs_using_ranges): Same.
1740 * tree-complex.c (expand_complex_operations_1): Use
1741 PROTECTED_TREE_OPERAND.
1742 * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple
1744 (get_val_for): Use GIMPLE_STMT_OPERAND.
1745 * tree-tailcall.c (adjust_accumulator_values): Same.
1746 (adjust_return_value): Same.
1747 * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default
1748 case. Remove special case for tcc_gimple_stmt.
1749 * tree.h (CAN_HAVE_LOCATION_P): New.
1750 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for
1752 * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND.
1753 * tree-ssa-dom.c (propagate_rhs_into_lhs): Same.
1754 * tree-nrv.c (execute_return_slot_opt): Same.
1755 * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P.
1756 * tree-vn.c (set_value_handle): Same.
1757 (get_value_handle): Same.
1758 * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P.
1759 * tree-vectorizer.c (find_loop_location): Same.
1760 * c-typeck.c (c_process_expr_stmt): Same.
1761 (c_finish_stmt_expr): Same.
1762 * gimplify.c (should_carry_locus_p): Same.
1763 (tree_to_gimple_tuple): Delete definition and use of unecessary
1764 variable save_tree_block.
1765 * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P.
1766 (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND.
1767 (realify_fake_stores): Same.
1768 * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr):
1770 * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P.
1771 (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS.
1772 * tree-cfg.c (move_stmt_r): Use EXPR_P. Check for GIMPLE_STMT_P.
1773 * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P.
1774 (c_parser_statement_after_labels): Same.
1775 (c_parser_paren_condition): Same.
1776 (c_parser_for_statement): Same.
1777 (c_parser_omp_for_loop): Same.
1778 * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND.
1779 (linearize_expr_tree): Same.
1780 * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P.
1781 * function.c (instantiate_expr): Same.
1783 2006-09-22 Aldy Hernandez <aldyh@redhat.com>
1785 * tree.c (expr_location): Use GIMPLE_STMT_LOCUS.
1786 (set_expr_location): Same.
1788 (set_expr_locus): Same.
1789 (expr_filename): Same.
1790 (expr_lineno): Same.
1791 (tree_block): Use GIMPLE_STMT_BLOCK.
1792 (protected_tree_operand): Use GIMPLE_STMT_OPERAND.
1793 * tree.h (struct gimple_stmt): Remove prev and next.
1794 (GIMPLE_STMT_OPERAND_CHECK): New.
1795 (TREE_TO_GIMPLE_STMT): Delete.
1796 (GIMPLE_STMT_TO_TREE): Delete.
1797 (GIMPLE_STMT_OPERAND): Use union, not cast.
1798 (GIMPLE_STMT_LOCUS): New.
1799 (GIMPLE_STMT_BLOCK): New.
1800 * gimplify.c (tree_to_gimple_tuple): Use union. Do not cast
1802 * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable.
1804 2006-09-21 Aldy Hernandez <aldyh@redhat.com>
1806 * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base
1808 * tree-tailcall.c (adjust_return_value): Same.
1809 * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case.
1810 (copy_node_stat): Change common.base to base.
1811 (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt.
1812 Remove GIMPLE_STATEMENT_LIST case.
1813 * tree.h (struct gimple_stmt): Make operands of type tree.
1814 (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
1815 CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
1816 TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
1817 TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
1818 TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL,
1819 TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
1820 TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
1821 BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED,
1822 TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE,
1823 CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED,
1824 TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
1825 TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI,
1826 SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P):
1827 Change common.base to base.
1828 (GIMPLE_STATEMENT_LIST*): Remove.
1829 (union tree_node): Add base. Remove gimple_statement_list.
1830 Remove pointer from gstmt.
1831 * tree-ssa-propagate.c (set_rhs): Change common.base to base.
1832 * treestruct.def: Add TS_BASE. Remove TS_GIMPLE_STATEMENT_LIST.
1833 * tree-vn.c (vn_compute): Change common.base to base.
1834 * tree-eh.c (verify_eh_throw_stmt_node): Same.
1835 * tree-flow-inline.h (var_ann): Same.
1836 (function_ann): Same.
1838 (mark_non_addressable): Same.
1839 * gimplify.c (tree_to_gimple_tuple): Same.
1840 * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST.
1841 * tree-dfa.c (create_var_ann): Change common.base to base.
1842 (create_function_ann): Same.
1843 (create_stmt_ann): Same.
1844 (create_tree_ann): Same.
1845 (collect_dfa_stats_r): Same.
1846 * tree-ssa-pre.c (NECESSARY): Change common.base to base.
1847 * tree-ssa-dce.c (NECESSARY): Same.
1848 * tree-ssa.c (delete_tree_ssa): Same.
1849 * tree-optimize.c (execute_free_cfg_annotations): Same.
1850 * tree-flow.h: Same.
1852 2006-09-19 Aldy Hernandez <aldyh@redhat.com>
1854 * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST.
1855 (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and
1857 * tree.h (struct gimple_stmt): Add prev and next fields.
1858 (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK.
1859 (GIMPLE_STATEMENT_LIST_HEAD): New.
1860 (GIMPLE_STATEMENT_LIST_TAIL): New.
1861 (struct gimple_statement_list): New.
1862 (union tree_node): Add gimple_stmt_list and gstmt.
1863 * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT.
1864 * tree.def: Add GIMPLE_STATEMENT_LIST.
1866 2006-09-06 Aldy Hernandez <aldyh@redhat.com>
1868 * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT.
1869 * tree-vrp.c (build_assert_expr_for): Change uses of
1870 MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
1871 (find_assert_locations): Same.
1872 (remove_range_assertions): Same.
1873 (stmt_interesting_for_vrp): Same.
1874 (vrp_visit_assignment): Same.
1875 (vrp_visit_stmt): Same.
1876 (simplify_cond_using_ranges): Same.
1877 * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new
1879 * tree-ssa-loop-im.c (movement_possibility): Change uses of
1880 MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
1882 (determine_invariantness_stmt): Same.
1883 (schedule_sm): Same.
1884 (gather_mem_refs_stmt): Same.
1885 * tree-complex.c (init_dont_simulate_again): Same.
1886 (complex_visit_stmt): Same.
1887 (set_component_ssa_name): Same.
1888 (expand_complex_move): Same.
1889 (expand_complex_div_wide): Same.
1890 (expand_complex_comparison): Same.
1891 (expand_complex_operations_1): Same.
1892 * tree-ssa-loop-niter.c (expand_simple_operations): Same.
1893 (chain_of_csts_start): Same.
1894 (infer_loop_bounds_from_undefined): Same.
1895 * tree-pretty-print.c (dump_generic_node): Same.
1897 (op_symbol_1): Same.
1898 * tree-ssa-loop-manip.c (create_iv): Same.
1899 * value-prof.c (tree_divmod_fixed_value): Same.
1900 (tree_divmod_fixed_value_transform): Same.
1901 (tree_mod_pow2): Same.
1902 (tree_mod_pow2_value_transform): Same.
1903 (tree_mod_subtract): Same.
1904 (tree_mod_subtract_transform): Same.
1905 (tree_divmod_values_to_profile): Same.
1906 * tree-tailcall.c (process_assignment): Same.
1907 (find_tail_calls): Same.
1908 (adjust_accumulator_values): Same.
1909 (adjust_return_value): Same.
1910 (eliminate_tail_call): Same.
1911 * tree.c (tree_code_size): Handle tcc_gimple_stmt.
1912 (make_node_stat): Same.
1913 (copy_node_stat): Handle gimple tuples.
1914 (expr_align): Handle GIMPLE_MODIFY_STMT. Abort on MODIFY_EXPR.
1915 (tree_node_structure): Handle tcc_gimple_stmt.
1916 (build2_stat): Abort on MODIFY_EXPR after gimplification. Handle
1918 (build2_gimple_stat): New.
1919 (expr_location): New.
1920 (set_expr_location): New.
1921 (expr_has_location): New.
1923 (set_expr_locus): New.
1924 (expr_filename): New.
1926 (walk_tree): Handle tcc_gimple_stmt.
1928 (protected_tree_operand): New.
1929 (protected_tree_type): New.
1930 (tree_code_kind): Add gimple statements.
1931 * tree.h (tree_code_class): Add tcc_gimple_stmt.
1932 (IS_GIMPLE_STMT_CODE_CLASS): New.
1933 (struct tree_base): New.
1934 (struct tree_common): Shrink.
1935 (struct gimple_stmt): New.
1936 (struct gimple_expr): New.
1937 (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
1938 CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
1939 TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
1940 TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
1941 TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS,
1942 FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
1943 TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
1944 BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN,
1945 TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT,
1946 DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK,
1947 TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED,
1948 IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
1949 TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST,
1950 TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P):
1951 Adjust for new `common' layout.
1952 (struct tree_function_decl): Add gimplified_flag.
1953 (DECL_GIMPLIFIED): NEW.
1954 (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS,
1955 SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO,
1956 EXPR_HAS_LOCATION): Call corresponding function.
1957 (GIMPLE_STMT_CHECK): New.
1958 (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples.
1959 (TREE_BLOCK): Call tree_block.
1960 (GIMPLE_STMT_P): New.
1961 (GIMPLE_TUPLE_P): New.
1962 (TREE_TO_GIMPLE_STMT): New.
1963 (GIMPLE_STMT_TO_TREE): New.
1964 (GIMPLE_STMT_OPERAND): New.
1965 (GIMPLE_TUPLE_HAS_LOCUS_P): New.
1966 (PROTECTED_TREE_OPERAND): New.
1967 (PROTECTED_TREE_TYPE): New.
1968 (build2_gimple_stat): Protoize.
1969 (build2_gimple): New.
1970 (expr_location): Protoize.
1971 (set_expr_location): Protoize.
1972 (expr_has_location): Protoize.
1973 (expr_locus): Protoize.
1974 (set_expr_locus): Protoize.
1975 (expr_filename): Protoize.
1976 (expr_lineno): Protoize.
1977 (tree_block): Protoize.
1978 (protected_tree_operand): Protoize.
1979 (protected_tree_type): Protoize.
1980 (enum tree_node_kind): Add gimple_stmt_kind.
1981 * c-decl.c (union lang_tree_node): Tuples do not have a
1983 * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to
1984 GIMPLE_MODIFY_STMT and adjust accordingly.
1985 * tree-scalar-evolution.c (follow_ssa_edge): Same.
1986 (interpret_condition_phi): Same.
1987 (pointer_used_p): Same.
1988 (analyze_scalar_evolution_1): Same.
1989 (scev_const_prop): Same.
1990 (interpret_rhs_modify_stmt): Rename from
1991 interpret_rhs_modify_expr.
1992 * builtins.c (std_expand_builtin_va_start): Change uses of
1993 MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
1994 (std_gimplify_va_arg_expr): Same.
1995 (expand_builtin_va_copy): Same.
1996 (integer_valued_real_p): Same.
1997 * fold-const.c (maybe_lvalue_p): Same.
1999 (tree_expr_nonnegative_p): Same.
2000 (tree_expr_nonzero_p): Same.
2001 * omp-low.c (extract_omp_for_data): Same.
2002 (lower_rec_input_clauses): Same.
2003 (lower_reduction_clauses): Same.
2004 (lower_copyprivate_clauses): Same.
2005 (lower_send_clauses): Same.
2006 (lower_send_shared_vars): Same.
2007 (expand_parallel_call): Same.
2008 (expand_omp_parallel): Same.
2009 (expand_omp_for_generic): Same.
2010 (expand_omp_for_static_nochunk): Same.
2011 (expand_omp_for_static_chunk): Same.
2012 (expand_omp_sections): Same.
2013 (lower_omp_single_copy): Same.
2014 (lower_omp_parallel): Same.
2015 * tree-ssa-dse.c (memory_address_same): Same.
2016 (dse_optimize_stmt): Same.
2017 * ipa-reference.c (scan_for_static_refs): Same.
2018 * tree-gimple.c (is_gimple_reg_rhs): Same.
2019 (get_call_expr_in): Same.
2020 (recalculate_side_effects): Same.
2021 * cgraphunit.c (cgraph_create_edges): Same.
2022 * tree-ssa-copyrename.c (rename_ssa_copies): Same.
2023 * tree-ssa-ccp.c (get_default_value): Same.
2024 (likely_value): Same.
2025 (visit_assignment): Same.
2026 (ccp_visit_stmt): Same.
2027 (get_maxval_strlen): Same.
2028 (ccp_fold_builtin): Same.
2029 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same.
2030 (find_givs_in_stmt): Same.
2031 (find_interesting_uses_op): Same.
2032 (find_interesting_uses_stmt): Same.
2033 (rewrite_use_nonlinear_expr): Same.
2034 * ipa-pure-const.c (scan_function): Same.
2035 * tree-stdarg.c (va_list_counter_bump): Same.
2036 (check_all_va_list_escapes): Same.
2037 (execute_optimize_stdarg): Same.
2038 * tree-ssa-math-opts.c (compute_merit): Same.
2039 (insert_reciprocals): Same.
2040 (execute_cse_reciprocals): Same.
2041 * tree-ssa-dom.c (initialize_hash_element): Same.
2042 (simple_iv_increment_p): Same.
2043 (record_equivalences_from_stmt): Same.
2044 (optimize_stmt): Same.
2045 (remove_stmt_or_phi): Same.
2046 (get_rhs_or_phi_arg): Same.
2047 (get_lhs_or_phi_result): Same.
2048 (propagate_rhs_into_lhs): Same.
2049 * tree-nrv.c (tree_nrv): Same.
2050 (execute_return_slot_opt): Same.
2051 * tree-ssa-propagate.c (get_rhs): Same.
2053 (stmt_makes_single_load): Same.
2054 (stmt_makes_single_store): Same.
2055 (replace_vuses_in): Same.
2056 (fold_predicate_in): Same.
2057 (substitute_and_fold): Same.
2058 * tree-ssa-alias.c (compute_call_clobbered): Same.
2059 (recalculate_used_alone): Same.
2060 (count_uses_and_derefs): Same.
2061 (is_escape_site): Same.
2062 (find_used_portions): Same.
2063 * gimple-low.c (lower_stmt): Same.
2064 (block_may_fallthru): Same.
2065 (lower_return_expr): Same.
2066 * tree-ssa-sink.c (is_hidden_global_store): Same.
2067 (statement_sink_location): Same.
2068 * dwarf2out.c (loc_descriptor_from_tree_1): Same.
2069 * expr.c (safe_from_p): Same.
2070 (expand_expr_real): Same.
2071 (expand_expr_real_1): Same.
2072 * tree-ssa-loop-ivcanon.c (empty_loop_p): Same.
2073 * predict.c (expr_expected_value): Same.
2074 (strip_builtin_expect): Same.
2075 (apply_return_prediction): Same.
2076 (tree_bb_level_predictions): Same.
2077 (tree_estimate_probability): Same.
2078 * tree-vn.c (vn_compute): Same.
2079 * tree-eh.c (add_stmt_to_eh_region_fn): Same.
2080 (remove_stmt_from_eh_region_fn): Same.
2081 (do_return_redirection): Same.
2082 (honor_protect_cleanup_actions): Same.
2083 (lower_try_finally_switch): Same.
2084 (lower_eh_constructs_1): Same.
2085 (tree_could_throw_p): Same.
2086 (verify_eh_throw_stmt_node): Same.
2087 * function.c (gimplify_parameters): Same.
2088 * tree-vectorizer.c (vect_is_simple_use): Same.
2089 (vect_is_simple_reduction): Same.
2090 * ipa-type-escape.c (scan_for_refs): Same.
2091 * tree-if-conv.c (tree_if_conversion): Same.
2092 (tree_if_convert_stmt): Same.
2093 (if_convertible_gimplify_modify_stmt_p): Rename from
2094 if_convertible_modify_expr_p.
2095 (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT.
2096 (ifc_temp_var): Same.
2097 (replace_phi_with_cond_modify_stmt): Rename from
2098 replace_phi_with_cond_modify_expr.
2099 (process_phi_nodes): Call replace_phi_with_cond_modify_stmt.
2100 * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT.
2101 * tree-data-ref.c (find_data_references_in_loop): Adjust for
2103 * tree-flow-inline.h (var_ann): Same.
2104 (function_ann): Same.
2106 (mark_non_addressable): Same.
2107 * tree-vect-analyze.c (vect_determine_vectorization_factor): Same.
2108 * gimplify.c (tree_to_gimple_tuple): New.
2109 (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT.
2110 (gimplify_return_expr): Same.
2111 (gimplify_decl_expr): Same.
2112 (gimplify_self_mod_expr): Same.
2113 (gimplify_cond_expr): Same.
2114 (gimplify_init_constructor): Same.
2115 (gimplify_modify_expr): Same.
2116 (gimplify_expr): Same.
2117 (gimplify_function_tree): Same.
2118 (force_gimple_operand): Same.
2119 * tree-ssa-phiopt.c (conditional_replacement): Same.
2120 (minmax_replacement): Same.
2121 (abs_replacement): Same.
2122 * tree-dfa.c (create_var_ann): Same.
2123 (create_function_ann): Same.
2124 (create_stmt_ann): Same.
2125 (create_tree_ann): Same.
2126 (collect_dfa_stats_r): Same.
2127 * tree-ssa-pre.c (find_or_generate_expression): Same.
2128 (create_expression_by_pieces): Same.
2129 (try_look_through_load): Same.
2130 (insert_fake_stores): Same.
2131 (realify_fake_stores): Same.
2132 (compute_avail): Same.
2135 (poolify_modify_stmt): Rename from poolify_modify_stmt.
2136 Adjust for GIMPLE_MODIFY_STMT.
2137 (NECESSARY): Adjust for new `common' layout.
2138 * tree-ssa-live.c (build_tree_conflict_graph): Adjust for
2140 * tree-sra.c (sra_walk_modify_stmt): Rename from
2141 sra_walk_modify_expr.
2142 (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT.
2143 (generate_copy_inout): Same.
2144 (generate_element_copy): Same.
2145 (generate_element_zero): Same.
2146 (scalarize_copy): Same.
2147 * tree-mudflap.c (mf_decl_cache_locals): Same.
2148 (mf_build_check_statement_for): Same.
2149 (mf_xform_derefs): Same.
2150 * ipa-prop.c (ipa_method_modify_stmt): Same.
2151 * print-tree.c (print_node): Handle gimple tuples.
2152 Add case for tcc_gimple_stmt.
2153 * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for
2155 (copy_prop_visit_assignment): Same.
2156 (copy_prop_visit_stmt): Same.
2157 (init_copy_prop): Same.
2158 * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same.
2159 (forward_propagate_into_cond_1): Same.
2160 (find_equivalent_equality_comparison): Same.
2161 (tidy_after_forward_propagate_addr): Same.
2162 (forward_propagate_addr_expr_1): Same.
2163 (simplify_not_neg_expr): Same.
2164 (simplify_switch_expr): Same.
2165 * tree-ssa-dce.c (find_pdom): Same.
2166 (mark_stmt_if_obviously_necessary): Same.
2167 (NECESSARY): Adjust for new `common' layout.
2168 * tree-flow.h: Same.
2169 * tree-vect-patterns.c (widened_name_p): Adjust for
2171 (vect_recog_dot_prod_pattern): Same.
2172 (vect_recog_widen_sum_pattern): Same.
2173 (vect_pattern_recog_1): Same.
2174 * tree-nested.c (init_tmp_var): Same.
2175 (save_tmp_var): Same.
2177 (convert_call_expr): Same.
2178 (finalize_nesting_tree_1): Same.
2179 * tree-ssa.c (verify_ssa): Same.
2180 (delete_tree_ssa): Same.
2181 * lambda-code.c (lbv_to_gcc_expression): Same.
2182 (lle_to_gcc_expression): Same.
2183 (lambda_loopnest_to_gcc_loopnest): Same.
2184 (can_put_in_inner_loop): Same.
2185 (can_convert_to_perfect_nest): Same.
2186 (perfect_nestify): Same.
2187 * tree-ssa-loop-prefetch.c (gather_memory_references): Same.
2188 * tree-inline.c (copy_body_r): Same.
2189 (setup_one_parameter): Same.
2190 (initialize_inlined_parameters): Same.
2191 (estimate_num_insns_1): Same.
2192 (expand_call_inline): Same.
2193 (gimple_expand_calls_inline): Same.
2194 (copy_tree_r): Same.
2195 * tree-optimize.c (execute_free_cfg_annotations): Same.
2196 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
2197 (vect_align_data_ref): Same.
2198 (vect_create_data_ref_ptr): Same.
2199 (vect_init_vector): Same.
2200 (vect_create_epilog_for_reduction): Same.
2201 (vectorizable_reduction): Same.
2202 (vectorizable_assignment): Same.
2203 (vectorizable_operation): Same.
2204 (vectorizable_store): Same.
2205 (vectorizable_load): Same.
2206 (vectorizable_live_operation): Same.
2207 (vectorizable_condition): Same.
2208 (vect_generate_tmps_on_preheader): Same.
2209 (vect_create_cond_for_align_checks): Same.
2210 * tree-object-size.c (collect_object_sizes_for): Same.
2211 (check_for_plus_in_loops_1): Same.
2212 (check_for_plus_in_loops): Same.
2213 * tree-outof-ssa.c (insert_copy_on_edge): Same.
2214 (replace_use_variable): Same.
2215 (check_replaceable): Same.
2216 (rewrite_trees): Same.
2217 (identical_copies_p): Same.
2218 (insert_backedge_copies): Same.
2219 * tree-profile.c (tree_gen_edge_profiler): Same.
2220 * tree-vect-generic.c (expand_vector_operations_1): Same.
2221 * tree-ssa-structalias.c (update_alias_info): Same.
2222 (find_func_aliases): Same.
2223 * tree-cfg.c (factor_computed_gotos): Same.
2225 (make_goto_expr_edges): Same.
2226 (tree_merge_blocks): Same.
2227 (remove_useless_stmts_cond): Same.
2228 (remove_useless_stmts_1): Same.
2229 (tree_find_edge_insert_loc): Same.
2230 (verify_expr): Same.
2231 (gimplify_val): Same.
2232 (verify_gimple_tuples_1): New.
2233 (verify_gimple_tuples): New.
2234 (verify_stmts): Call verify_gimple_tuples.
2235 * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT.
2236 (get_unary_op): Same.
2237 (linearize_expr): Same.
2238 (get_single_immediate_use): Same.
2239 (negate_value): Same.
2240 (should_break_up_subtract): Same.
2241 (break_up_subtract): Same.
2242 (repropagate_negates): Same.
2243 (break_up_subtract_bb): Same.
2244 (reassociate_bb): Same.
2245 * config/i386/i386.c (ix86_va_start): Same.
2246 (ix86_gimplify_va_arg): Same.
2247 * stmt.c (expand_expr_stmt): Same.
2248 (warn_if_unused_value): Same.
2249 (expand_return): Same.
2250 * tree-ssanames.c (make_ssa_name): Same.
2251 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same.
2252 * tree-ssa-operands.c (finalize_ssa_defs): Same.
2253 (add_virtual_operand): Same.
2254 (get_expr_operands): Same.
2255 (parse_ssa_operands): Same.
2256 (get_modify_stmt_operands): Rename from get_modify_expr_operands.
2258 2006-12-05 H.J. Lu <hongjiu.lu@intel.com>
2260 * config.host: Remove extra blank line.
2262 2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
2264 * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if
2265 target is also an x86 variant.
2267 2006-12-05 Richard Guenther <rguenther@suse.de>
2269 * config/i386/i386.c (ix86_builtin_vectorized_function): Declare.
2270 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
2271 (ix86_builtin_vectorized_function): New function to vectorize
2274 2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
2276 * config/bfin/bfin.c (output_file_start): Fix comment which referred to
2277 ia64_override_options.
2279 2006-12-04 Jan Hubicka <jh@suse.cz>
2281 * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by
2284 2006-12-04 Bernd Schmidt <bernd.schmidt@analog.com>
2286 * rtlanal.c (note_uses): Deal with SEQUENCEs.
2287 * config/bfin/bfin.c: Include "timevar.h".
2288 (bfin_flag_schedule_insns2, splitting_for_sched,
2289 bfin_flag_var_tracking): New variables.
2290 (print_operand): Handle '%!'.
2291 (override_options): Disable normal sched2 pass, instead set
2292 bfin_flag_schedule_insns2 for reorg to handle it.
2293 (output_file_start): Likewise for var-tracking.
2294 (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs.
2295 (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p):
2297 (bfin_reorg): Do second scheduling pass here, and call
2298 bfin_gen_bundles. Use type_for_anomaly and trapping_loads_p instead
2299 of examining insns directly. If bfin_flag_var_tracking, call
2300 var-tracking pass when done with everything else.
2301 * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid.
2302 * config/bfin/bfin.md (UNSPEC_32BIT): New constant.
2303 (movsi_insn32): New pattern, with two new splits to create it
2304 before the final scheduling pass.
2305 (neghi2): Not a dsp32 insn, rather alu0.
2306 (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn,
2307 movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2,
2308 extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2,
2309 mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2,
2310 ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2,
2311 movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low,
2312 movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
2313 ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3,
2314 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3,
2315 subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3,
2316 addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3,
2317 flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi,
2318 flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3,
2319 flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts,
2320 flag_macv2hi_parts_acconly, flag_macinitv2hi_parts,
2321 flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl,
2322 mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3,
2323 lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store
2324 variants instead of ';'.
2325 (ror_one, rol_one): Likewise. Make them dsp32 insns.
2326 (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants.
2327 (align8, align16, align24): Now named patterns; also using '%!'.
2330 2006-12-05 Kazu Hirata <kazu@codesourcery.com>
2332 * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c,
2333 tree-vect-generic.c, tree-vect-transform.c: Fix comment typos.
2335 2006-12-04 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2337 * config/spu/spu-protos.c (spu_split_address): Add.
2338 * config/spu/spu.c (spu_split_address): Add.
2339 (print_operand): Handle HIGH.
2340 (spu_legitimate_address): Don't test for aligned CONST.
2341 (spu_expand_mov): Don't split addresses here.
2342 * config/spu/constraints.md (A): Don't test legitimate_const.
2343 * config/spu/spu.md: Add split of movsi patterns for PIC mode.
2344 (ceq_di): Use correct predicates.
2346 2006-12-04 Eric Christopher <echristo@apple.com>
2348 * config/darwin.h: Update copyright notice.
2349 * config/i386/darwin.h: Ditto.
2351 2006-12-04 Jan Hubicka <jh@suse.cz>
2353 * builtins.c (fold_builtin_memory_op): Check that expr_size match.
2354 * explow.c (expr_size, int_expr_size): Assert that size is non_NULL.
2356 2006-12-04 Daniel Berlin <dberlin@dberlin.org>
2358 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
2360 * tree-ssa-structalias.c (set_used_smts): Export.
2361 (find_what_p_points_to): Don't call set_used_smts here.
2362 * tree-ssa-structalias.h (set_used_smts): Add prototype.
2364 2006-12-04 Daniel Berlin <dberlin@dberlin.org>
2366 * tree-ssa-alias.c (compute_may_aliases):
2367 Compute flow sensitive before flow insensitive.
2368 (compute_flow_sensitive_aliasing): Don't try to add
2369 a symbol memory tag to itself.
2371 * alias.h (alias_set_subset_of): New prototype.
2373 * alias.c (alias_set_subset_of): New function.
2375 * tree-ssa-structalias.c: Update comments.
2376 (struct variable_info): Add finished_solution.
2377 (new_varinfo): Set finished solution to NULL.
2378 (var_escaped_vars): Remove.
2379 (escaped_vars_tree): Remove.
2380 (escaped_vars_id): Remove.
2381 (nonlocal_vars_id): Remove.
2382 (constraint_expr_type): Add INCLUDES.
2383 (graph_size): Removed.
2384 (dump_constraint): Support INCLUDES.
2385 (build_constraint_graph): Ditto.
2386 (collapse_nodes): Add merge_solutions argument.
2387 Don't merge attributes.
2388 (process_unification_queue): Just use collapse_nodes.
2389 (perform_var_substitution): Update call to collapse_nodes.
2390 (get_constraint_exp_from_ssa_var): Use INCLUDES.
2391 (process_constraint): Fix non-field sensitive handling
2393 (get_constraint_for): Use INCLUDES.
2394 (make_constraint_from_anything): Renamed from
2395 make_constraint_from_escaped.
2396 (make_constraint_to_escaped): Removed.
2397 (find_global_initializers): Removed.
2398 (create_variable_info_for): Do not make constraints to escaped
2400 (dump_solution_for_var): Don't print out the equivalent points-to
2401 sets, just use the name of the variable it shares it with.
2402 (intra_create_variable_infos): Use INCLUDES.
2403 Change nonlocal variable sets to anything sets.
2404 (init_base_vars): Remove escaped_vars and nonlocal_var
2406 (find_escape_constraints): Removed.
2407 (delete_points_to_sets): Remove dead code.
2408 (used_smt_calculated): New variable.
2409 (set_used_smts): New function.
2410 (merge_smts_into): New function.
2411 (find_what_p_points_to): Modify to use SMTs.
2412 (create_nonlocal_var): Remove.
2414 * tree-ssa-operands.c (access_can_touch_variable): Remove
2415 reference to nonlocal_all.
2417 * tree-ssa.c (verify_name_tags): Remove.
2419 2006-12-04 Carlos O'Donell <carlos@codesourcery.com>
2421 * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
2422 (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.
2424 2006-12-04 Andrew MacLeod <amacleod@redhat.com>
2426 * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
2427 * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
2428 (add_livein_if_notdef): Delete.
2429 (loe_visit_block): New. Propogate live on entry info for a block into
2430 each predecessor. If it changes, make sure it is visited again.
2431 (live_worklist): Visit every block and update the live on entry info
2432 for preds. Iterate over any that changed.
2433 (set_var_live_on_entry): Populate the live on entry blocks with bits
2434 based on the immediate uses of a var.
2435 (calculate_live_on_entry): Remove.
2436 (calculate_live_on_exit): Calculate live on exit based on the newly
2437 oriented live on entry bits.
2438 (calculate_live_ranges): Build live on entry and exit vectors.
2439 (dump_live_info): Use new orientation of live on entry bitmaps.
2440 (verify_live_on_entry): New. Split out verification code from old
2441 calculate_live_on_entry routine.
2442 * tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
2443 (live_entry_blocks): Rename to live_on_entry and return bitmap for a
2444 basic_block instead of for a partition.
2445 (live_merge_and_clear): Add asserts.
2446 (make_live_on_entry): Set partition bit in basic block vector.
2448 2006-12-04 Jakub Jelinek <jakub@redhat.com>
2451 * omp-low.c (expand_omp_for_static_nochunk,
2452 expand_omp_for_static_chunk): Do all arithmetics in signed rather than
2456 * omp-low.c (determine_parallel_type): Don't try to optimize combined
2457 parallels if region->exit or region->inner->exit is NULL.
2458 (expand_omp_parallel): Handle NULL region->exit even if cfg is already
2460 (expand_omp_for_generic): Handle NULL region->cond and region->exit.
2461 (expand_omp_for): Use expand_omp_for_generic if either region->cond
2462 or region->exit is NULL.
2463 (expand_omp_sections): Handle NULL region->cond or region->exit.
2466 2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2468 * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
2469 * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2471 2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
2473 * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and
2474 TYPE_MAX_VALUE for scalar types here but...
2475 (walk_tree): ...there instead. Return NULL_TREE if the TYPE_DECL
2476 is attached an error mark, and the return value of the callback
2477 if it is not NULL_TREE.
2479 2006-12-04 Ben Elliston <bje@au.ibm.com>
2481 * config/spu/spu.md (_mulv4si3): Remove unused local variables.
2483 2006-12-03 Eric Christopher <echristo@apple.com>
2486 * config/t-slibgcc-darwin: Pass -install_name.
2487 * config/darwin.h (LINK_COMMAND_SPEC): Remove use of
2488 libtool. Only pass through options that the linker recognizes.
2489 (LINK_SPEC): Update comment. Translate options.
2490 (STARTFILE_SPEC): Add dylib1.o for shared libraries.
2491 * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above.
2493 2006-12-03 Dorit Nuzman <dorit@il.ibm.com>
2495 * config/spu/spu.md (smaxv4sf3, sminv4sf3): New.
2497 2006-12-03 Uros Bizjak <ubizjak@gmail.com>
2500 * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
2501 operands[1] in insn constraint. Correct type attribute to sselog1.
2503 2006-12-02 H.J. Lu <hongjiu.lu@intel.com>
2506 * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
2508 (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
2509 processor detection.
2511 * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
2512 -march=native if there is no -mtune=*.
2514 * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
2517 2006-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2519 * doc/install.texi: Update recommended MPFR version. Remove
2520 obsolete reference to cumulative patch.
2522 2006-12-02 Lee Millward <lee.millward@codesourcery.com>
2525 * c-decl.c (store_parm_decls_oldstyle): Robustify.
2527 2006-11-30 Jan Hubicka <jh@suse.cz>
2528 Uros Bizjak <ubizjak@gmail.com>
2530 * config/i386/i386.c (pentium4_cost, nocona_cost): Update
2531 32bit memcpy/memset decriptors.
2532 (decide_alg): With -minline-all-stringops and sizes that are best
2533 to be copied via libcall still work hard enough to pick non-libcall
2536 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
2538 * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos.
2540 * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
2541 config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
2542 config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
2543 config/sh/sh4-300.md, config/spu/spu-builtins.def,
2544 config/spu/spu-c.c, config/spu/spu-modes.def,
2545 config/spu/spu.c, config/spu/spu.md,
2546 config/spu/spu_internals.h, config/spu/vmx2spu.h,
2547 fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
2548 tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
2549 tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
2550 tree-vectorizer.c, tree-vrp.c: Fix comment typos. Follow
2551 spelling conventions.
2553 * config/i386/i386.c: Fix a comment typo.
2555 2006-12-01 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2557 * config/spu/spu.c (spu_immediate): Remove trailing comma.
2558 (reloc_diagnostic): Call warning when -mwarn-reloc is specified.
2559 * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
2560 better optimization.
2561 (floatv4siv4sf2): New.
2562 (fix_truncv4sfv4si2): New.
2563 (floatunsv4siv4sf2): New.
2564 (fixuns_truncv4sfv4si2): New.
2572 (cmp<mode>): Don't accept constant arguments for DI, TI and SF.
2573 * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
2574 spu_resolve_overloaded_builtin instead of static inline functions.
2576 2006-12-01 Eric Botcazou <ebotcazou@adacore.com>
2578 * fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
2579 type instead of the size of its mode to compute the highest and
2580 lowest possible values. Still check the size of the mode before
2581 flipping the signedness of the comparison.
2583 2006-12-01 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2585 * config/spu/predicates.md (spu_mov_operand): Add.
2586 * config/spu/spu.c (spu_expand_extv): Remove unused code.
2587 (print_operand_address, print_operand): Handle addresses containing AND.
2588 (spu_split_load, spu_split_store): Use updated movti pattern.
2589 * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
2590 stores in mov patterns for correct operation of reload.
2591 (lq, lq_<mode>, stq, stq_<mode>): Remove.
2593 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2596 * c-common.c (check_main_parameter_types): Check for error_mark_node.
2598 2006-12-01 Andrew MacLeod <amacleod@redhat.com>
2600 * common.opt (ftree-combine-temps): Remove.
2601 * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
2602 (coalesce_ssa_name): Don't check for combine-temps.
2603 (coalesce_vars): Remove.
2604 (check_replaceable): Use num_imm_uses.
2605 (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't
2606 check for combine-temps.
2607 (rewrite_out_of_ssa): Never create a ref_count in the var_map.
2608 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
2609 to register_ssa_partition calls.
2610 * tree-ssa-live.c (register_ssa_partition): Remove prototype.
2611 (init_var_map, delete_var_map): remove refernces to ref_count.
2612 (create_ssa_var_map): Never calculate a ref count.
2613 (type_var_init): Remove.
2614 * tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
2615 (SSA_VAR_MAP_REF_COUNT): Delete.
2616 (create_ssa_var_map): Change Prototype to have no parameters.
2617 (version_ref_count): Delete.
2618 (register_ssa_partition): Remove 'is_use' paramater and don't set the
2620 (type_var_num, type_var, type_var_first_partition,
2621 type_var_next_partition, type_var_dump, type_var_delete,
2622 type_var_remove_partition, type_var_find, type_var_compact,
2623 type_var_decompact): Remove.
2625 2006-12-01 Bernd Schmidt <bernd.schmidt@analog.com>
2627 * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype
2630 2006-12-01 Richard Guenther <rguenther@suse.de>
2633 * dwarf2out.c (struct pubname_struct): Make name const.
2634 (add_pubtype): Do not xstrdup identifiers.
2636 2006-12-01 Bernd Schmidt <bernd.schmidt@analog.com>
2638 * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures
2639 multiword accesses are in range.
2641 2006-12-01 Zdenek Dvorak <dvorakz@suse.cz>
2643 PR tree-optimization/29921
2644 * tree-ssa-ccp.c (canonicalize_float_value): New function.
2645 (set_lattice_value): Use canonicalize_float_value.
2647 2006-11-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2649 * config/spu/spu.c (spu_builtin_range): Move from spu-c.c
2650 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete.
2651 (spu_cpu_cpp_builtins): Remove.
2652 (spu_override_options): Don't set warn_main.
2653 (spu_force_reg): Move from spu-c.c.
2654 (spu_check_builtin_parm): Likewise.
2655 (expand_builtin_args): Likewise.
2656 (spu_expand_builtin_1): Likewise.
2657 (spu_expand_builtin): Likewise.
2658 * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set
2659 warn_main and targetm.resolve_overloaded_builtin.
2660 * config/spu/spu-c.c (spu_builtin_range): Remove.
2661 (spu_check_builtin_parm): Remove.
2662 (expand_builtin_args): Remove.
2663 (spu_expand_builtin_1): Remove.
2664 (spu_expand_builtin): Remove.
2665 (spu_cpu_cpp_builtins): Moved from spu.c
2666 (spu_force_reg): Remove.
2668 2006-12-01 Joseph Myers <joseph@codesourcery.com>
2669 David Edelsohn <edelsohn@gnu.org>
2672 * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
2673 HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
2674 * defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
2675 HARD_REGNO_NREGS_WITH_PADDING): Define.
2676 * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
2677 HARD_REGNO_NREGS_WITH_PADDING): Define.
2678 * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
2679 Use new macros to detect modes with holes; do not look at integer
2681 (subreg_offset_representable_p): Check for and disallow cases
2682 where the modes use different numbers of bits from registers.
2683 * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
2684 constant for soft-float.
2685 (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
2687 (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
2688 in E500 double case.
2689 * config/rs6000/rs6000.md (movtf): Allow soft-float.
2690 (movtf_softfloat): New.
2692 2006-11-30 Richard Sandiford <richard@codesourcery.com>
2694 * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than
2695 simplify_gen_subreg.
2697 2006-11-30 Andrew Macleod <amacleod@redhat.com>
2699 * tree-ssa-live.c (create_coalesce_list): Create a hash table.
2700 (COALESCE_HASH_FN): New. Define hash function.
2701 (partition_pair_map_hash): New. Hash value for a partition pair.
2702 (partition_pair_map_eq): New. Equality for hash pairs.
2703 (create_coalesce_list): Create hash table.
2704 (delete_coalesce_list): Free hash table.
2705 (find_partition_pair): Find/create pairs in hash table.
2706 (compare_pairs): Sort pairs in ascending order now.
2707 (num_coalesce_pairs): New. Number of pairs in hash table.
2708 (struct partition_pair_iterator): Iterator struct for pair table.
2709 (first_partition_pair): Iterator function for first pair.
2710 (end_partition_pair_p): Iterator function for end of iteration.
2711 (next_partition_pair): Iterator function for next pair.
2712 (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
2713 (sort_coalesce_list): Sort pairs from hash table into an array.
2714 (pop_best_coalesce): Take pairs from the array.
2715 (dump_coalesce_list): Update to use hash table or sorted array.
2716 * tree-ssa-live.h (struct partition_pair_d): Remove next field.
2717 (struct coalesce_list_d): Add hash table related fields.
2719 2006-11-30 Jan Hubicka <jh@suse.cz>
2722 * builtins.c (fold_builtin_memory_op): Fix typo in the check for
2723 memmove/bcopy->memcpy conversion.
2725 2006-11-30 Carlos O'Donell <carlos@codesourcery.com>
2727 * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default.
2728 * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT):
2729 Default is the largest alignment supported for 32-bit ELF and
2730 representable on a 32-bit host.
2732 2006-11-30 Janis Johnson <janis187@us.ibm.com>
2734 * config/dfp-bit.c (DFP_TO_INT): Use wider precision.
2736 2006-11-30 Jan Hubicka <jh@suse.cz>
2738 * tree-ssa-operands.h (struct ssa_operands): New.
2739 * tree-flow-inline.h (gimple_ssa_operands): New function.
2740 * tree-flow.h: (struct gimple_df): Add ssa_operands.
2741 * Makefile.in: Remove gt-tree-ssa-operands.h
2742 * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h
2743 (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs,
2744 operand_memory, operand_memory_index, ops_active): Remove statics.
2745 (ALLOC_OPTYPE): Update.
2746 (operand_build_sort_virtual): Update.
2747 (ssa_operands_active): Update.
2748 (init_ssa_operands): Update.
2749 (fini_ssa_operands): Update.
2750 (ssa_operand_alloc): Update.
2751 (INITIALIZE_USE): Update.
2752 (finalize_ssa_use_ops): Update.
2753 (finalize_ssa_v_may_def_ops): Update.
2754 (finalize_ssa_vuse_ops): Update.
2755 (finalize_ssa_v_must_def_ops): Update.
2757 2006-11-30 Richard Guenther <rguenther@suse.de>
2759 * tree-vectorizer.h (vectorizable_function): Export.
2760 * tree-vect-transform.c (vectorizable_function): Likewise.
2761 * tree-vect-patterns.c (vect_recog_pow_pattern): Set
2762 type_in to scalar type in recognition of squaring.
2763 Make sure the target can vectorize sqrt in recognition
2764 of sqrt, set type_in to vector type in this case.
2766 2006-11-30 Uros Bizjak <ubizjak@gmail.com>
2768 * config/i386/i386.md (R10_REG): New constant.
2769 * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
2770 (ix86_emit_restore_regs_using_mov): Ditto.
2771 (ix86_expand_call): Ditto.
2772 (x86_output_mi_thunk): Ditto. Also use R10_REG.
2774 2006-11-30 Steven Bosscher <steven@gcc.gnu.org>
2776 * cselib.c (cselib_init): Use special MEM rtx form for callmem.
2777 * alias.c (canon_true_dependence): Update comment.
2779 2006-11-30 Steven Bosscher <steven@gcc.gnu.org>
2781 * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
2782 at the end of a diagnostics message.
2784 * alloc-pool.c (pool_free): Postpone clearing the pool entry
2785 until after asserting that it was allocated in the right pool.
2787 * cfgrtl.c (print_rtl_with_bb): Print predecessor and
2788 successor edge information as well. Make output of live regs
2789 on exit consistent with live regs on entry.
2791 2006-11-30 Uros Bizjak <ubizjak@gmail.com>
2794 * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable
2795 insn patterns for TARGET_80387.
2796 (*truncxfsf2_i387, *truncxfdf2_i387): Remove.
2797 (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387.
2798 (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387.
2799 (fmod<mode>3, remainder<mode>3): Enable expaders for SSE math.
2800 Generate truncxf<mode>2 insn patterns for strict SSE math.
2802 2006-11-30 Uros Bizjak <ubizjak@gmail.com>
2804 * config/i386/i386.md (movsf_1): Enable pattern for standard
2805 80387 constants before reload when optimizing for size.
2806 (*movdf_nointeger, *movdf_integer): Ditto.
2807 (*movxf_nointeger, *movxf_integer): Disable patterns for standard
2808 80387 constants before reload when not optimizing for size.
2810 (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
2811 extension of XFmode input operands.
2813 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
2815 * config/spu/crt0.c (__dso_handle): Define.
2817 2006-11-30 Kaz Kojima <kkojima@gcc.gnu.org>
2819 * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially
2820 when clearing the used flags.
2822 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
2824 * config/spu/spu.md (extend_compare): Fix whitespace formatting.
2826 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
2829 * config/spu/spu.md (extend_compare<mode>): New pattern.
2830 (extend_compare): Change to expand and use the above pattern.
2832 2006-11-29 Janis Johnson <janis187@us.ibm.com>
2834 * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode.
2836 * config/dfp-bit.h (CONTEXT_ROUND): Delete.
2837 (DFP_INIT_ROUNDMODE): Define.
2838 * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE.
2839 * mklibgcc.in: Fix dependencies for dfp-bit.c.
2841 2006-11-29 Tehila Meyzels <tehila@il.ibm.com>
2843 * haifa-sched.c: Remove define LINE_NOTE(INSN). Remove line_note_head.
2844 Update documentation.
2845 (associate_line_notes_with_blocks): Kill.
2846 (extend_bb): Remove basic block argument, put void instead.
2847 Remove line number handling for each bb.
2848 (save_line_notes): Kill.
2849 (restore_line_notes): Kill.
2850 (sched_init): Remove line_note_head initialization.
2851 Change extend_bb call.
2852 (sched_finish): Remove free of line_note_head.
2853 (add_block): Change extend_bb call.
2854 * sched-ebb.c (schedule_ebb): Remove save_line_notes,
2855 rm_line_notes and restore_line_notes calls.
2856 (schedule_ebbs): Remove rm_redundant_line_notes.
2857 * sched-int.h (struct haifa_insn_data): Remove line_note.
2858 (save_line_notes): Remove declaration.
2859 (restore_line_notes): Remove declaration.
2860 * modulo-sched.c (loop_canon_p): Update debug info printing
2861 by using insn locators instead of line note.
2862 (sms_schedule): Update debug info printing, by using insn
2863 locators instead of line note.
2864 * sched-rgn.c (debug_dependencies): Remove handling of case
2865 n>0 (line number), since it's a dead code.
2866 (schedule_region): Remove save_line_notes and
2867 restore_line_notes calls.
2869 2006-11-29 Joseph Myers <joseph@codesourcery.com>
2871 * config/rs6000/predicates.md (gpc_reg_operand): Check
2872 invalid_e500_subreg.
2873 * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
2874 SImode subregs of SPE vectors.
2875 * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
2876 * jump.c (true_regnum): Require subregs to satisfy
2877 subreg_offset_representable_p.
2879 2006-11-29 Daniel Berlin <dberlin@dberlin.org>
2880 Steven Bosscher <stevenb.gcc@gmail.com>
2882 * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h,
2883 since it no longer exists.
2885 2006-11-29 Duncan Sands <baldrick@free.fr>
2887 PR tree-optimization/23744
2888 * tree-vrp.c (vrp_meet): do not require ranges to intersect.
2890 2006-11-29 Duncan Sands <baldrick@free.fr>
2892 PR tree-optimization/23744
2893 * testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
2895 2006-11-29 Duncan Sands <baldrick@free.fr>
2897 PR tree-optimization/23744
2898 * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.
2900 2006-11-29 Jie Zhang <jie.zhang@analog.com>
2902 * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
2904 2006-11-29 J"orn Rennecke <joern.rennecke@st.com>
2906 * sh.opt (minline-ic_invalidate): New option.
2907 (musermode): Adjust comment.
2908 * sh.c (sh_initialize_trampoline): Emit library call unless
2909 is set; if it is set, don't emit library call if we can use icbi
2911 * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
2912 icbi for TARGET_SH4_300.
2913 * t-sh (LIB1ASMFUNCS_CACHE): Set.
2914 * doc/invoke.texi: Document -minline-ic_invalidate; Update
2915 -musermode documentation.
2917 2006-11-29 Jim Tison <jtison@us.ibm.com>
2919 * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
2920 __gthread_recursive_mutex_init): Define.
2922 2006-11-29 Joseph Myers <joseph@codesourcery.com>
2924 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
2925 STRICT_ALIGNMENT and the type is more aligned than the saved
2926 registers, copy via a temporary.
2928 2006-11-28 Andrew Pinski <pinskia@gmail.com>
2931 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
2934 2006-11-28 Bob Wilson <bob.wilson@acm.org>
2936 * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
2938 2006-11-28 Jan Hubicka <jh@suse.cz>
2940 Privatize SSA variables into gimple_df.
2941 * tree-flow-inline.h
2942 (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
2943 gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
2944 gimple_nonlocal_all): New accessors.
2945 (first_referenced_var): Update.
2946 (mark_stmt_modified): Update.
2947 (is_call_clobbered): Update.
2948 (mark_call_clobbered): Update.
2949 (clear_call_clobbered): Update.
2950 (mark_non_addressable): Update.
2951 * tree-vrp.c (get_value_range): Update.
2952 * tree-into-ssa.c (in_ssa_p): Kill.
2953 (get_default_def_for): Update.
2954 (rewrite_into_ssa): Update.
2955 * tree-complex.c (init_parameter_lattice_values): Update.
2956 (update_complex_assignment): Update.
2957 (update_parameter_components): Update.
2958 (expand_complex_libcall): Update.
2959 (expand_complex_operations_1): Update.
2960 * tree-tailcall.c (arg_needs_copy_p): Update.
2961 (add_virtual_phis): Update.
2962 (tree_optimize_tail_calls_1): Update.
2963 * tree-ssa-dse.c (memory_ssa_name_same): Update.
2964 * tree-ssa-copyrename.c
2965 (copy_rename_partition_coalesce): Update.
2966 * tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
2967 * tree-ssa-propagate.c (set_rhs): Update.
2968 * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
2969 addressable_vars, global_var):Kill.
2970 (set_initial_properties): Update.
2971 (init_alias_info): Update.
2972 (finalize_ref_all_pointers): Update.
2973 (setup_pointers_and_addressables): Update.
2974 (maybe_create_global_var): Update.
2975 (create_global_var): Update.
2976 (dump_points_to_info): Update.
2977 * function.h (struct gimple_df): Forward declare.
2978 (struct function): Add GIMPLE_DF field.
2979 * gimplify.c (force_gimple_operand): Update.
2980 * tree-dfa.c (referenced_vars, default_defs): KIll.
2981 (make_rename_temp): Update.
2982 (dump_variable): Update.
2983 (referenced_var_lookup): Update.
2984 (referenced_var_check_and_insert): Update.
2985 (default_def): Rename to ...
2986 (gimple_default_def): ... this one; accept cfun argument.
2987 (set_default_def): Update.
2988 * tree-cfgcleanup.c (modified_noreturn_calls): Kill.
2989 (cleanup_control_flow): Update.
2990 * tree-ssa-pre.c (compute_avail): Update
2991 * tree-ssa-live.c (calculate_live_on_entry): Update.
2992 * tree-ssa.c (verify_use): Update.
2993 (verify_call_clobbering): Update.
2994 (verify_call_clobbering): Update.
2995 (init_tree_ssa): Update.
2996 (delete_tree_ssa): Update.
2997 * tree-outof-ssa.c (coalesce_ssa_name): Update.
2998 (rewrite_out_of_ssa): Update.
2999 * tree-flow.h (gimple_df): New structure collecting dataflow variables.
3000 (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
3002 (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
3003 ssa_names, global_var, nonlocal_all, call_clobbered_vars,
3004 addressable_vars, aliases_computed_p): Kill.
3005 (default_def): Rename to...
3006 (gimple_default_def): ... this one.
3007 (defaule_def_fn): Kill.
3008 (num_referenced_vars, ssa_names, num_ssa_names): Update.
3009 * tree-ssa-structalias.c (nonlocal_all): Kill.
3010 (get_constraint_exp_from_ssa_var): Update.
3011 (create_nonlocal_var): Update.
3012 (get_constraint_for): Update.
3013 (update_alias_info): Update.
3014 (find_global_initializers): Update.
3015 (intra_create_variable_infos): Update.
3016 (intra_create_variable_infos):
3017 (find_what_p_points_to): Update.
3018 (init_alias_heapvars): Update.
3019 * tree-cfg.c (remove_bb): Update.
3020 (gimplify_val): Update.
3021 * tree-ssa-reassoc.c (get_rank): Update.
3022 (init_reassoc): Update.
3023 * tree-ssanames.c: Do not include gt-tree-ssanames.h
3024 (ssa_names, free_ssanames): Kill.
3025 (init_ssanames): Update.
3026 (make_ssa_name): Update.
3027 (release_ssa_name): Update.
3028 (release_defs): Update.
3029 (replace_ssa_name_symbol): Update.
3030 * tree-ssa-operands.c (access_can_touch_variable): Update.
3031 (add_virtual_operand): Update.
3032 (add_call_clobber_ops): Update.
3033 (add_call_read_ops): Update.
3034 (get_call_expr_operands): Update.
3035 (get_asm_expr_operands): Update.
3037 2006-11-28 Jan Hubicka <jh@suse.cz>
3039 * builtins.c: Include tree-flow.h.
3040 (fold_builtin_memory_op): Be more aggressive on converting memcpy to
3041 assignment; convert memmove to memcpy for sizes greater than 1 where
3042 alignment of operands prohibit the partial overlap.
3044 2006-11-28 Jan Hubicka <jh@suse.cz>
3046 * invoke.texi (large-stack-frame, large-stack-frame-growth): New params.
3047 * cgraph.c (dump_cgraph_node): Dump stack usage.
3048 * cgraph.h (cgraph_local_info): Add estimated_self_stack_size.
3049 (cgraph_global_info): Add estimated_stack_size and stack_frame_offset.
3050 * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes.
3051 * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage.
3052 (cgraph_check_inline_limits): Limit stack growth.
3053 * cfgexpand.c: Include tree-inline.h.
3054 (account_stack_vars): New function.
3055 (expand_one_var): New param to just account the stack; return estimated
3057 (expand_used_vars_for_block): Update call of expand_one_var.
3058 (account_used_vars_for_block): New function.
3059 (estimated_stack_frame_size): Likewise.
3060 (init_vars_expansion, fini_vars_expansion): Break out from..
3061 (expand_used_vars): ... here.
3062 * tree-inline.h (estimated_stack_frame_size): Declare.
3063 * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New.
3065 2006-11-28 Richard Guenther <rguenther@suse.de>
3067 * ggc-page.c (ggc_print_statistics): Use %ul and a cast to
3068 unsigned long for printing OBJECT_SIZE.
3070 2006-11-27 Steven Bosscher <steven@gcc.gnu.org>
3072 * alias.c (init_alias_analysis): Remove simplification loop
3073 after propagating pointers.
3075 2006-11-27 Uros Bizjak <ubizjak@gmail.com>
3077 * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
3080 2006-11-27 Bob Wilson <bob.wilson@acm.org>
3082 * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default.
3084 2006-11-27 Roger Sayle <roger@eyesopen.com>
3085 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3087 * c-common.c (constant_fits_type_p): Delete.
3088 (unsigned_conversion_warning): Delete.
3089 (conversion_warning): Integrate Wconversion warning from
3090 unsigned_conversion_warning.
3091 (convert_and_check): Integrate Woverflow warning from
3092 unsigned_conversion_warning. Reorganize and simplify to avoid
3093 dependence upon the middle-end setting TREE_OVERFLOW on integral
3094 conversions, by using int_fits_type_p directly.
3096 2006-11-27 Tobias Burnus <burnus@net-b.de>
3098 * doc/invoke.texi: Fixed typo.
3100 2006-11-27 Michael Matz <matz@suse.de>
3101 Andreas Krebbel <krebbel1@de.ibm.com>
3104 * config/s390/predicates.md (larl_operand): Check addend of larl
3105 operand to be in range of -/+2GB.
3106 * config/s390/s390.c (legitimize_pic_address): Likewise.
3107 Changed type of variable even to HOST_WIDE_INT.
3109 2006-11-27 Jan Hubicka <jh@suse.cz>
3111 * expr.c (emit_block_move_via_libcall): Export.
3112 (clear_storage_via_libcall): Rename to ...
3113 (set_storage_via_libcall): ... this one; handle arbitrary value to set.
3114 (clear_storage): Update to set_storage_via_libcall.
3115 * expr.h (emit_block_move_via_libcall): Declare
3116 * config/i386/i386.h (stringop_alg): New enum.
3117 (MAX_STRINGOP_ALGS): New constant.
3118 (stringop_algs): New struct.
3119 (processor_costs): Add memcpy/memset descriptors.
3120 (TARGET_REP_MOVEL_OPTIMAL): Remove.
3121 * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
3122 (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
3124 * config/i386/i386.opt (minline-stringops-dynamically,
3125 mstringop-strategy): New
3127 * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
3128 (ix86_expand-clrmem): Rename to ...
3129 (ix86_expand_setmem): ... this one; update prototype.
3130 * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
3131 (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
3132 geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
3133 nocona_cost, core2_cost, generic_cost, generic64_cost,
3134 generic32_cost): Add memcpy/memset descriptors.
3135 (x86_rep_movl_optimal): Remove.
3136 (stringop_alg): New static variable.
3137 (ix86_expand_aligntest): Handle predictions.
3138 (override_options): Add strgop_alg handling.
3139 (predict_jump): New function.
3140 (scale_counter): New function.
3141 (expand_set_or_movmem_via_loop): New function.
3142 (expand_movmem_via_rep_mov): New function.
3143 (expand_setmem_via_rep_stots): New function.
3144 (emit_strmov): New function.
3145 (expand_movmem_epilogue): New function.
3146 (expand_setmem_epilogue_via_loop): New function.
3147 (expand_setmem_epilogue): New function.
3148 (expand_movmem_prologue): New function.
3149 (expand_setmem_prologue): New function.
3150 (decide_alg): New function.
3151 (decide_alignment): New function.
3152 (ix86_exand_movmem): Rewrite.
3153 (promote_duplicated_reg): New function.
3154 (ix86_expand_clrmem): Rename to ...
3155 (ix86_expand_setmem): ... this one. Rewrite.
3157 * invoke.texi (minline-stringops-dynamically): New command line option.
3158 (mstringop-strategy): Likewise.
3160 2006-11-27 Jan Hubicka <jh@suse.cz>
3162 * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
3163 * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
3164 * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
3165 * insn-notes.def (FUNCTION_END): Remove.
3166 * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
3167 (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
3169 * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
3170 * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
3171 * cfglayout.c (duplicate_insn_chain): Don't worry about
3174 2006-11-27 Richard Guenther <rguenther@suse.de>
3175 Zdenek Dvorak <dvorakz@suse.cz>
3177 * target.h (struct gcc_target): Add builtin_vectorized_function
3179 * target-def.h (TARGET_VECTORIZE): Likewise.
3180 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
3181 Document new target hook.
3182 * targhooks.h (default_builtin_vectorized_function): Declare.
3183 * targhooks.c (default_builtin_vectorized_function): Define.
3184 * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
3185 (vectorizable_call): Declare.
3186 * tree-vect-analyze.c (vect_analyze_operations): Call
3188 * tree-vect-transform.c (vectorizable_function): New static function.
3189 (build_vectorized_function_call): Likewise.
3190 (vectorizable_call): New function.
3191 (vect_transform_stmt): Handle vectorizable calls.
3193 2006-11-27 Richard Guenther <rguenther@suse.de>
3196 * builtins.c (expand_builtin_pow): Optimize non integer valued
3197 constant exponents using sqrt or cbrt if possible. Always fall back
3198 to expanding via optabs.
3200 2006-11-27 Ira Rosen <irar@il.ibm.com>
3202 PR tree-optimization/22372
3203 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
3204 the type of the base address.
3205 (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
3206 it in the data-ref pointer creation.
3207 (vect_init_vector): Add an argument, type of the init vector. Use it in
3209 (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
3210 (get_initial_def_for_reduction): Likewise.
3211 (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
3213 (vectorizable_assignment, vect_permute_store_chain): Likewise.
3214 (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
3215 correct type in stmt creation.
3216 (vect_setup_realignment): Use the correct type in stmt creation.
3217 (vect_permute_load_chain): Change type of MODIFY_EXPR to
3219 (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
3220 of MODIFY_EXPR to void_type_node.
3221 (vectorizable_condition): Change type of MODIFY_EXPR to
3223 (vect_update_ivs_after_vectorizer): Use the correct type in stmt
3226 2006-11-27 Uros Bizjak <ubizjak@gmail.com>
3229 2006-05-08 Uros Bizjak <uros@kss-loka.si>
3230 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
3231 standard 80387 constants, raise the cost to prevent
3232 compress_float_constant() to generate load from memory.
3234 * config/i386/i386.md: Add new splitter pattern to split
3235 float_extended load of constant from constant pool into
3238 2006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3240 * doc/install.texi: Move GMP/MPFR configure options from Fortran
3241 section to general section. Remove documentation for
3242 --with-mpfr-dir and --with-gmp-dir, add documentation for
3243 --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
3246 * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
3248 2006-11-26 Razya Ladklesky <razya@il.ibm.com>
3250 * testsuite/gcc.dg/ipa/ipa-6.c: New.
3252 2006-11-26 Razya Ladklesky <razya@il.ibm.com>
3254 PR tree-optimization/29122
3255 * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
3256 for the new version. Assign NULL to DECL_RTL of the new version.
3258 2006-11-25 Uros Bizjak <ubizjak@gmail.com>
3260 * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
3262 2006-11-25 Steven Bosscher <steven@gcc.gnu.org>
3264 * cse.c (cse_altered): Remove.
3265 (record_jump_equiv): Make true/false argument a bool instead
3267 (cse_insn): Don't set cse_altered. Use delete_insn_and_edges
3268 where appropriate. Emit a new jump before the existing one
3269 instead of after so that delete_insn_and_edges removes the
3270 dead edges properly. Check any_condjump_p before calling
3272 (cse_basic_block): Check any_condjump_p before calling
3274 (cse_main): Don't set/check cse_altered. Remove USE_C_ALLOCA.
3276 2006-11-25 Brooks Moses <brooks.moses@codesourcery.com>
3278 * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
3279 -ffixed-line-length-* options.
3281 2006-11-25 Uros Bizjak <ubizjak@gmail.com>
3283 * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
3284 (fprem1xf4): Rename to fprem1xf4_i387.
3286 (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
3287 Rename patterns to fmod<mode>3. Use general_operand operand
3288 constraint for operands 1 and 2. Use SSE_FLOAT_MODE_P to disable
3289 patterns for SSE math.
3290 (remaindersf3, remainderdf3): Ditto.
3292 2006-11-25 Joseph Myers <joseph@codesourcery.com>
3294 * function.c (instantiate_virtual_regs_in_insn): Call force_reg
3295 inside start_sequence / end_sequence pair.
3297 2006-11-25 Steven Bosscher <steven@gcc.gnu.org>
3299 * jump.c (mark_all_labels): Work in cfglayout mode.
3300 * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
3301 when in cfglayout mode, because there are no dead jumptables
3303 * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
3305 (commit_edge_insertions): Do not allow insertion of instructions
3306 with control flow insns when in cfglayout mode.
3308 2006-11-25 Zdenek Dvorak <dvorakz@suse.cz>
3310 * tree-vrp.c (execute_vrp): Do not pass loops structure through
3312 * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
3313 unswitch_loop): Ditto.
3314 * tree-loop-linear.c (linear_transform_loops): Ditto.
3315 * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
3316 tree_ssa_lim): Ditto.
3317 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
3318 free_numbers_of_iterations_estimates): Ditto.
3319 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
3320 tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
3321 * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
3322 remove_path, add_loop, loopify, unloop, fix_loop_placements,
3323 place_new_loop, duplicate_loop, duplicate_subloops,
3324 update_single_exit_for_duplicated_loops, copy_loops_to,
3325 duplicate_loop_to_header_edge, create_preheaders,
3326 force_single_succ_latches, loop_version, fix_loop_structure):
3328 * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
3329 tree_unroll_loop): Ditto.
3330 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3331 * tree-scalar-evolution.c (select_loops_exit_conditions,
3332 scev_initialize, scev_analysis): Ditto.
3333 * tree-scalar-evolution.h (scev_initialize): Ditto.
3334 * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
3335 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
3336 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
3337 * modulo-sched.c (sms_schedule): Ditto.
3338 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
3339 * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
3340 rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
3341 * ifcvt.c (if_convert): Ditto.
3342 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
3343 canonicalize_loop_induction_variables,
3344 canonicalize_induction_variables,
3345 tree_unroll_loops_completely, remove_empty_loops): Ditto.
3346 * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
3347 tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
3348 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
3349 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
3350 tree_ssa_loop_done): Ditto.
3351 * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
3352 estimate_bb_frequencies): Ditto.
3353 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
3354 slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
3355 * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
3356 decide_unrolling_and_peeling, peel_loop_completely,
3357 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
3358 peel_loop_simple, unroll_loop_stupid): Ditto.
3359 * loop-doloop.c (doloop_optimize_loops): Ditto.
3360 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
3361 * loop-invariant.c (move_loop_invariants): Ditto.
3362 * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
3363 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
3364 tree_ssa_prefetch_arrays): Ditto.
3365 * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
3367 * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
3368 vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
3369 * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
3370 mark_single_exit_loops, cancel_loop, cancel_loop_tree,
3371 verify_loop_structure): Ditto.
3372 * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
3373 canonicalize_induction_variables, tree_unroll_loops_completely,
3374 tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
3375 estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
3376 tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
3377 tree_unroll_loop, linear_transform_loops): Declaration changed.
3378 * basic-block.h: Remove declaration of struct loops.
3379 * cfghooks.h (struct cfg_hooks): Change type of
3380 cfg_hook_duplicate_loop_to_header_edge.
3381 (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
3382 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
3383 vect_transform_loop): Declaration changed.
3384 * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
3385 * cfgloop.h (flow_loops_dump, fix_loop_structure,
3386 mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
3387 cancel_loop_tree, create_preheaders, force_single_succ_latches,
3388 verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
3389 loopify, loop_version, remove_path, unswitch_loops,
3390 unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
3391 Declaration changed.
3393 2006-11-24 Uros Bizjak <ubizjak@gmail.com>
3395 * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
3396 (X87MODEF): New mode macro.
3397 (ssemodefsuffix): New mode attribute.
3398 (truncxf<mode>2_i387_noop_unspec): New insn pattern.
3399 (sqrt_extend<mode>xf2_i387): New insn pattern.
3400 (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
3401 insn and truncate result back to original mode using
3402 UNSPEC_TRUNC_NOOP truncation.
3403 (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
3404 ssemodefsuffix mode attribute.
3405 (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
3406 (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
3407 (*sqrtextenddfxf2_i387): Remove insn patterns.
3409 (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
3410 truncation patterns.
3412 * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
3414 2006-11-24 Jakub Jelinek <jakub@redhat.com>
3417 * c-tree.h (c_maybe_initialize_eh): New prototype.
3418 * c-decl.c (finish_decl): Move EH initialization...
3419 (c_maybe_initialize_eh): ... here. New function.
3420 * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
3421 if not #pragma omp atomic.
3424 * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
3425 or UNION_TYPE inner types.
3427 2006-11-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
3430 * ipa-pure-const.c (check_tree): If the original tree
3431 is volatile return early and say the function is not pure
3432 nor const. Remove the volatile check for writes.
3433 (analyze_function): Print out the result of the local
3436 2006-11-24 Joseph Myers <joseph@codesourcery.com>
3438 * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
3440 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
3441 * config/rs6000/rs6000.c (rs6000_override_options): Use
3442 MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to
3445 2006-11-24 Andreas Krebbel <krebbel1@de.ibm.com>
3447 * config/s390.c (s390_emit_compare_and_swap): New function.
3448 (s390_expand_cs_hqi, s390_expand_atomic): Call
3449 s390_emit_compare_and_swap.
3451 2006-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3453 * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
3455 2006-11-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3459 * c-common.c (conversion_warning): New.
3460 (convert_and_check): Call conversion_warning unless there is an
3462 * doc/invoke.texi (-Wconversion): Update description.
3464 2006-11-23 Daniel Berlin <dberlin@dberlin.org>
3466 * tree-ssa-alias.c (tree_pointer_compare): New function.
3467 (compact_name_tags): New function.
3468 (group_aliases): Call compact_name_tags.
3470 2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3472 * real.h (real_isinteger): Declare.
3473 * real.c (real_isinteger): Define.
3474 * builtins.c (integer_valued_real_p): Use it.
3476 2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3479 * c.opt (Wtraditional-conversion): New.
3480 (Wconversion): Update description.
3481 * c-typeck.c (convert_arguments): Warnings for prototypes causing
3482 type conversions different from what would happen in the absence
3483 of prototype are now handled by Wtraditional-conversion.
3484 * doc/invoke.texi (Wtraditional-conversion): New.
3485 (Wconversion): Update description.
3486 * doc/trouble.texi (Wconversion): Replace Wconversion by
3487 Wtraditional-conversion.
3489 2006-11-23 Andrew Pinski <pinskia@gmail.com>
3491 * predict.c (tree_estimate_probability): Check to make
3492 sure current_loops is non null before calling flow_loops_dump.
3494 2006-11-23 Bernd Schmidt <bernd.schmidt@analog.com>
3496 * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
3498 2006-11-23 David Ung <davidu@mips.com>
3500 * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
3502 (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
3503 (ASM_SPEC): Pass along -mfp32 and -mfp64.
3504 * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
3505 high part of FP register when in 64-bit FP register mode. Similarly
3506 use gen_mfhc1 to load high part of FP register.
3507 (override_options): Allow -mgp32 and -mfp64 combination if
3508 ISA_HAS_MXHC1 (currently for O32 only).
3509 (mips_cannot_change_mode_class): If floating-point registers are
3510 bigger than word size. disallow conversion of float register from a
3511 large integer mode to a float mode smaller than the float register
3513 (mips_class_max_nregs): Handle float registers case seperately.
3514 * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
3516 (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
3517 (movdf_hardfloat_32bit): Similarly.
3518 (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
3519 support a full 64-bit fpu.
3520 (mthc1): New pattern to generate MTHC1 instruction.
3521 (mfhc1): New pattern to generate MFHC1 instruction.
3522 * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
3523 option for the MIPS32R2 and mention its use under O32 ABI.
3525 2006-11-23 Bernd Schmidt <bernd.schmidt@analog.com>
3527 * var-tracking.c (emit_note_insn_var_location): Take care not to
3528 cause verify_flow_info failures.
3530 2006-11-22 Daniel Berlin <dberlin@dberlin.org>
3532 * tree-ssa-structalias.c: Remove edge weights in favor of just
3533 processing them as complex constraints.
3534 (struct constraint_graph): Remove weighted succs and preds. Rename
3535 nonweighted succs and preds.
3536 (constraint_edge): Removed.
3537 (constraint_edge_t): Ditto.
3538 (constraint_edge_pool): Ditto.
3539 (new_constraint_edge): Ditto.
3540 (constraint_edge_equal): Ditto.
3541 (constraint_edge_less): Ditto.
3542 (constraint_edge_vec_find): Ditto.
3543 (erase_self_graph_edge): Ditto.
3544 (add_graph_edge): Removed.
3545 (get_graph_weights): Ditto.
3546 (allocate_graph_weights): Ditto.
3547 (valid_weighted_graph_edge): Ditto
3548 (bitmap_other_than_zero_bit_set): Ditto.
3549 (int_add_graph_edge): Renamed to add_graph_edge.
3550 (clear_edges_for_node): Remove support for weighted edges.
3551 (merge_graph_nodes): Ditto.
3552 (valid_graph_edge): Ditto.
3553 (build_constraint_graph): Ditto.
3555 (collapse_nodes): Ditto.
3556 (process_unification_queue): Ditto.
3557 (topo_visit): Ditto.
3558 (do_ds_constraint): Ditto.
3559 (perform_var_subsitution): Ditto.
3560 (solve_graph): Ditto.
3561 (init_alias_vars): Ditto.
3562 (delete_points_to_sets): Ditto.
3563 (do_complex_constraint): Support offsetted copies here.
3565 2006-11-23 Ulrich Weigand <uweigand@de.ibm.com>
3567 * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
3569 * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
3571 * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
3574 2006-11-23 Ben Elliston <bje@au.ibm.com>
3576 * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
3578 2006-11-23 Zdenek Dvorak <dvorakz@suse.cz>
3580 PR tree-optimization/29921
3581 * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
3582 signed and unsigned zero equal.
3584 2006-11-22 Peter Bergner <bergner@vnet.ibm.com>
3586 * config/rs6000/rs6000.c (get_store_dest): New.
3587 (adjacent_mem_locations): Use get_store_dest() to get
3588 the rtl of the store destination.
3590 2006-11-22 Joseph Myers <joseph@codesourcery.com>
3592 * config/rs6000/spe.md (SPE64): New mode macro.
3593 (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0. Add
3595 (mov_si<mode>_e500_subreg0_2): New.
3596 (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4. Add
3598 (mov_si<mode>_e500_subreg4_2): New.
3599 * config/rs6000/predicates.md (input_operand): Do not allow
3600 invalid E500 subregs.
3601 (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
3603 * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
3604 involving DFmode if TARGET_E500_DOUBLE. Check for subregs
3605 involving vector modes if TARGET_SPE.
3607 2006-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
3610 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
3611 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
3613 2006-11-22 Bernd Schmidt <bernd.schmidt@analog.com>
3615 * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
3616 mem_i_address_operand): New predicates.
3617 * config/bfin/bfin.c (bfin_issue_rate): New function.
3618 (TARGET_SCHED_ISSUE_RATE): New macro.
3619 * config/bfin/bfin.md (addrtype): New attribute.
3620 (slot0, slot1, slot2, store, pregs): New cpu_units.
3621 (core): Now a define_reservation.
3622 (alu): Remove some insn types from this reservation.
3623 (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
3625 (dummy reservation): Don't trigger for mcld insns.
3626 (absence_sets): Two new absence sets to enforce slot ordering.
3627 (popsi_insn): Set addrtype.
3629 2006-11-22 Ira Rosen <irar@il.ibm.com>
3631 * doc/c-tree.texi: Document new tree codes.
3632 * doc/md.texi: Document new optabs.
3633 * tree-pretty-print.c (dump_generic_node): Handle print of new tree
3635 * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
3636 * optabs.h (optab_index): Add new.
3637 (vec_extract_even_optab, vec_extract_odd_optab,
3638 vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
3639 * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
3640 vec_interleave_high_optab, vec_interleave_low_optab): Initialize
3642 * expr.c (expand_expr_real_1): Add implementation for new tree codes.
3643 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
3644 * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
3645 along with macros for their access.
3646 * tree-data-ref.h (first_location_in_loop, data_reference): Update
3648 * tree-vect-analyze.c (toplev.h): Include.
3649 (vect_determine_vectorization_factor): Fix indentation.
3650 (vect_insert_into_interleaving_chain,
3651 vect_update_interleaving_chain, vect_equal_offsets): New functions.
3652 (vect_analyze_data_ref_dependence): Add argument for interleaving
3653 check. Check for interleaving if it's true.
3654 (vect_check_dependences): New function.
3655 (vect_analyze_data_ref_dependences): Call vect_check_dependences for
3656 every ddr. Call vect_analyze_data_ref_dependence with new argument.
3657 (vect_update_misalignment_for_peel): Update for interleaving.
3658 (vect_verify_datarefs_alignment): Check only first data-ref for
3660 (vect_enhance_data_refs_alignment): Update for interleaving. Check
3661 only first data-ref for interleaving.
3662 (vect_analyze_data_ref_access): Check interleaving, update
3664 (vect_analyze_data_refs): Call compute_data_dependences_for_loop
3665 with different parameters.
3666 * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
3667 VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
3668 * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
3669 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3670 Update step in case of interleaving.
3671 (vect_strided_store_supported, vect_permute_store_chain): New
3673 (vectorizable_store): Handle strided stores.
3674 (vect_strided_load_supported, vect_permute_load_chain,
3675 vect_transform_strided_load): New functions.
3676 (vectorizable_load): Handle strided loads.
3677 (vect_transform_stmt): Add argument. Handle strided stores. Check
3678 that vectorized stmt exists for patterns.
3679 (vect_gen_niters_for_prolog_loop): Update calculation for
3681 (vect_transform_loop): Remove stmt_vec_info for strided stores after
3682 whole chain vectorization.
3683 * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
3684 UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
3685 (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
3686 vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
3687 vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
3689 2006-11-22 Steven Bosscher <steven@gcc.gnu.org>
3691 * cse.c (enum taken): Remove PATH_AROUND.
3692 (addr_affects_sp_p, invalidate_skipped_set,
3693 invalidate_skipped_block): Remove.
3694 (cse_end_of_basic_block): Remove skip_blocks and related code.
3695 (cse_main): Don't test for flag_cse_skip_blocks.
3696 Update cse_end_of_basic_block call.
3697 (cse_basic_block): Likewise. Remove PATH_AROUND case. Remove
3698 code to lengthen the path if a jump was simplified.
3700 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
3702 PR rtl-optimization/29924
3703 * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
3704 (unroll_loop_runtime_iterations): Assert that the argument passed to
3705 split_edge_and_insert is not NULL.
3706 * loop-doloop.c (add_test): Ditto.
3708 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
3710 * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
3712 * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
3713 * cfgloopmanip.c (update_single_exits_after_duplication,
3714 update_single_exit_for_duplicated_loop, loop_version): Ditto.
3715 * tree-scalar-evolution.c (get_loop_exit_condition,
3716 get_exit_conditions_rec, loop_closed_phi_def,
3717 number_of_iterations_in_loop, scev_const_prop): Ditto.
3718 * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
3719 * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
3721 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
3723 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
3724 slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
3725 slpeel_make_loop_iterate_ntimes,
3726 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
3727 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
3729 * tree-if-conv.c (if_convertible_loop_p): Ditto.
3730 * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
3731 vect_analyze_loop_form): Ditto.
3732 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
3733 can_convert_to_perfect_nest, perfect_nestify): Ditto.
3734 * tree-vect-transform.c (vect_create_epilog_for_reduction,
3735 vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
3736 vect_transform_loop): Ditto.
3737 * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
3738 (single_exit, set_single_exit): New functions.
3739 * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
3740 (single_exit, set_single_exit): Declare.
3741 * doc/loop.texi: Undocument single_exit field. Document single_exit
3744 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
3746 PR tree-optimization/29902
3747 * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
3748 any involved ssa name appears in abnormal phi node.
3750 2006-11-21 Bob Wilson <bob.wilson@acm.org>
3752 * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
3753 (xtensa_const_ok_for_letter_p): Delete.
3754 (xtensa_extra_constraint): Delete.
3755 (override_options): Delete xtensa_char_to_class initialization.
3756 * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
3757 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3758 (EXTRA_CONSTRAINT): Delete.
3759 * config/xtensa/xtensa.md: Include constraints.md.
3760 (call_internal): Combine alternatives.
3761 (call_value_internal): Likewise, and remove invalid constraints.
3762 * config/xtensa/constraints.md: New file.
3763 * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
3764 (xtensa_extra_constraint): Delete.
3765 * doc/md.texi (Machine Constraints): Refer to constraints.md for
3768 2006-11-21 Janis Johnson <janis187@us.ibm.com>
3770 * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
3771 of conversion that doesn't fit.
3773 * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
3774 * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
3775 DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
3777 * config/dfp-bit.c (dfp_binary_func): Fix typedef.
3779 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
3781 * c-common.h (enum rid): Add RID_STATIC_ASSERT.
3783 2006-11-21 Richard Guenther <rguenther@suse.de>
3785 * tree-vectorizer.h (NUM_PATTERNS): Increase.
3786 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
3787 vect_recog_pow_pattern.
3788 (vect_recog_pow_pattern): New function.
3790 2006-11-21 Bernd Schmidt <bernd.schmidt@analog.com>
3792 * config/bfin/bfin.opt (mstack-check-l1): New.
3793 * doc/invoke.texi (Blackfin Options): Document it.
3794 * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
3795 stack bounds in L1 memory if the new option is enabled.
3796 (override_options): Don't allow combinations of -fstack-limit and
3798 (add_to_reg): Renamed from add_to_sp. All callers changed. Lose some
3801 * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
3803 (bfin_register_move_cost): Bump costs if trying to move plain
3804 integer values through accumulators.
3806 2006-11-21 Ben Elliston <bje@au.ibm.com>
3808 * config/spu/spu.c (spu_expand_vector_init): Initialise x.
3810 2006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3811 Russell Olsen <Russell_Olsen@playstation.sony.com>
3812 Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
3813 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
3814 Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
3815 Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
3816 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
3818 * config.gcc: Add target for SPU.
3819 * config/spu/constraints.md: New file.
3820 * config/spu/crt0.c: New file.
3821 * config/spu/crtend.c: New file.
3822 * config/spu/crti.asm: New file.
3823 * config/spu/crtn.asm: New file.
3824 * config/spu/float_unsdidf.c: New file.
3825 * config/spu/float_unssidf.c: New file.
3826 * config/spu/predicates.md: New file.
3827 * config/spu/spu-builtins.def: New file.
3828 * config/spu/spu-builtins.h: New file.
3829 * config/spu/spu-builtins.md: New file.
3830 * config/spu/spu-c.c: New file.
3831 * config/spu/spu-elf.h: New file.
3832 * config/spu/spu-modes.def: New file.
3833 * config/spu/spu-protos.h: New file.
3834 * config/spu/spu.c: New file.
3835 * config/spu/spu.h: New file.
3836 * config/spu/spu.md: New file.
3837 * config/spu/spu.opt: New file.
3838 * config/spu/spu_internals.h: New file.
3839 * config/spu/spu_intrinsics.h: New file.
3840 * config/spu/spu_mfcio.h: New file.
3841 * config/spu/t-spu-elf: New file.
3842 * config/spu/vec_types.h: New file.
3843 * config/spu/vmx2spu.h: New file.
3844 * doc/contrib.texi: Document SPU contributor.
3845 * doc/extend.texi: Document SPU extensions.
3846 * doc/invoke.texi: Document SPU options.
3847 * doc/md.texi: Document SPU constraints.
3849 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
3851 * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
3853 * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
3855 (flow_loop_dump): Do not dump loop level.
3856 (flow_loops_find): Do not call flow_loops_level_compute.
3857 * cfgloop.h (struct loop): Remove level field.
3859 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
3861 * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
3862 hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
3863 Use vector of edges instead of array.
3864 * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
3865 estimate_numbers_of_iterations_loop): Ditto.
3866 * predict.c (predict_loops): Ditto.
3867 * loop-unroll.c (analyze_insns_in_loop): Ditto.
3868 * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
3870 * basic-block.h: Declare heap allocation for edge vectors.
3871 * tree-outof-ssa.c: Ditto.
3872 * cfgloop.c (get_loop_exit_edges): Return vector of edges.
3873 * cfgloop.h (get_loop_exit_edges): Declaration changed.
3875 2006-11-20 Zack Weinberg <zackw@panix.com>
3877 * gengtype.c (process_gc_options): Remove unnecessary forward decl.
3878 Add another out parameter, "skip".
3879 (set_gc_used_type): Adjust calls to process_gc_options. If a field
3880 is tagged "skip", do not mark its type used.
3882 2006-11-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
3885 * tree-sra.c (single_scalar_field_in_record_p): New function.
3886 (decide_block_copy): Use it.
3888 2006-11-20 David Daney <ddaney@avtrex.com>
3890 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
3891 PC to point to following instruction.
3893 2006-11-20 Anatoly Sokolov <aesok@post.ru>
3897 * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
3899 * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
3901 2006-11-20 J"orn Rennecke <joern.rennecke@st.com>
3903 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
3904 Add sh/superh.h to tm_file.
3906 2006-11-20 Carlos O'Donell <carlos@codesourcery.com>
3907 Mark Mitchell <mark@codesourcery.com>
3909 * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and
3911 (cpp_relocated): New function.
3912 * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix
3914 * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
3915 * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
3916 replace configured prefix with gcc_exec_prefix.
3918 2006-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
3920 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
3921 bfin_legitimate_constant_p.
3922 * config/bfin/bfin.md (movsi expander): Check return value of
3924 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
3925 (expand_move): Adjust prototype.
3926 * config/bfin/bfin.c (expand_move): Now returns bool. Handle
3927 invalid constants specially.
3928 (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
3930 (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
3932 * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
3933 sibcall_value_symbol): Allow these patterns if
3934 TARGET_LEAF_ID_SHARED_LIBRARY.
3935 * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
3936 (override_options): Turn on id shared library flags if -msep-data,
3937 but disallow the combination of these options on the command line.
3938 * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
3939 MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
3940 (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
3941 -mid-shared-library.
3942 (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
3943 * doc/invoke.texi (Blackfin Options): Document new switches.
3945 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
3946 edge cases with local functions and TARGET_ID_SHARED_LIBRA