1 2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3 * longlong.h (__clz_tab): Always provide.
5 2005-11-11 Steven Bosscher <stevenb@suse.de>
8 * loop-invariant.c (may_assign_reg_p): Make sure a hard register
10 (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
11 before check_maybe_invariant.
12 (move_invariant_reg): Use gen_move_insn instead of replacing
13 SET_DEST with the temporary for the invariant.
14 (move_loop_invariants): If checking is enabled, do internal
15 consistency checks after completing the pass.
17 2005-11-11 David Edelsohn <edelsohn@gnu.org>
20 * common.opt (Wvolatile-register-var): New.
21 * varasm.c (make_decl_rtl): Only emit warning when option
22 specified. Clarify warning message.
23 * doc/invoke.texi (Wvolatile-register-var): Document new option.
25 * doc/md.texi (copysign): Document standard named pattern.
27 2005-11-11 Jie Zhang <jie.zhang@analog.com>
29 * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
30 bytes when align is 2.
31 * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
32 by the first instruction of the loop.
34 2005-11-11 Jason Merrill <jason@redhat.com>
37 * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
40 2005-11-11 Zdenek Dvorak <dvorakz@suse.cz>
42 PR rtl-optimization/22509
43 * local-alloc.c (memref_used_between_p): Check whether a function call
44 could not reference the memref.
46 2005-11-11 Ulrich Weigand <uweigand@de.ibm.com>
48 * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
49 algorithm so as to choose the best, not the worst, alternative.
50 Reset accumulated register class before processing next alternative.
52 2005-11-11 Kaz Kojima <kkojima@gcc.gnu.org>
55 * calls.c (expand_call): Copy a return value to a plain register
58 2005-11-10 Alexandre Oliva <aoliva@redhat.com>
61 * varasm.c (assemble_name): Recompute name only for transparent
64 2005-11-10 Hans-Peter Nilsson <hp@axis.com>
66 * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
68 2005-11-04 Jeff Law <law@redhat.com>
71 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
72 perform reassociation if the parent statement will not die as
73 a result of the optimization.
75 2005-11-10 Daniel Berlin <dberlin@dberlin.org>
77 * tree-ssa-alias.c (compute_may_aliases): Remove call to
79 * tree-dfa.c (referenced_var_remove): Remove function.
80 * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
81 (delete_tree_ssa): Remove call to delete_old_heapvars.
82 Add call to delete_alias_heapvars.
83 * tree-flow.h (referenced_var_remove): Remove prototype
84 (init_alias_heapvars): New prototype.
85 (delete_alias_heapvars): Ditto.
86 * Makefile.in (tree-ssa-structalias.o): Add
87 gt-tree-ssa-structalias.o
88 (GTFILES): Add tree-ssa-structalias.h and
89 tree-ssa-structalias.c.
90 (s-gtype): Add gt-tree-ssa-structalias.h.
91 * tree-ssa-structalias.c (heapvars): Remove.
92 (oldheapvars): Remove.
93 (heapvar_for_stmt): New variable.
94 (heapvar_lookup): New function.
95 (heapvar_insert): Ditto.
96 (get_constraint_for): See if we have an old heapvar
98 (init_alias_heapvars): New function.
99 (delete_alias_heapvars): Ditto.
100 Add include of gt-tree-ssa-structalias.h.
102 2005-11-10 Eric Botcazou <ebotcazou@libertysurf.fr>
105 * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
107 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
109 * tree.c (int_fits_type_p): Only look at the base type
110 if it has the same precision as the original type.
112 2005-11-10 Jakub Jelinek <jakub@redhat.com>
115 * varasm.c (assemble_alias): Use %q+D in the error
116 message instead of %J and %qD.
118 2005-11-10 Richard Guenther <rguenther@suse.de>
120 * gcse.c (free_ldst_entry): Only free hashtable if
123 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
125 * function.c (assign_stack_local_1): Issue an error message if
126 the frame size overflows in the signed target arithmetics.
128 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
130 * tree.c (build_qualified_type): Chain the new type to the original
131 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
132 a POINTER_TYPE or a REFERENCE_TYPE respectively.
133 (build_pointer_type_for_mode): Only return unqualified types.
134 (build_reference_type_for_mode): Likewise.
136 2005-11-09 Jakub Jelinek <jakub@redhat.com>
138 * Makefile.in (gnucompare): Do comparison of all files using one of
139 the chosen methods and only afterwards decide if just warning should
140 be issued or comparison failure raised.
142 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
144 * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
145 (noce_try_abs): Negate if the comparison is reversed.
146 Look only one instruction backwards for a REG_EQUAL note.
148 2005-11-09 Alexandre Oliva <aoliva@redhat.com>
151 * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
152 gthr-tpf.h: Define __gthrw. For all identifiers that might
153 be weak, introduce weakrefs or non-weak aliases with __gthrw,
154 and prefix all uses with __ghtrw.
156 2005-11-09 Alexandre Oliva <aoliva@redhat.com>
159 * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
160 (TREE_DEPRECATED): Adjust comment. Check for a DECL.
161 * c-common.c (handle_weakref_attribute): New.
162 (c_common_attribute_table): Add weakref.
163 * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
165 * configure, config.in: Rebuilt.
166 * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
167 * doc/extend.texi: Document weakref attribute.
168 * varasm.c (ultimate_transparent_alias_target): New
169 (assemble_name): Use it.
170 (weak_finish_1): Split out of...
171 (weak_finish): ... and deal with weakrefs in...
172 (weakref_targets): ... new list.
173 (globalize_decl): Clean up weakref_targets.
174 (do_assemble_alias): Handle weakrefs.
175 (finish_aliases_1): Do not reject weakrefs to external symbols.
176 (assemble_alias): Handle weakrefs.
178 2005-11-09 Richard Guenther <rguenther@suse.de>
180 PR tree-optimization/24716
181 * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
182 t_bool to track results from follow_ssa_edge.
184 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
186 * final.c (force_source_line): New global variable.
187 (final_scan_insn): Set it to true instead of clearing last_filename.
188 (notice_source_line): Return true if force_source_line is true,
189 unless source info is absent.
191 2005-11-09 Andrew Pinski <pinskia@physics.uc.edu>
194 * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
195 a linkage name for a variable if it a register variable.
196 * c-decl.c (grokdeclarator): Global register variables
197 should be set as PUBLIC.
199 2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
202 * config/s390/s390.c (struct s390_frame_layout): New fields
203 first_save_gpr_slot and last_save_gpr_slot.
204 (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
205 s390_emit_epilogue, s390_initial_elimination_offset): Replaced
206 first_save_gpr and last_save_gpr with the _slot variants.
207 (s390_register_info): Calculate first_save_gpr_slot and
208 last_save_gpr_slot using regs_ever_live.
210 2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
213 * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
214 for a function containing a landing pad.
216 2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
219 * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
222 2005-11-08 Bernd Schmidt <bernd.schmidt@analog.com>
224 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
225 MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
227 2005-11-09 Nathan Sidwell <nathan@codesourcery.com>
230 * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
232 (call,load,store): New insn types.
233 (mem_access, branch_access): Adjust reservation conditions.
234 (define_delay): Adjust condition.
235 (decrement_and_branch_until_zero): Allow for ms2. Set branch
237 (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
238 (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
240 (call_internal, call_value_internal, return_internal,
241 return_interrupt_internal, eh_return_internal, indirect_jump,
242 tablejump): Set call insn type.
243 (blockage, ei, di): Use appropriate unspec const.
244 * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
245 (ms1_get_attr_type): Adjust to give load & store types.
246 (ms1_final_prescan_insn): Adjust for new insn types. Don't look
247 backwards past a barrier.
248 (ms1_override_options): Accept ms2 arch. Copy and reset delayed
250 (struct branch_info, struct label_info): New.
252 (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
253 (ms1_machine_reorg): New.
254 (TARGET_MACHINE_DEPENDENT_REORG): Override.
255 * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
256 * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
257 (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
260 2005-11-09 Per Bothner <per@bothner.com>
261 Uros Bizjak <uros@kss-loka.si>
264 * toplev.c (process_options): Initialize debug_hooks early
265 in case lang_hooks.post_options ends up calling a debug_hook.
267 2005-11-08 Jakub Jelinek <jakub@redhat.com>
269 * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
270 DBX_REGISTER_NUMBER being contiguous.
272 2005-11-08 James A. Morrison <phython@gcc.gnu.org>
273 Diego Novillo <dnovillo@redhat.com>
276 * tree-vrp.c (register_edge_assert_for): Do not register
277 always-false predicates.
279 2005-11-08 Devang Patel <dpatel@apple.com>
281 PR tree-optimization/23115
282 * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
285 2005-11-08 Joseph S. Myers <joseph@codesourcery.com>
287 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
290 2005-11-08 Daniel Berlin <dberlin@dberlin.org>
292 Fix PR tree-optimization/23382
294 * tree-ssa-alias.c (compute_may_aliases): Call
295 delete_old_heap_vars.
296 * tree-dfa.c (referenced_var_remove): New function.
297 * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
298 * tree-flow.h (referenced_var_remove): Add prototype.
299 (delete_old_heap_vars): Ditto.
300 * tree-ssa-structalias.c (heapvars): New variable.
301 (oldheapvars): Ditto.
302 (get_constraint_for): Put heap vars on heapvars list.
303 (delete_old_heap_vars): New function.
305 2005-11-08 Jason Merrill <jason@redhat.com>
307 * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
309 2005-11-08 Uros Bizjak <uros@kss-loka.si>
312 * reg-stack.c (reg_to_stack): Update register liveness also
313 for flag_sched2_use_traces.
315 2005-11-08 Alan Modra <amodra@bigpond.net.au>
318 * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
319 override prior explicit -mno-powerpc-gfxopt.
321 2005-11-07 Eric Botcazou <ebotcazou@adacore.com>
323 * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
324 if the bitsize is zero.
325 * doc/md.texi (Standard Pattern Names): Document it.
327 * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
328 (TARGET_PASS_BY_REFERENCE): Likewise.
330 2005-11-07 Ian Lance Taylor <ian@airs.com>
332 PR rtl-optimization/24683
333 * config/i386/i386.c (legitimize_pic_address): If constant operand
334 to PLUS is too large, put it in a register.
336 2005-11-07 Jie Zhang <jie.zhang@analog.com>
338 * configure.ac: Enable checking assembler dwarf2 support for bfin
340 * configure: Regenerate.
342 2005-11-07 Paolo Bonzini <bonzini@gnu.org>
346 * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
347 gen_easy_vector_constant_add_self): Delete.
348 (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
350 (output_vec_const_move): Use gen_easy_altivec_constant.
351 (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
352 * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
353 (easy_vector_constant_add_self): Rewritten.
354 * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
355 easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
356 (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
357 * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
358 Macroize and adjust for the other changes.
360 2005-11-07 Paolo Bonzini <bonzini@gnu.org>
364 * c-typeck.c (build_c_cast): Try using a shared constant, and see
365 if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
367 2005-11-07 Jakub Jelinek <jakub@redhat.com>
369 PR rtl-optimization/23567
370 * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
371 (noce_process_if_block): Don't do any optimizations except
372 if (cond) x = x; if !set_b and write into orig_x may trap
373 or fault. Remove the MEM_READONLY_P check.
375 2005-11-06 Diego Novillo <dnovillo@redhat.com>
378 * tree-vrp.c (fix_equivalence_set): New.
379 (extract_range_from_assert): Call it.
381 2005-11-05 Ian Lance Taylor <ian@airs.com>
384 * combine.c (apply_distributive_law): Don't distribute across a
387 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
389 * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
390 config/ms1/ms1.h, config/rs6000/predicates.md,
391 config/s390/s390.c, params.def, postreload-gcse.c,
392 tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
393 tree-vrp.c, tree.c: Fix comment typos.
394 * doc/invoke.texi: Fix typos.
396 2005-11-05 Sebastian Pop <pop@cri.ensmp.fr>
398 * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
399 for testing whether the data_dependence_relation contains distance
400 vectors. Iterate over all distance vectors of the ddr.
401 * lambda.h: Define a vec of lambda_vector pointers.
402 * tree-data-ref.c (dump_data_dependence_relation,
403 dump_data_dependence_direction): Iterate over all distance and
404 direction vectors of the ddr.
405 (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
407 (build_classic_dist_vector, build_classic_dir_vector): Push a set
408 of distance/direction vectors instead of a single one.
409 * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
410 lambda_vectors with a vec of lambda_vectors.
411 (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
412 (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
413 DDR_NUM_DIST_VECTS): New.
414 * tree-loop-linear.c (gather_interchange_stats): Test for the
415 existence of distance vectors only after having checked that there
416 is a dependence. Iterate over all distance vectors of the ddr.
417 (linear_transform_loops): Use dump_data_dependence_relation.
418 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
419 distance vectors using DDR_NUM_DIST_VECTS. Iterate over all the
420 distance vectors of the ddr.
422 2005-11-05 Bernd Schmidt <bernd.schmidt@analog.com>
424 * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
425 expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
426 IS_INTHANDLER; all callers changed.
427 (n_regs_saved_by_prologue): Take interrupt handler attributes into
429 (do_link, do_unlink): New argument ALL; all callers changed.
430 (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
431 If function isn't leaf, save and restore all registers.
432 (bfin_function_ok_for_sibcall): Only true if not an interrupt or
435 2005-11-05 Jan Hubicka <jh@suse.cz>
437 PR rtl-optimization/23490
438 * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
439 max-flow-memory-location): Document.
440 * flow.c: Include params.h
441 (MAX_MEM_SET_LIST_LEN): Kill.
442 (add_to_mem_set_list): Use new param.
443 * cse.c (cse_basic_block): Replace 1000 by new param.
444 * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
445 PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
446 * predict.c (predict_loops): Use new param.
447 * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
449 * ipa-inline.c (cgraph_decide_inlining_of_small_function,
450 cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
451 Do not hold memory returned by cgraph_node_name across other call.
453 2005-11-04 Hans-Peter Nilsson <hp@axis.com>
456 * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
459 2005-11-04 Jeff Law <law@redhat.com>
462 * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
463 * tree-ssa-dom.c: Include params.h.
464 (thread_across_edge): If there are too many statements in the
465 target block, then do not thread through it.
466 * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
467 * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
469 2005-11-03 Diego Novillo <dnovillo@redhat.com>
472 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
473 TODO_update_ssa instead of TODO_update_ssa_no_phi.
475 2005-11-04 Sebastian Pop <pop@cri.ensmp.fr>
478 * tree-scalar-evolution.c (instantiate_parameters_1,
479 instantiate_parameters, resolve_mixers): Compute the size of an
480 expression to be instantiated and give up the instantiation if the
481 size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
483 2005-11-04 Richard Guenther <rguenther@suse.de>
485 * tree-flow.h (ref_contains_indirect_ref): Rename to
486 array_ref_contains_indirect_ref.
487 * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
488 (array_ref_contains_indirect_ref): Make comment match the code
490 (ref_contains_array_ref): Likewise.
491 * tree-ssa-structalias.c (find_func_aliases): Remove call to
492 ref_contains_indirect_ref.
493 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
494 Rename calls to ref_contains_indirect_ref.
496 2005-11-04 Paul Brook <paul@codesourcery.com>
498 * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
499 gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
500 (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
501 * config/arm/arm.md: Use match_operand in peephole input templates
502 and match_dup in peephole output templates.
504 2005-11-04 Daniel Jacobowitz <dan@codesourcery.com>
506 * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
509 2005-11-04 Mark Mitchell <mark@codesourcery.com>
510 Daniel Jacobowitz <dan@codesourcery.com>
512 * longlong.h (add_ssaaaa): Clobber condition code register
514 (sub_ddmmss): Likewise.
515 (umul_ppmm): Likewise.
517 2005-11-04 Daniel Jacobowitz <dan@codesourcery.com>
518 Paul Brook <paul@codesourcery.com>
519 Phil Blundell <pb@reciva.com>
521 * configure.ac: Add test for ARM TLS support.
522 * configure: Regenerated.
523 * config/arm/arm-protos.h (legitimize_tls_address)
524 (arm_tls_referenced_p, tls_mentioned_p)
525 (arm_output_addr_const_extra): New prototypes.
526 (thumb_legitimize_pic_address): Delete.
527 * config/arm/arm.c: Include "gt-arm.h".
528 (enum tls_reloc): New.
529 (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
530 (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
531 (arm_call_tls_get_addr, legitimize_tls_address)
532 (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
533 (arm_init_tls_builtins, arm_emit_tls_decoration)
534 (arm_output_addr_const_extra): New functions.
535 (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
536 (TARGET_HAVE_TLS): Define.
537 (target_thread_pointer): New.
538 (arm_override_options): Handle -mtp=.
539 (legitimize_pic_address): Ignore UNSPECs.
540 (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
542 (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
543 (tls_get_addr_libfunc): New variable.
544 (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
545 (arm_init_builtins): Call arm_init_tls_builtins.
546 (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
547 (arm_encode_section_info): Call default_encode_section_info.
548 * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
549 (enum arm_tp_type): New.
550 (target_thread_pointer): Add declaration.
551 (LEGITIMATE_CONSTANT_P): Handle TLS.
552 (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
553 (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
554 (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
555 * config/arm/arm.md: Add UNSPEC_TLS.
557 (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
559 (tls_load_dot_plus_eight): New insn and a peephole to create it.
560 (load_tp_hard, load_tp_soft): New insns.
561 * arm.opt: Add -mtp=.
562 * doc/invoke.texi (ARM Options): Document -mtp.
564 2005-11-04 Daniel Jacobowitz <dan@codesourcery.com>
566 * config/arm/lib1funcs.asm: Don't include "libunwind.S".
567 * config/arm/libunwind.S: Include "lib1funcs.asm".
568 * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
569 (LIB2ADDEH): Add libunwind.S.
570 (LIB2ADDEHDEP): Add lib1funcs.asm.
571 * mklibgcc.in: Handle asm files in libgcc_eh.a.
573 2005-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
576 * gcc/c.opt: Add a -lang-fortran option.
577 * gcc/c-opts.c: Add a lang_fortran flag.
578 (c_common_init_options): Handling the -lang-fortran option.
579 (c_common_handle_option): Add a case for Fortran options in
580 preprocessing. Remove cases for -ffixed-form and
581 -ffixed-line-length. Add a case for -lang-fortran.
583 2005-11-03 David Edelsohn <edelsohn@gnu.org>
585 * config/rs6000/rs6000.c: Include params.h
586 (optimization_options): Set max-grow-copy-bb-insns default to 16.
587 (bdesc_2arg): Delete vpkuhss and vpkuwss.
588 * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
589 (UNSPEC_VPKUWSS): Delete.
590 (altivec_vpkuhss): Delete.
591 (altivec_vpkuwss): Delete.
592 * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
594 (neg_eq0<mode>): Remove final condition.
595 (neg_eq<mode>): Remove condition and split-condition.
597 2005-11-04 Alan Modra <amodra@bigpond.net.au>
599 * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
600 Use associated print macros.
602 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
605 * diagnostic.c (diagnostic_set_info_translated): New function.
606 (diagnostic_set_info): Use it. Add comment.
607 * diagnostic.h (diagnostic_set_info_translated): Declare.
609 2005-11-03 Eric Botcazou <ebotcazou@adacore.com>
611 * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
612 On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
613 reference only if 'public' is true.
614 (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
615 emit the .hidden directive only if the indirect reference is public.
616 (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
617 Pass it to dw2_force_const_mem.
618 * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
619 * dwarf2out.c (output_cfi): Adjust calls to above function.
620 (output_call_frame_info): Likewise.
621 * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
622 as 'public' argument to dw2_asm_output_encoded_addr_rtx.
624 2005-11-03 Zdenek Dvorak <dvorakz@suse.cz>
626 PR tree-optimization/24483
627 * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
628 field to elts if possible.
630 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
633 * gimplifier.c (gimplify_expr): Create a temporary for lvalue
636 2005-11-03 Daniel Berlin <dberlin@dberlin.org>
638 Fix PR tree-optimization/24351
640 * tree-ssa-structalias.c (struct variable_info): Add
642 (get_varinfo_fc): New function to follow collapsing.
643 (new_var_info): Set collapsed_to to NULL.
644 (dump_constraint): Follow collapsing.
645 (build_constraint_graph): Handle collapsing.
646 (do_simple_structure_copy): Return false if something bad
648 (collapse_rest_of_var): New function.
649 (do_structure_copy): Collapse if do_simple_structure_copy returns
652 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
655 * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
656 expressions to a statement list instead of gimplifying them.
658 2005-11-03 Eric Botcazou <ebotcazou@libertysurf.fr>
660 PR rtl-optimization/23585
661 * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
662 that can't trap plus a constant integer, if the mode has zero size.
664 2005-11-03 Ulrich Weigand <uweigand@de.ibm.com>
667 * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
669 ("*insv<mode>_reg_extimm"): Likewise.
671 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
674 * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
675 c_common_type_for_mode returns an unnamed type.
677 2005-11-02 Richard Henderson <rth@redhat.com>
681 * dwarf2out.c (dwarf2out_reg_save_reg): New.
682 (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
683 * function.c (assign_parms): Use calls.internal_arg_pointer.
684 (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
686 * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
687 (TARGET_CALLS): Add it.
688 * target.h (struct gcc_target): Add calls.internal_arg_pointer.
689 * targhooks.c (default_internal_arg_pointer): New.
690 * targhooks.h (default_internal_arg_pointer): Declare.
691 * tree.h (dwarf2out_reg_save_reg): Declare.
692 * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
693 * config/i386/i386.c (dbx_register_map): Add return column.
694 (dbx64_register_map, svr4_dbx_register_map): Likewise.
695 (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
696 (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
697 (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
698 (ix86_save_reg): Save force_align_arg_pointer.
699 (ix86_emit_save_regs): Make regno unsigned.
700 (ix86_emit_save_regs_using_mov): Likewise.
701 (ix86_expand_prologue): Handle force_align_arg_pointer.
702 (ix86_expand_epilogue): Likewise.
703 * config/i386/i386.h: (dbx_register_map): Update.
704 (dbx64_register_map, svr4_dbx_register_map): Update.
705 (struct machine_function): Add force_align_arg_pointer.
706 * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
707 (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
708 (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
710 2005-11-02 Jan Hubicka <jh@suse.cz>
713 * i386.md: Add peep2 for simplyfing array accesses.
715 2005-11-02 Ulrich Weigand <uweigand@de.ibm.com>
718 * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
719 * config/s390/s390.c (s390_decompose_shift_count): New function.
720 (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
721 (print_shift_count_operand): Use s390_decompose_shift_count.
722 * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
723 Use s390_decompose_shift_count. Do not accept any non-base hard regs.
725 2005-11-02 Ulrich Weigand <uweigand@de.ibm.com>
728 * loop.c (loop_givs_rescan): Use force_operand to expand
731 2005-11-02 Andrew Pinski <pinskia@physics.uc.edu>
734 * fold-const.c (build_range_check): Use unsigned when signed
735 overflow is undefined also. If etype is subtype, make sure that
736 the subtraction is in the supertype.
738 2005-11-02 Richard Henderson <rth@redhat.com>
741 * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
744 2005-11-01 Richard Henderson <rth@redhat.com>
747 * loop.c (scan_loop): Do not propagate computations to a hard
748 register destination with SMALL_REGISTER_CLASSES.
750 2005-11-01 Joseph S. Myers <joseph@codesourcery.com>
752 * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
753 costs for MULT inside PLUS or MINUS.
755 2005-11-01 Bob Wilson <bob.wilson@acm.org>
757 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
758 (TRAMPOLINE_SIZE): Round up to 60.
759 * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
761 2005-10-31 James E. Wilson <wilson@specifix.com>
764 * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
765 ifdef. Put ifdefs around call in gen_subprogram_die.
766 (compute_frame_pointer_to_cfa_displacement): Likewise.
767 (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
770 PR rtl-optimization/17356
771 * cfgrtl.c (purge_dead_edges): Undo last change. In EDGE_EH code,
772 add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
774 2005-10-31 Jan Hubicka <jh@suse.cz>
777 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
780 * i386.c (legitimize_pic_address): Deal with large immediates.
783 * coverage.c (coverage_checksum_string): Fix code to stip random seeds
784 from symbol names while computing checkup.
787 * predict.c (predict_loops): Do not estimate more than
788 MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
789 * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
791 2005-10-31 Andrew MacLeod <amacleod@redhat.com>
793 PR tree-optimization/19097
794 * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
796 2005-10-31 J"orn Rennecke <joern.rennecke@st.com>
798 * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
800 2005-10-31 Andrew Pinski <pinskia@physics.uc.edu>
803 * tree-inline.c (setup_one_parameter): If the init_stmt
804 is NULL, don't insert the statement.
806 2005-10-30 Jan Hubicka <jh@suse.cz>
808 PR tree-optimization/24172
809 * tree-inline.c (copy_body_r): Unshare the substituted value first.
811 2005-10-30 Hans-Peter Nilsson <hp@bitrange.com>
813 * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
814 constants for hosts with long != 32 bits.
816 2005-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
819 * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
821 2005-10-28 Aldy Hernandez <aldyh@redhat.com>
823 * config/ms1/ms1.h (TARGET_MS1_64_001): New.
824 (TARGET_MS1_16_002): New.
825 (TARGET_MS1_16_003): New.
827 * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
828 ("*decrement_and_branch_until_zero_no_clobber"): New.
829 Add corresponding splitter for decrement_and_branch_until_zero
831 Key all decrement_and_branch_until_zero patterns off of
834 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
837 * tree-complex.c (extract_component): Treat RESULT_DECL
838 like the rest of the decls.
840 2005-10-25 Eric Botcazou <ebotcazou@adacore.com>
842 * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
843 indirect call to _mcount if the function needs a static chain.
845 2005-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
846 Caroline Tice <ctice@apple.com>
848 PR rtl-optimization/24460
849 * dwarf2out.c (have_switched_text_sections): New boolean variable.
850 (dwarf2out_switch_text_section): Set it to true instead of
851 incrementing separate_line_info_table_in_use.
852 (output_loc_list): Additionally test have_switched_text_sections.
853 (output_ranges): Likewise.
854 (dwarf2out_finish): Likewise.
855 * varasm.c (assemble_start_function): Do not call
856 insert_section_boundary_note.
857 (assemble_end_function): If flag_reorder_blocks_and_partition,
858 switch to the function's section before emitting the .size directive.
859 * bb-reorder.c (insert_section_boundary_note): Staticify.
860 (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
861 * output.h (insert_section_boundary_note): Delete.
863 2005-10-24 Andrew Pinski <pinskia@physics.uc.edu>
866 * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
867 instead of pointer equality when comparing types.
869 2005-10-24 James E. Wilson <wilson@specifix.com>
871 * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
872 add_dependence_list_and_free calls.
874 2005-10-24 Steven Bosscher <stevenb@suse.de>
876 * contrib.texi: Add the names of the LLNL folks who donated
877 Cray pointer support for gfortran.
879 2005-10-24 Steven Bosscher <stevenb@suse.de>
881 PR tree-optimization/24225
882 * profile.c (branch_prob): Look from end to start through a
883 basic block when looking for a locus.
885 2005-10-24 Richard Henderson <rth@redhat.com>
887 * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
889 (hppa_expand_prologue): Likewise.
891 2005-10-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
893 * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
894 (NO_DEFERRED_PROFILE_COUNTERS): Define.
895 * pa.h (NO_PROFILE_COUNTERS): Define.
896 * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
897 (funcdef_nos): New vector to hold label numbers of deferred profile
899 (output_deferred_profile_counters): New function.
900 (hppa_profile_hook): Push label number onto funcdef_nos.
901 (pa_hpux_file_end): Call output_deferred_profile_counters if
902 NO_DEFERRED_PROFILE_COUNTERS is false.
904 * pa-protos.h (get_deferred_plabel): New prototype.
905 * pa.c (get_plabel): Rename to get_deferred_plabel. Return plabel.
907 (output_call): Adjust calls.
909 2005-10-24 Alan Modra <amodra@bigpond.net.au>
911 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
912 peculiarity of GOT/TOC section usage.
914 2005-10-23 Andrew Pinski <pinskia@physics.uc.edu>
917 * c-common.c (constant_string_class_name): Add documentation.
919 2005-10-23 Kaz Kojima <kkojima@gcc.gnu.org>
922 * recog.c (peephole2_optimize): Increment peep2_current_count
923 only when the slot is empty.
925 2005-10-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
928 * except.c (output_function_exception_table): Call
929 assemble_external_libcall if we need a personality function.
931 2005-10-21 Eric Botcazou <ebotcazou@libertysurf.fr>
933 PR rtl-optimization/24460
934 * bb-reorder.c (fix_crossing_unconditional_branches): Do not
935 set the basic block for barriers.
937 2005-10-21 Janis Johnson <janis187@us.ibm.com>
939 * var-tracking.c (vt_initialize): Initialize post.
941 2005-10-21 Devang Patel <dpatel@apple.com>
944 * c-common.c (vector_types_convertible_p): Check vector element type.
946 2005-10-21 Kaz Kojima <kkojima@gcc.gnu.org>
948 * config/sh/sh.c (prepare_move_operands): Handle the address
949 constant which is a tls symbolic address plus a constant.
951 2005-10-21 Andrew Pinski <pinskia@physics.uc.edu>
954 * gcc.c (main): Use the correct counter for erroring out
955 about mulitple files.
957 2005-10-21 Alan Modra <amodra@bigpond.net.au>
960 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
961 use r2 for 64-bit tls .got access.
963 2005-10-21 Paolo Bonzini <bonzini@gnu.org>
965 * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
968 2005-10-20 Steven Bosscher <stevenb@suse.de>
970 PR tree-optimization/24307
971 * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
973 2005-10-20 Alexandre Oliva <aoliva@redhat.com>
976 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
978 * varasm.c (find_decl_and_mark_needed): After cgraph global info
979 is ready, stop marking functions, but still mark variables.
981 2005-10-20 Richard Guenther <rguenther@suse.de>
984 * fold-const.c (invert_truthvalue): Handle COND_EXPR with
987 2005-10-20 Eric Botcazou <ebotcazou@libertysurf.fr>
989 PR rtl-optimization/23585
990 * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
991 (rtx_addr_can_trap_p): ... here. Invoke rtx_addr_can_trap_p_1.
992 (may_trap_p_1): New predicate extracted from...
993 (may_trap_p): ... here. Invoke may_trap_p_1.
994 (may_trap_or_fault_p): New predicate.
995 * rtl.h (may_trap_or_fault_p): Declare it.
996 * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
997 instead of may_trap_p.
998 (steal_delay_list_from_fallthrough): Likewise.
999 (fill_simple_delay_slots): Likewise.
1000 (fill_slots_from_thread): Likewise.
1001 * function.c (pad_to_arg_alignment): Rework comment about
1002 SPARC_STACK_BOUNDARY_HACK.
1003 * config/sparc/sparc.h: Likewise.
1005 2005-10-19 Adrian Straetling <straetling@de.ibm.com>
1007 * config/s390/s390.c (s390_expand_insv): New.
1008 * config/s390/s390-protos.h (s390_expand_insv): Declare.
1009 * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
1010 ("icm_hi"): Remove mode attribute.
1011 ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
1013 ("*extracthi", "*extractqi"): Remove.
1014 (extv<mode>", "*extzv<mode>"): New.
1015 ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
1016 "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
1018 2005-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1020 * cfgexpand.c (discover_nonconstant_array_refs_r,
1021 discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
1022 (tree_expand_cfg): Call discover_nonconstant_array_refs.
1023 * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
1024 discover_nonconstant_array_refs.
1026 2005-10-19 Steven Bosscher <stevenb@suse.de>
1029 * c-decl.c (pop_scope): Don't warn about an unused variable
1030 if it is marked with TREE_NO_WARNING.
1031 (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
1032 somenow mismatch and olddecl is to be replaced.
1034 2005-10-19 Eric Botcazou <ebotcazou@libertysurf.fr>
1037 * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
1038 whether registers live on the edge can be saved/restored.
1040 2005-10-19 Kaz Kojima <kkojima@gcc.gnu.org>
1042 * config/sh/sh.c (fixup_mova): Skip notes.
1044 2005-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1046 * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
1047 * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
1048 (s390_can_eliminate): Handle BASE_REGNUM elimination.
1049 (s390_initial_elimination_offset): Likewise.
1050 (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
1051 register on TARGET_ZARCH targets.
1052 * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
1053 (INITIAL_FRAME_POINTER_OFFSET): Remove.
1054 (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
1055 (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
1057 2005-10-19 Andreas Krebbel <krebbel1@de.ibm.com>
1059 * config/s390/s390.md: Comment describing output modifiers updated.
1060 * config/s390/s390.c (print_operand): Likewise.
1062 2005-10-19 Andreas Krebbel <krebbel1@de.ibm.com>
1064 * config/s390/s390.c (override_options): Added check for -mstack-size
1066 * doc/invoke.texi: Mention that limit in the documenation.
1068 2005-10-18 Paolo Bonzini <bonzini@gnu.org>
1071 * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
1073 2005-10-18 Daniel Berlin <dberlin@dberlin.org>
1075 Fix PR tree-optimization/24231
1077 * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
1078 (compute_avail): Ditto.
1080 2005-10-18 Richard Henderson <rth@redhat.com>
1083 * config/i386/i386.c (legitimate_constant_p): Check
1084 SYMBOL_REF_TLS_MODEL directly. Don't fallthru to SYMBOL_REF
1086 (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
1087 (legitimate_pic_address_disp_p): Reorg CONST checking to make
1088 sure SYMBOL_REF_TLS_MODEL is tested. Test SYMBOL_REF_TLS_MODEL
1090 (print_operand_address): Likewise.
1091 * config/i386/predicates.md (x86_64_immediate_operand): Test
1092 SYMBOL_REF_TLS_MODEL properly inside CONST.
1093 (x86_64_zext_immediate_operand): Likewise.
1094 (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
1095 initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
1096 * config/i386/i386-protos.h: Remove predicates.md entries.
1098 2005-10-18 Danny Smith <dannysmith@users.sourceforge.net>
1100 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
1101 Check that elements of TYPE_METHODS are FUNCTION_DECLs.
1103 2005-10-17 Alexey Starovoytov <alexey.starovoytov@sun.com>
1104 Ian Lance Taylor <ian@airs.com>
1107 * fold-const.c (fold_widened_comparison): Do not allow range based
1108 constant folding when right operand cannot be unwidened.
1110 2005-10-17 Richard Henderson <rth@redhat.com>
1112 * builtins.c (expand_builtin_synchronize): Build a new-style asm
1113 with a memory clobber.
1115 2005-10-17 James E Wilson <wilson@specifix.com>
1117 PR rtl-optimization/17356
1118 * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
1119 checking for EDGE_EH.
1121 2005-10-17 Eric Botcazou <ebotcazou@libertysurf.fr>
1123 * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
1124 the slot on an even boundary for any type with 16-byte alignment.
1126 2005-10-17 Hans-Peter Nilsson <hp@axis.com>
1129 * md.texi (Modifiers) <%>: Clarify that % doesn't work
1130 after register allocation.
1132 2005-10-17 DJ Delorie <dj@redhat.com>
1134 * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
1137 2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
1140 * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
1143 2005-10-17 Kaz Kojima <kkojima@gcc.gnu.org>
1145 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
1146 to 2 if it's already non-zero.
1147 (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
1148 is set and warn about it if flag_schedule_insns is 1.
1150 2005-10-17 Paul Woegerer <paul.woegerer@nsc.com>
1152 * config/crx/crx.md: Compare-and-branch instructions need to
1155 2005-10-17 Uros Bizjak <uros@kss-loka.si>
1158 * config/i386/i386.md (*pushdi2_rex64 splitter)
1159 (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
1160 (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
1161 flow2 pass only when (optimize > 0 && flag_peephole2).
1163 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
1166 * gcc.c (have_c): New static variable.
1168 (process_command): Remove declation of have_c.
1169 Set have_o to 1 when handling -o.
1170 (main): Add a fatel error if there are multiple
1171 files specified and -o and -c/-S is passed witout
1172 -combine or multiple languages.
1174 2005-10-16 Daniel Berlin <dberlin@dberlin.org>
1176 Fix PR tree-optimization/22444
1177 * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
1178 Assert that we don't hit something with subvars.
1179 (setup_pointers_and_addressables): Don't add things with subvars,
1180 because we'll already process the subvars for aliasing purposes.
1182 2005-10-16 Hans-Peter Nilsson <hp@axis.com>
1185 * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
1186 ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
1187 ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
1188 ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
1189 ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
1190 swapped, alternatives for the R constraint.
1193 * builtins.c (get_builtin_sync_mode): Make unlimited
1194 mode_for_size request.
1196 2005-10-15 Richard Henderson <rth@redhat.com>
1198 * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
1199 (gimplify_expr): ... here.
1200 (gimplify_compound_lval): Use it in initial scan loop. Allow
1201 fb_lvalue in base expression.
1203 2005-10-15 Richard Henderson <rth@redhat.com>
1206 * builtins.c (expand_builtin_trap): Export.
1207 * expr.h (expand_builtin_trap): Declare.
1208 * expr.c (expand_assignment): Emit a trap for integral offsets
1209 from registers that weren't reduced to bitpos.
1211 * tree-cfg.c (mark_array_ref_addressable_1): Remove.
1212 (mark_array_ref_addressable): Remove.
1213 * tree-flow.h (mark_array_ref_addressable): Remove.
1214 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
1216 2005-10-15 James E Wilson <wilson@specifix.com>
1219 * sched-deps.c (add_dependence_list): New arg UNCOND. Fix all callers.
1220 (add_dependence_list_and_free): Likewise.
1221 (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
1224 2005-10-15 Diego Novillo <dnovillo@redhat.com>
1228 * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
1229 sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
1231 (vrp_visit_phi_node): Only prevent infinite iterations when
1232 the previous result and the new result are both VR_RANGEs.
1234 2005-10-15 Ranjit Mathew <rmathew@gcc.gnu.org>
1236 * tree-into-ssa.c (mark_def_sites): Correct minor typo in
1239 2005-10-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1242 * c-parser.c (c_parser_for_statement): Use location of RID_FOR
1245 2005-10-14 Per Bothner <per@bothner.com>
1247 PR preprocessor/21250
1248 * c-ppoutput.c (print_line): Print internal line 0 as 1.
1250 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
1253 * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
1254 overflow flags. Refactor some conditionals.
1256 2005-10-13 Andrew Pinski <pinskia@physics.uc.edu>
1259 * tree-dfa.c (add_referenced_var): Only look at decls which
1260 have TREE_CONSTANT or TREE_READONLY set instead of if
1261 !TREE_PUBLIC or !TREE_CONSTANT.
1263 2005-10-13 James E Wilson <wilson@specifix.com>
1265 * doc/invoke.texi: For -x, add f95-cpp-input.
1266 * doc/install.texi: For --enable-languages doc, change f95 to fortran.
1268 2005-10-12 Sebastian Pop <pop@cri.ensmp.fr>
1270 PR tree-optimization/24262
1271 * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
1272 in loop all the time.
1274 2005-10-12 Richard Henderson <rth@redhat.com>
1277 * tree.h (DECL_TRANSPARENT_UNION): Remove.
1278 * function.c (assign_parm_find_data_types): Don't support it.
1279 * print-tree.c (print_node): Likewise.
1280 * c-common.c (handle_transparent_union_attribute): Likewise.
1281 Use build_duplicate_type.
1282 * tree-inline.c (remap_type_1): Split out of remap_type;
1283 properly remap aggregate fields.
1284 (build_duplicate_type): New.
1285 * doc/extend.texi (Variable Attributes): Remove documentation
1286 for transparent_union.
1288 2005-10-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1291 * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
1292 (gen_stack_pointer_dec): Likewise.
1294 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
1298 * target.h (struct gcc_target): Add valid_dllimport_attribute_p
1300 (struct cxx): Add adjust_class_at_definition target hook.
1301 * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
1302 defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
1303 (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
1304 hook_void_tree. Add to TARGET_CXX.
1305 * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
1307 (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
1308 * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
1309 instead of attribute. Check for dllexport override. Warn if
1310 inconsistent dll linkage. Don't lose old dllimport if decl has
1311 had address referenced. Tweak lookup of dllimport atribute.
1312 (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
1313 for target specific rules. Don't add dllimport attribute if
1314 DECL_DECLARED_INLINE_P. Set DECL_DLLIMPORT_P when adding
1315 dllimport attribute.
1316 (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
1317 * varasm.c (initializer_constant_valid_p): Replace
1318 DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
1322 * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
1323 'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
1324 (i[34567]86-*-mingw32*): Likewise.
1326 * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
1327 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
1329 * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
1330 C++-specific code. Change return value to bool.
1331 (i386_pe_dllimport_p): Likewise.
1332 (associated_type): Simplify and make language-independent
1333 (i386_pe_encode_section_info): Replace override of ambiguous
1334 dllimport symbol refs with a gcc_assert.
1335 (i386_pe_valid_dllimport_attribute_p): Define.
1336 * config/i386/winnt-cxx.c: New file. Define C++ versions of
1337 i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
1338 i386_pe_adjust_class_at_definition.
1339 * config/i386/winnt-stubs.c: New file. Define stub versions of
1340 lang-specific functions.
1341 * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
1342 i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
1343 i386_pe_adjust_class_at_definition.
1344 (i386_pe_valid_dllimport_attribute_p): Declare.
1345 * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
1346 (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
1347 * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
1350 * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
1351 dllimport attribute with test of DECL_DLLIMPORT_P.
1353 2005-10-12 Adrian Straetling <straetling@de.ibm.com>
1355 * combine.c (make_extraction): Correct offset computation.
1357 2005-10-12 Hans-Peter Nilsson <hp@axis.com>
1359 * config/cris/t-linux (LIMITS_H_TEST): Define.
1361 2005-10-12 Richard Henderson <rth@redhat.com>
1364 * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
1366 2005-10-12 Richard Guenther <rguenther@suse.de>
1368 * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
1370 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
1373 * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
1374 DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
1377 2005-10-12 Richard Guenther <rguenther@suse.de>
1380 * varasm.c (output_constant): Correct typo from previous
1383 2005-10-11 Ian Lance Taylor <ian@airs.com>
1385 PR rtl-optimization/13931
1386 * combine.c: Revert patch of 2003-05-14, and:
1387 (try_combine): Only set elim_i1 and elim_i2 if the destination is
1388 completely killed in the appropriate insn.
1389 (distribute_notes): Don't skip multiple hard register test for
1390 elim_i1 and elim_i2.
1392 2005-10-11 Richard Henderson <rth@redhat.com>
1395 * c-typeck.c (convert_for_assignment): Use build_constructor_single
1396 to initialize a transparent union instead of a nop_expr.
1398 2005-10-11 Richard Henderson <rth@redhat.com>
1400 * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
1401 * tree-ssa-dce.c: Include tree-scalar-evolution.h.
1402 (tree_ssa_dce_loop): Call scev_reset.
1405 * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
1406 * tree-ssa-dce.c: Include cfgloop.h.
1407 (tree_ssa_dce_loop, pass_dce_loop): New.
1408 * tree-pass.h (pass_dce_loop): Declare it.
1409 * passes.c (init_optimization_passes): Use it.
1411 2005-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1414 * convert.c (convert_to_real): Revert 2005-10-05 patch.
1415 Only apply the optimization for rounding builtins if the inner
1416 cast is also an extension.
1418 2005-10-11 Andrew Pinski <pinskia@physics.uc.edu>
1421 * tree-ssa-ccp.c (execute_fold_all_builtins): Call
1422 mark_new_vars_to_rename instead of update_stmt.
1424 2005-10-11 Bernd Schmidt <bernd.schmidt@analog.com>
1426 * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
1428 2005-10-11 Jakub Jelinek <jakub@redhat.com>
1430 * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
1431 for setting MMX register to 0 rather than mmx.
1433 2005-10-10 Steve Ellcey <sje@cup.hp.com>
1436 * configure.ac: Move gas check from mips specific case to common case.
1437 Do check for GNU as for mips*-*-* and *-*-hpux* targets.
1438 * configure: Regenerate
1439 * doc/install.texi: Update.
1441 2005-10-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1444 * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
1446 2005-10-10 Maciej W. Rozycki <macro@linux-mips.org>
1448 * gcc.c (do_spec_1): Accept numeric characters in file name
1451 2005-10-10 Nick Clifton <nickc@redhat.com>
1453 * config/arm/arm.c: Remove extraneous whitespace. Remove comment
1454 describing the deleted arm_gen_rotated_half_load function.
1456 2005-10-09 Kaz Kojima <kkojima@gcc.gnu.org>
1458 * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
1461 2005-10-09 Daniel Jacobowitz <dan@codesourcery.com>
1463 * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
1465 * config/arm/t-linux-eabi (LIB1ASMFUNCS)
1466 (EXTRA_MULTILIB_PARTS): Define.
1467 * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
1468 (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
1469 (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
1470 * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
1471 (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
1472 (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
1474 2005-10-09 Zdenek Dvorak <dvorakz@suse.cz>
1476 PR tree-optimization/24226
1477 * tree-cfg.c (remove_bb): Clean up unreachable loops.
1478 * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
1479 * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
1482 2005-10-09 Eric Botcazou <ebotcazou@libertysurf.fr>
1484 * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
1486 2005-10-08 Andrew Pinski <pinskia@physics.uc.edu>
1489 * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
1490 Rewrite for no need for the early clobber.
1492 2005-10-08 Kazu Hirata <kazu@codesourcery.com>
1494 Merge from csl-arm-branch:
1495 2005-09-07 Paul Brook <paul@codesourcery.com>
1496 * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
1499 2005-04-30 Paul Brook <paul@codesourcery.com>
1500 * config/arm/bpabi.h (TARGET_DEFAULT): Define.
1501 * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
1503 2005-03-07 Daniel Jacobowitz <dan@codesourcery.com>
1504 * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
1505 (arm_override_options): Use TARGET_AAPCS_BASED.
1506 * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
1507 (PTRDIFF_TYPE): Use int for AAPCS.
1508 (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
1509 * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
1510 (DEFAULT_SHORT_ENUMS): Delete.
1511 * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
1513 2004-12-15 Daniel Jacobowitz <dan@codesourcery.com>
1514 * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
1515 * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
1516 * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
1518 2004-12-03 Mark Mitchell <mark@codesourcery.com>
1519 * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
1521 2004-11-22 Mark Mitchell <mark@codesourcery.com>
1522 * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
1524 2004-11-19 Mark Mitchell <mark@codesourcery.com>
1525 * config.gcc (arm*-*-linux-gnueabi): Add it.
1526 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
1528 (TARGET_OS_CPP_BUILTINS): Likeiwse.
1529 * config/arm/linux-eabi.h: New file.
1530 * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
1531 (LINUX_TARET_LINK_SPEC): Likewise.
1532 (LINK_SPEC): Use it.
1533 * config/arm/t-linux-eabi: New file.
1535 2005-10-08 Steven Bosscher <stevenb@suse.de>
1538 * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
1540 (PARAM_SMS_DFA_HISTORY): Likewise.
1542 2005-10-08 Kazu Hirata <kazu@codesourcery.com>
1545 * calls.c (mem_overlaps_already_clobbered_arg_p): New.
1546 (load_register_parameters): Call it.
1547 (check_sibcall_argument_overlap_1): Likewise.
1548 (store_one_arg): Likewise.
1550 2005-10-07 James E. Wilson <wilson@specifix.com>
1552 * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
1553 DImode not VECINT24 for operand 2.
1556 * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
1560 * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
1561 fr_spill): Use destination_operand for operand 0.
1563 2005-10-07 DJ Delorie <dj@redhat.com>
1565 * varasm.c (output_constant): Limit error to expanding
1568 2005-10-07 Richard Guenther <rguenther@suse.de>
1571 * fold-const.c (fold_binary): Fix operand types during folding
1572 of X op (A, Y). Evaluation order of the side-effects of
1573 X and A are frontend-defined, so ensure we honour that even for
1574 tcc_comparison class operands; eased by removing duplicate code.
1576 2005-10-07 Steve Ellcey <sje@cup.hp.com>
1578 * stor-layout.c (layout_type): Do not allow alignment of array
1579 elements to be greater than their size.
1581 2005-10-07 Steve Ellcey <sje@cup.hp.com>
1583 * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
1585 (hppa*-*-linux*): Ditto.
1586 (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
1587 * config/host-hpux.c: New.
1588 * config/x-hpux: New.
1589 * config/pa/x-hpux: Remove.
1590 * config/pa/x-linux: Remove.
1591 * config/pa/pa-host.c: Remove.
1593 2005-10-07 Jeff Law <law@redhat.com>
1595 * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
1596 determine whether or not to try and thread outgoing edges.
1598 2005-10-07 David Edelsohn <edelsohn@gnu.org>
1600 * config/rs6000/rs6000.md (eqsi_power): New.
1601 (neg_eq0si): Add TARGET_POWER to final condition.
1604 2005-10-06 Richard Henderson <rth@redhat.com>
1606 * config/rs6000/rs6000.c: Revert last change.
1608 2005-10-06 Richard Henderson <rth@redhat.com>
1610 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
1611 (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
1613 2005-10-06 Andrew Pinski <pinskia@physics.uc.edu>
1617 * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
1618 out return_label and naked_return_label.
1620 2005-10-06 Daniel Berlin <dberlin@dberlin.org>
1622 * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
1625 2005-10-06 Richard Henderson <rth@redhat.com>
1628 * tree-inline.c (declare_return_variable): Handle modify_dest not
1631 2005-10-06 Daniel Berlin <dberlin@dberlin.org>
1633 Fix PR tree-optimization/22488
1634 * tree-ssa-structalias.c (check_for_overlaps): New function.
1635 (create_variable_info_for): Use it.
1637 2005-10-06 Richard Henderson <rth@redhat.com>
1640 * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
1641 (dwarf2out_start_source_file): Print it.
1643 2005-10-06 Geoffrey Keating <geoffk@apple.com>
1645 * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
1647 2005-10-06 Richard Henderson <rth@redhat.com>
1650 * mode-switching.c (optimize_mode_switching): Clear transp bit
1651 for block with incomming abnormal edges.
1653 * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
1654 (fpscr_set_from_mem): Use them.
1655 * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
1656 (fpscr postinc splitters): Rewrite as peephole2+split.
1658 2005-10-06 David Edelsohn <edelsohn@gnu.org>
1660 * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
1661 (eq<mode>_compare): Same.
1663 2005-10-06 Richard Guenther <rguenther@suse.de>
1665 PR tree-optimization/24238
1666 * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
1668 2005-10-06 Daniel Jacobowitz <dan@codesourcery.com>
1670 * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
1671 here. Use AC_PATH_PROG for environment variables instead of
1673 * configure.ac: Update calls to gcc_AC_CHECK_TOOL. Use it for
1675 * configure: Regenerated.
1677 2005-10-06 Richard Earnshaw <richard.earnshaw@arm.com>
1680 * arm.md (call): If the address isn't a SYMBOL_REF or a register,
1681 then force it into a register.
1682 (call_value): Likewise.
1684 2005-10-06 Richard Henderson <rth@redhat.com>
1687 * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
1688 under pass_vectorize. Clear TODO_ggc_collect from the dce pass
1689 under pass_vectorize.
1691 2005-10-05 Devang Patel <dpatel@apple.com>
1694 * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
1695 handling constants. Check NAMESPACE_DECL context for constants.
1697 2005-10-05 Eric Christopher <echristo@apple.com>
1699 * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
1701 2005-10-05 Richard Henderson <rth@redhat.com>
1704 * tree-cfg.c (mark_array_ref_addressable_1): New.
1705 (mark_array_ref_addressable): New.
1706 * tree-flow.h (mark_array_ref_addressable): Declare.
1707 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
1709 2005-10-05 Andrew Pinski <pinskia@physics.uc.edu>
1713 * reload.c (subst_reloads): When adding a REG_LABEL to a
1714 jump instruction, also update JUMP_LABEL.
1716 2005-10-05 David Edelsohn <edelsohn@gnu.org>
1718 * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
1719 * bb-reorder.c (copy_bb_p): Use it.
1720 * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
1722 2005-10-05 Richard Henderson <rth@redhat.com>
1725 * toplev.c (process_options): Warn about unsupported combinations
1726 of unwind tables and omit-frame-pointer.
1727 * config/i386/i386.c (override_options): Similarly. Enable
1728 accumulate-outgoing-args if not explicitly disabled.
1730 2005-10-05 Steve Ellcey <sje@cup.hp.com>
1732 * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
1733 Handle big endian vs. small endian.
1734 (vec_initv2sf): Handle big endian vs. small endian.
1735 (*vec_extractv2sf_1): Ditto.
1737 2005-10-05 Dale Johannesen <dalej@apple.com>
1739 * convert.c (convert_to_real): Don't convert
1740 (float)floor(double d) to floorf((float)d).
1742 2005-10-05 Daniel Jacobowitz <dan@codesourcery.com>
1744 * config/arm/arm.md (insv): Use gen_int_mode in more places.
1746 2005-10-05 Andrew MacLeod <amacleod@redhat.com>
1748 PR tree-optimization/18587
1749 * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
1750 (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
1751 build_vuses): Change to VEC type.
1752 (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
1753 opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
1754 opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
1755 opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
1756 (get_name_decl): New. Return DECL_UID of base variable.
1757 (operand_build_cmp): New. qsort comparison routine.
1758 (operand_build_sort_virtual): New. Sort virtual build vector.
1759 (init_ssa_operands, fini_ssa_operands): Use VEC routines.
1760 (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
1761 (FINALIZE_BASE): Use get_name_decl.
1762 (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
1763 finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
1764 (start_ssa_stmt_operands, append_def, append_use, append_vuse,
1765 append_v_may_def, append_v_must_def): Replace opbuild_* routines with
1766 direct VEC_* manipulations.
1767 (build_ssa_operands): Call operand_build_sort_virtual.
1768 (copy_virtual_operand, create_ssa_artficial_load_stmt,
1769 add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
1770 with direct VEC_* manipulations.
1771 * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
1772 with direct VEC manipulations.
1774 2005-10-05 Paolo Bonzini <bonzini@gnu.org>
1776 PR tree-optimization/21419
1777 PR tree-optimization/24146
1778 PR tree-optimization/24151
1780 * c-typeck.c (readonly_error): Handle USE being lv_asm.
1781 (build_asm_expr): Call it if outputs are read-only.
1782 * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
1784 2005-10-05 Billy Biggs <billy.biggs@gmail.com>
1785 Paolo Bonzini <bonzini@gnu.org>
1789 * doc/extend.texi (x86 Built-ins): Document that -msse and friends
1790 enable the instructions and not just the built-ins.
1791 * doc/invoke.texi (x86 Options): Likewise.
1793 2005-10-04 Geoffrey Keating <geoffk@apple.com>
1795 * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
1797 * doc/invoke.texi (Option Summary): Correct spelling
1798 of -mmacosx-version-min.
1800 2005-10-04 Devang Patel <dpatel@apple.com>
1802 * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
1805 2005-10-04 Steve Ellcey <sje@cup.hp.com>
1807 * tree-vect-transform.c (vect_create_epilog_for_reduction):
1808 Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
1810 2005-10-04 Adrian Straetling <straetling@de.ibm.com>
1812 * config/s390/s390.md ("TDSI","DP"): New mode macros.
1813 ("TE","tg"): New mode attributes.
1814 ("sync_compare_and_swap<mode>"): Replace with a define_expand.
1815 ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
1816 ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
1817 dword_mode and one for GPRmode.
1819 2005-10-04 Ian Lance Taylor <ian@airs.com>
1821 PR preprocessor/13726
1822 * c-ppoutput.c (cb_include): Add comments parameter, and print out
1823 any comments passed in.
1825 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
1827 * tree.c (annotate_with_file_line): Fix typo.
1829 2005-10-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1832 * builtins.c (fold_builtin_memcmp): When constructing the pointer
1833 type used to access data in the inlined length == 1 case, use
1834 build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
1835 (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
1837 2005-10-04 Uros Bizjak <uros@kss-loka.si>
1839 * config/i386/i386.h (TARGET_FISTTP): Enable also for
1840 TARGET_SSE3 and only for TARGET_80387.
1841 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
1842 (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
1843 Do not depend on TARGET_80387.
1845 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
1847 * tree.c (last_annotated_node): Change type to location_t*.
1848 (annotate_with_file_line): Reflect the change of
1849 last_annotated_node type.
1851 2005-10-04 Richard Guenther <rguenther@suse.de>
1854 * c-decl.c (grokdeclarator): Don't write to fields
1857 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
1860 * c-decl.c (finish_decl): Use set_user_assembler_name even for
1862 * varasm.c (make_decl_rtl): If a register variable does not
1863 have a set user assmbler name, error out.
1864 Decode the asmspec is now name+1 bypassing '*'.
1866 2005-10-04 Steven Bosscher <stevenb@suse.de>
1868 PR tree-optimization/23049
1869 * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
1870 of a COND_EXPR is folded before calling fold on the whole rhs of a
1871 conditional assignment.
1872 * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
1873 document that a COND_EXPR may appear there.
1875 2005-10-03 Diego Novillo <dnovillo@redhat.com>
1878 * tree-vrp.c (extract_range_from_assert): If the new numeric
1879 range created out of the assertion contradicts the existing
1880 numeric range of the ASSERT_EXPR variable, make the new range
1883 2005-10-03 Kaz Kojima <kkojima@gcc.gnu.org>
1885 * config/sh/sh.c (sh_register_move_cost): Add case for moving
1886 from T_REGS to FP register class.
1888 2005-10-03 Richard Henderson <rth@redhat.com>
1891 * tree-nested.c (convert_nl_goto_reference): Lookup a translation
1892 before creating a new one.
1894 2005-10-03 David Edelsohn <edelsohn@gnu.org>
1896 * config/rs6000/t-aix43 (LDFLAGS): New.
1897 * config/rs6000/t-aix52 (LDFLAGS): New.
1899 2005-10-03 Ian Lance Taylor <ian@airs.com>
1901 * gimplify.c (find_single_pointer_decl_1): New static function.
1902 (find_single_pointer_decl): New static function.
1903 (internal_get_tmp_var): For a formal variable, set restrict base
1904 information if appropriate.
1905 * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
1907 * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
1908 (DECL_GET_RESTRICT_BASE): Define.
1909 (SET_DECL_RESTRICT_BASE): Define.
1910 (decl_restrict_base_lookup): Declare.
1911 (decl_restrict_base_insert): Declare.
1912 (struct tree_decl_with_vis): Add based_on_restrict_p field.
1913 * tree.c (restrict_base_for_decl): New static variable.
1914 (init_ttree): Initialize restrict_base_for_decl.
1915 (copy_node_stat): Copy restrict base information.
1916 (decl_restrict_base_lookup): New function.
1917 (decl_restrict_base_insert): New function.
1918 (print_restrict_base_statistics): New static function.
1919 (dump_tree_statistics): Call print_restrict_base_statistics.
1921 2005-10-02 Diego Novillo <dnovillo@redhat.com>
1924 * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
1925 case of anti-ranges.
1927 2005-10-02 Andrew Pinski <pinskia@physics.uc.edu>
1930 * c-typeck.c (tagged_tu_seen): Rename to ...
1931 (tagged_tu_seen_cache): this and add val field.
1932 (comptypes): Move functional to comptypes_internal
1933 and free tagged_tu_seen.
1934 (comptypes_internal): New function and call comptypes_internal
1935 instead of comptypes. Speed up by sibcalling
1936 tagged_types_tu_compatible_p.
1937 (alloc_tagged_tu_seen): New function
1938 (free_all_tagged_tu_seen_up_to): New function.
1939 (tagged_types_tu_compatible_p): Return the val of the seen two
1941 Add that the two types are the same to tagged_tu_seen_base
1942 if they are and call comptypes_internal instead of comptypes.
1943 <case UNION_TYPE>: Speed up common type where the fields are
1945 (function_types_compatible_p): Call comptypes_internal instead of
1947 (type_lists_compatible_p): Likewise.
1948 (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
1950 2005-10-02 Matthias Klose <doko@debian.org>
1952 * doc/invoke.texi: Fix typo and speling error.
1954 2005-10-01 Richard Henderson <rth@redhat.com>
1956 * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
1958 2005-10-01 Mark Mitchell <mark@codesourcery.com>
1960 * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
1961 using --start-group and --end-group.
1963 2005-10-01 Diego Novillo <dnovillo@redhat.com>
1965 * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
1966 FIXME note regarding quirky semantics.
1968 2005-10-01 Diego Novillo <dnovillo@redhat.com>
1971 * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
1972 non-null range as a last resort.
1974 2005-10-01 James A. Morrison <phython@gcc.gnu.org>
1975 Diego Novillo <dnovillo@redhat.com>
1978 * tree-vrp.c (extract_range_from_assert): For !=
1979 assertions, only build an anti-range if LIMIT is a
1980 single-valued range.
1982 2005-09-30 Richard Earnshaw <richard.earnshaw@arm.com>
1984 * arm.md (movqi): On thumb when optimizing, handle loading from
1985 memory by describing this as taking a subreg of a zero-extended load
1986 into an SImode register.
1989 2005-09-30 Daniel Jacobowitz <dan@codesourcery.com>
1991 * reload1.c (merge_assigned_reloads): Do not change any
1992 RELOAD_FOR_OUTPUT_ADDRESS reloads.
1994 2005-09-30 Geoffrey Keating <geoffk@apple.com>
1996 * Makefile.in (LIPO_FOR_TARGET): Define.
1997 (STRIP_FOR_TARGET): Define.
1999 * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
2000 before creating new ones. Do symlinks before creating the actual
2003 * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
2004 to work out which multilibs are actually being built.
2006 2005-09-30 Kazu Hirata <kazu@codesourcery.com>
2008 * tree-vect-transform.c, config/ms1/ms1.md,
2009 config/s390/s390.c, config/v850/v850.md: Fix comment typos.
2010 Follow spelling conventions.
2011 * doc/invoke.texi, doc/md.texi: Fix typos.
2013 2005-09-30 Andrew Macleod <amacleod@redat.com>
2015 PR tree-optimization/21430
2016 * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
2017 use operands, and set stmt pointer if need be.
2018 (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
2019 tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
2022 2005-09-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2025 * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
2027 2005-09-29 Mark Mitchell <mark@codesourcery.com>
2029 * optabs.c (expand_binop): Initialize first_pass_p.
2031 2005-09-29 Jakub Jelinek <jakub@redhat.com>
2034 * c-decl.c (c_write_global_declarations_1): If any
2035 wrapup_global_declaration_2 call returned true, restart the loop.
2037 2005-09-29 Daniel Berlin <dberlin@dberlin.org>
2039 Fix PR tree-optimization/24117
2040 * tree-ssa-structalias.c (find_func_aliases): Strip nops
2041 before considering whether to use anyoffset.
2043 2005-09-29 Paolo Bonzini <bonzini@gnu.org>
2047 2005-09-15 Paolo Bonzini <bonzini@gnu.org>
2049 * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2051 (swap_commutative_operands_with_target): New.
2053 2005-09-29 Paolo Bonzini <bonzini@gnu.org>
2056 * gimplify.c (gimplify_asm_expr): Raise an error if an output is
2059 2005-09-29 Steven Bosscher <stevenb@suse.de>
2061 PR tree-optimization/23911
2062 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
2063 and IMAGPART_EXPR too.
2065 2005-09-28 Mark Mitchell <mark@codesourcery.com>
2068 * expmed.c (expand_shift): Move logic to reverse rotation
2069 direction when rotating by constants ...
2070 * optabs.c (expand_binop): ... here.
2071 * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
2072 (ix86_rotrdi3): New pattern.
2073 (rotldi3): Handle 32-bit mode.
2074 (ix86_rotldi3): New pattern.
2076 2005-09-29 Alan Modra <amodra@bigpond.net.au>
2079 * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
2080 check for numbers that need no bit twiddle.
2082 2005-09-28 Geoffrey Keating <geoffk@apple.com>
2084 * config/rs6000/t-darwin8: Uncomment contents, allow -m64
2085 multilib to be built.
2087 * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
2088 (stage1-start): Delete old libgcc and libunwind before moving
2089 anything into the stage directory.
2090 (stage2-start): Likewise.
2091 (stage3-start): Likewise.
2092 (stage4-start): Likewise.
2093 (stageprofile-start): Likewise.
2094 (stagefeedback-start): Likewise.
2095 * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
2096 header in tm_file and CPU-specific t-darwin in tmake_file.
2097 (i[34567]86-*-darwin*): Don't change tm_file.
2098 (powerpc-*-darwin*): Don't change tm_file or tmake_file.
2099 * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
2100 shared library stub for target OS version.
2101 * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
2102 (SHLIB_LINK): Don't make SHLIB_SOLINK.
2103 (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
2104 (libgcc_s.%.dylib): New.
2106 (install-darwin-libgcc-stubs): New.
2107 (INSTALL_LIBGCC): New append.
2108 * config/i386/darwin-libgcc.10.4.ver: New.
2109 * config/i386/darwin-libgcc.10.5.ver: New.
2110 * config/i386/t-darwin: New.
2111 * config/rs6000/darwin-libgcc.10.4.ver: New.
2112 * config/rs6000/darwin-libgcc.10.5.ver: New.
2113 * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
2114 * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
2116 2005-09-28 Paul Brook <paul@codesourcery.com>
2118 * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
2121 2005-09-28 Richard Guenther <rguenther@suse.de>
2123 PR tree-optimization/23853
2124 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
2125 host_integerp to verify misalignment value.
2127 2005-09-28 Richard Henderson <rth@redhat.com>
2129 * builtins.c (get_builtin_sync_mode): New.
2130 (expand_builtin_sync_operation): Pass in mode argument.
2131 (expand_builtin_compare_and_swap): Likewise.
2132 (expand_builtin_lock_test_and_set): Likewise.
2133 (expand_builtin_lock_release): Likewise.
2134 (expand_builtin): Update to match.
2136 2005-09-28 Nick Clifton <nickc@redhat.com>
2138 * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
2139 formatting. Add check to PLUS case to ensure that the offset is
2140 within an acceptable range.
2142 * config/v850/v850.md (casesi): Disable the generation of the
2143 switch pattern as it is not being handled properly at the moment.
2145 * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
2146 for when the high words are identical.
2148 2005-09-27 Richard Henderson <rth@redhat.com>
2150 * pretty-print.c (pp_base_format): Fix typo for %>.
2152 2005-09-27 Daniel Berlin <dberlin@dberlin.org>
2153 Devang Patel <dpatel@apple.com>
2155 PR tree-optimization/23625
2156 * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
2157 LABEL_EXPR, assertion check.
2159 2005-09-27 J"orn Rennecke <joern.rennecke@st.com>
2161 * optabs.c (no_conflict_move_test): Check if a result of a
2162 to-be-moved insn would be clobbered by an originally
2165 2005-09-27 Jeff Law <law@redhat.com>
2167 * passes.c (init_optimization_passes): Replace copy propagation
2168 passes immediately after DOM with phi-only copy propagation
2169 pases. Add phi-only copy propagation pass after first DOM pass.
2170 * tree-pass.h (pass_phi_only_copy_prop): Declare.
2171 * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
2172 If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
2173 (execute_copy_prop): Accept new PHI_ONLY argument. Pass it along
2174 to init_copy_prop. Callers updated.
2175 (do_phi_only_copy_prop): New function.
2176 (pass_phi_only_copy_prop): New pass descriptor.
2178 2005-09-27 Nick Clifton <nickc@redhat.com>
2180 * libgcc2.c (__popcount_tab): Remove redundant prototype.
2182 2005-09-26 Jason Merrill <jason@redhat.com>
2185 * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
2187 * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
2189 2005-09-26 James E Wilson <wilson@specifix.com>
2191 * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
2192 copyright. Add gcc copyright plus libgcc exception.
2193 * config/ia64/crtfastmath.asm: Remove glibc copyright. Add gcc
2195 * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
2197 2005-09-26 Jeff Law <law@redhat.com>
2199 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
2200 about when to iterate.
2202 2005-09-23 Fariborz Jahanian <fjahanian@apple.com>
2205 * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
2206 for __complex__ double in -mcpu=G5 mode.
2208 2005-09-26 Sebastian Pop <pop@cri.ensmp.fr>
2210 PR tree-optimization/23942
2211 * Makefile.in (SCEV_H): Depends on PARAMS_H.
2212 * tree-scalar-evolution.c: Include params.h.
2214 (follow_ssa_edge, follow_ssa_edge_in_rhs,
2215 follow_ssa_edge_in_condition_phi_branch,
2216 follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
2217 Change return type to t_bool. Use a parameter to limit the size of
2218 trees that are walked before stopping
2219 (analyze_evolution_in_loop): Initialize the limit to 0.
2220 (follow_ssa_edge): Give up by returning t_dont_know if the limit
2221 exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2223 2005-09-26 Uros Bizjak <uros@kss-loka.si>
2226 * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
2227 simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
2229 2005-09-26 Fariborz Jahanian <fjahanian@apple.com>
2231 * combine.c (make_extraction): Check for valid use of subreg.
2233 2005-09-26 Uros Bizjak <uros@kss-loka.si>
2236 * config/i386/i386.md ("*fistdi2_1"): New pattern.
2237 ("*fist<mode>2_1"): Use only HImode and SImode register operands.
2238 ("fist<mode>2_with_temp"): Use only register operands.
2240 2005-09-26 J"orn Rennecke <joern.rennecke@st.com>
2242 * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
2243 CALL_INSN_FUNCTION_USAGE.
2245 2005-09-26 Richard Guenther <rguenther@suse.de>
2248 * gcse.c: Include hashtab.h, define ldst entry hashtable.
2249 (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
2250 (ldst_entry): Use the hashtable instead of list-walking.
2251 (find_rtx_in_ldst): Likewise.
2252 (free_ldst_entry): Free the hashtable.
2253 (compute_ld_motion_mems): Create the hashtable.
2254 (trim_ld_motion_mems): Remove entry from hashtable if
2255 removing it from list.
2256 (compute_store_table): Likewise^2.
2257 (store_motion): Free hashtable in case we did not see
2260 2005-09-25 Kazu Hirata <kazu@codesourcery.com>
2262 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
2263 and arg1 if we are passing them to fold_build2.
2265 2005-09-25 Dan Nicolaescu <dann@ics.uci.edu>
2268 * config/i386/i386.c (ix86_function_regparm): Fix the test for
2271 2005-09-25 Richard Henderson <rth@redhat.com>
2273 * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
2274 SYMBOL_REF_TLS_MODEL to be correct.
2276 2005-09-24 Richard Henderson <rth@redhat.com>
2278 * ipa-type-escape.c (discover_unique_type): Remove dead code at
2279 end of function. Reindent.
2281 2005-09-24 Ian Lance Taylor <ian@airs.com>
2283 * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
2284 NEGATE_EXPR/BIT_NOT_EXPR case.
2286 2005-09-24 Richard Henderson <rth@redhat.com>
2288 * c-common.c (handle_mode_attribute): When not modifying in place,
2289 create subtypes for enumerations.
2290 (sync_resolve_return): Use TYPE_MAIN_VARIANT.
2291 * gimplify.c (create_tmp_from_val): Likewise.
2293 2005-09-24 Alexandre Oliva <aoliva@redhat.com>
2295 * config/i386/i386.md (*tls_global_dynamic_64,
2296 *tls_local_dynamic_base_64): Add missing mode to call.
2297 (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
2299 2005-09-24 Jan Hubicka <jh@suse.cz>
2301 * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
2302 (cgraph_clone_node): Likewise.
2303 * cgraph.h (cgraph_clone_edge): Update prototype.
2304 (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
2305 duplicated prototypes; add updating argument.
2306 * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
2307 * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
2309 (cgraph_mark_inline_edge): Likewise.
2310 (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
2311 (cgraph_flatten_node): Likewise.
2312 (cgraph_decide_recursive_inlining): Likewise.
2313 (cgraph_decide_inlining_of_small_function): Likewise.
2314 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2316 2005-09-23 David Edelsohn <edelsohn@gnu.org>
2317 Pete Steinmetz <steinmtz@us.ibm.com>
2319 * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
2320 (rldic.): Set type to "compare".
2322 (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR. Set type to
2323 mfjmpr for MFCTR/MFLR.
2324 (movdf_hardfloat64): Same.
2325 (movdf_softfloat64): Same. Correct order of store and move types.
2326 (movti_string): Set type to store_ux/load_ux.
2327 (load_multiple): Set type to load_ux.
2328 (store_multiple): Set type to store_ux.
2329 (movmemsi): Set type to store_ux.
2330 (output_cbranch direct_return): Set type to jmpreg.
2331 (stmw): Set type to store_ux.
2332 (lmw): Set type to load_ux.
2333 * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
2334 * config/rs6000/440.md (ppc440-store): Increase latency to 6.
2335 * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
2336 * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
2337 * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
2338 * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
2339 (rios1-fpstore): Increase latency to 3.
2340 * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
2341 * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
2343 2005-09-23 David Edelsohn <edelsohn@gnu.org>
2344 Andrew Pinski <pinskia@physics.uc.edu>
2346 * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
2347 operand2 constraint to "b".
2348 (sync_<fetchop_name>di_internal): Same.
2349 (sync_old_<fetchop_name>si_internal): Change operand3 constraint
2351 (sync_old_<fetchop_name>di_internal): Same.
2352 (sync_new_<fetchop_name>si_internal): Same.
2353 (sync_new_<fetchop_name>di_internal): Same.
2355 2005-09-23 J"orn Rennecke <joern.rennecke@st.com>
2358 * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
2359 case, define as macros.
2361 PR rtl-optimization/23837
2362 * optabs.c (no_conflict_move_test): Don't set must_stay for a
2363 clobber / clobber match between dest and p->first.
2365 * optabs.c (emit_libcall_block): Use no_conflict_move_test.
2366 (no_conflict_move_test): Update comments.
2368 2005-09-22 Ranjit Mathew <rmathew@gcc.gnu.org>
2370 * doc/install.texi: Update URL for Jacks.
2371 * doc/sourcebuild.texi: Likewise.
2373 2005-09-22 David Edelsohn <edelsohn@gnu.org>
2376 * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
2377 registers when choosing register preferences.
2378 (movdf_hardfloat64): Same.
2380 2005-09-22 Andreas Krebbel <krebbel1@de.ibm.com>
2382 * expmed.c (expand_shift): Don't use the target of the rotate as
2383 target for the first expanded shift insn.
2384 * testsuite/gcc.dg/20050922-1.c: Testcase added.
2386 2005-09-21 Zdenek Dvorak <dvorakz@suse.cz>
2388 PR tree-optimization/22438
2389 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
2390 preserved iv rhs rewriting specially.
2392 2005-09-21 Daniel Berlin <dberlin@dberlin.org>
2394 * tree-data-ref.c (analyze_array_indexes): Only estimate when
2395 estimate_only is true.
2396 * tree-flow.h (ref_contains_indirect_ref): New prototype.
2397 * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
2398 tree-ssa-structalias.c
2399 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
2400 ref_contains_indirect_ref.
2401 * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
2403 2005-09-21 DJ Delorie <dj@redhat.com>
2405 * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
2407 (mn10300_return_in_memory): Support variable size types also.
2408 (mn10300_pass_by_reference): Likewise.
2409 (mn10300_function_value): New.
2410 * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
2411 (FUNCTION_OUTGOING_VALUE): Likewise.
2412 * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
2413 * doc/invoke.texi: Document it.
2415 2005-09-21 Uros Bizjak <uros@kss-loka.si>
2418 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
2419 force integer op1 into register for XFmode compares.
2421 2005-09-21 Kazu Hirata <kazu@codesourcery.com>
2424 * expmed.c (alg_code): Add alg_impossible.
2425 (alg_hash_entry): Add cost.
2426 (synth_mult): Record alg_impossible in the hash table if
2427 multiplication by a given integer is impossble within the
2428 limit. Speed up using alg_impossible.
2430 2005-09-20 Daniel Berlin <dberlin@dberlin.org>
2432 * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
2433 argument. Allow and set any offset if needs_anyoffset is passed
2435 (get_constraint_for): Add argument here too.
2437 (do_structure_copy): Pass NULL to get_constraint_for.
2438 (handle_ptr_arith): Ditto.
2439 (find_func_aliases): Ditto.
2441 2005-09-20 J"orn Rennecke <joern.rennecke@st.com>
2443 PR rtl-optimization/23898
2444 * output.h (get_attr_min_length): Declare.
2445 * final.c (get_attr_length_1): New function, broken out of:
2447 (get_attr_min_length): New function.
2448 * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
2449 (duplicate_computed_gotos): Likewise.
2450 * genattr.c (insn_min_length): Generate declaration.
2451 * genattrtab.c (min_fn, min_attr_value): New functions.
2452 (make_length_attrs): Generate insn_min_length.
2454 2005-09-20 Steve Ellcey <sje@cup.hp.com>
2456 * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
2458 2005-09-20 Richard Henderson <rth@redhat.com>
2460 PR tree-optimization/24059
2461 * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
2464 2005-09-20 Joseph S. Myers <joseph@codesourcery.com>
2466 * c.opt (fextended-identifiers): New.
2467 * c-opts.c (c_common_handle_option): Handle
2468 -fextended-identifiers.
2469 * doc/cpp.texi: Update documentation of extended identifiers.
2470 * doc/cppopts.texi (-fextended-identifiers): Document.
2472 2005-09-20 Jakub Jelinek <jakub@redhat.com>
2474 PR tree-optimization/23929
2475 * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
2478 PR tree-optimization/23818
2479 * tree-stdarg.c (execute_optimize_stdarg): Call
2480 calculate_dominance_info.
2482 2005-09-20 Daniel Berlin <dberlin@dberlin.org>
2484 * tree-data-ref.c (get_number_of_iters_for_loop): New function.
2485 (analyze_siv_subscript_cst_affine): Add weak SIV test.
2486 (compute_overlap_steps_for_affine_1_2): Use
2487 get_number_of_iters_for_loop.
2488 (analyze_subscript_affine_affine): Check whether difference is
2490 Use get_number_of_iters_for_loop.
2491 Check whether overlap occurs outside of bounds.
2492 (analyze_miv_subscript): Use get_number_of_iters_for_loop.
2494 2005-09-20 Andreas Krebbel <krebbel1@de.ibm.com>
2496 * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
2497 base register if possible.
2499 2005-09-20 Zdenek Dvorak <dvorakz@suse.cz>
2501 PR tree-optimization/18463
2502 * tree-chrec.c (chrec_convert): Return fold_converted chrec if
2503 converting it directly is not possible.
2504 (chrec_convert_aggressive): New function.
2505 * tree-chrec.h (chrec_convert_aggressive): Declare.
2506 * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
2507 Fold chrec conversions aggressively if asked to.
2508 (instantiate_parameters): Modified because of changes in
2509 instantiate_parameters_1.
2511 2005-09-19 Richard Henderson <rth@redhat.com>
2513 * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
2514 (reduc_splus_v2df): New.
2516 2005-09-19 Richard Sandiford <richard@codesourcery.com>
2518 * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
2519 (ADDITIONAL_REGISTER_NAMES): Add missing comma. Remove final comma.
2521 2005-09-19 Richard Henderson <rth@redhat.com>
2523 * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
2526 2005-09-19 Richard Henderson <rth@redhat.com>
2528 * config/ia64/ia64.c (ia64_expand_widen_sum): New.
2529 (ia64_expand_dot_prod_v8qi): New.
2530 * config/ia64/ia64-protos.h: Update.
2531 * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
2532 widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
2533 sdot_prodv8qi, sdot_prodv4hi): New.
2534 (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
2536 2005-09-19 Richard Henderson <rth@redhat.com>
2539 * real.c (exact_real_truncate): Return false if the format cannot
2540 represent the number as a normal.
2542 * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
2543 for a memory source.
2545 2005-09-19 Dorit Nuzman <dorit@il.ibm.com>
2547 * tree-ssa-operands.c (swap_tree_operands): Export.
2548 * tree.h (swap_tree_operands): Declare.
2549 * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
2550 Call swap_tree_operands.
2552 2005-09-19 Richard Henderson <rth@redhat.com>
2554 * tree-flow.h (merge_alias_info): Declare.
2555 * tree-ssa-copy.c (merge_alias_info): Export.
2556 * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
2557 (vect_create_data_ref_ptr): Use create_iv directly.
2558 (vectorizable_load): Use correct types for integer constants.
2559 (vect_generate_tmps_on_preheader): Likewise.
2560 (vect_gen_niters_for_prolog_loop): Likewise.
2562 2005-09-19 Steven Bosscher <stevenb@suse.de>
2564 PR rtl-optimization/23943
2565 * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
2567 2005-09-18 Jan Hubicka <jh@suse.cz>
2569 * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
2571 2005-09-18 Eric Botcazou <ebotcazou@adacore.com>
2573 * varasm.c (output_constant): Do not abort on conversions to union
2574 types between different sizes.
2576 2005-09-18 Richard Guenther <rguenther@suse.de>
2579 * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
2582 2005-09-18 Paul Brook <paul@codesourcery.com>
2584 * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
2586 2005-09-17 Richard Henderson <rth@redhat.com>
2588 * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
2589 * tree-ssa-loop.c (pass_vect_dce): Remove.
2590 * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
2593 2005-09-17 Richard Henderson <rth@redhat.com>
2595 * tree-pass.h (pass_vect_dce): Declare.
2596 * passes.c (init_optimization_passes): Add it.
2597 * tree-flow.h (tree_ssa_dce): Declare.
2598 * tree-ssa-dce.c (tree_ssa_dce): Export.
2599 * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
2600 (gate_tree_vectorize): ... here.
2601 (pass_vect_dce): New.
2603 2005-09-17 Jan Hubicka <jh@suse.cz>
2605 * except.c (struct eh_status): Turn region_array into vec.
2606 (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
2607 convert_from_eh_region_ranges, find_exception_handler_labels,
2608 current_function_has_exception_handlers, assign_filter_values,
2609 build_post_landing_pads, dw2_build_landing_pads,
2610 sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
2611 sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
2612 foreach_reachable_handler, can_throw_internal_1,
2613 convert_to_eh_region_ranges, verify_eh_tree): Update uses of
2615 (duplicate_eh_region_1): Update region_array.
2616 (duplicate_eh_regions): Resize region_array and avoid recomputing.
2618 2005-09-17 David Edelsohn <edelsohn@gnu.org>
2621 * expmed.c (expand_mult): Substitute simple register for op0 when
2624 2005-09-17 Richard Henderson <rth@redhat.com>
2626 * expr.c (emit_move_via_integer): Add force argument, pass it on
2627 to emit_move_change_mode. Update callers.
2628 (emit_move_complex): Pass true to new force argument.
2629 * function.c (expand_function_end): Move expand_eh_return call
2630 earlier. Merge sub-word complex values into a pseudo before
2631 copying to the return hard register.
2633 2005-09-17 Eric Botcazou <ebotcazou@adacore.com>
2635 * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
2636 between different sizes.
2638 2005-09-16 Paolo Bonzini <bonzini@gnu.org>
2642 * passes.c (init_optimization_passes): Register dump files for
2645 2005-09-16 Andreas Krebbel <krebbel1@de.ibm.com>
2647 * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
2648 * config/s390/s390.c (s390_overlap_p): New function.
2649 * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
2650 peephole2, "*xc" peephole2): Added overlap check to the peephole2
2653 2005-09-16 Richard Guenther <rguenther@suse.de>
2655 * ipa-pure-const.c (static_execute): Free auxiliar information.
2656 * ipa-type-escape.c (discover_unique_type): Free temporary key.
2657 * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
2659 2005-09-15 DJ Delorie <dj@redhat.com>
2661 * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
2663 2005-09-15 Paolo Bonzini <bonzini@gnu.org>
2665 * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2667 (swap_commutative_operands_with_target): New.
2669 2005-09-15 Daniel Berlin <dberlin@dberlin.org>
2671 * tree-data-ref.c (analyze_array_indexes): Add estimate_only
2674 (estimate_iters_using_array): New function.
2675 * tree-data-ref.h (estimate_iters_using_array): Prototype
2676 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
2677 Use estimate_iters_using_array instead of analyze_array.
2679 2005-09-15 Eric Botcazou <ebotcazou@adacore.com>
2681 * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
2684 2005-09-15 Michael Matz <matz@suse.de>
2686 * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
2688 2005-09-14 Daniel Berlin <dberlin@dberlin.org>
2690 PR tree-optimization/23835
2691 * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
2692 (create_name_tags): Rewrite to be not O(num_ssa_names^2).
2694 2005-09-14 Richard Henderson <rth@redhat.com>
2696 * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
2697 (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
2699 2005-09-14 Andrew Pinski <pinskia@physics.uc.edu>
2701 * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
2702 in the ARRAY_TYPE case.
2704 2005-09-14 Eric Botcazou <ebotcazou@adacore.com>
2706 * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
2708 2005-09-14 Uros Bizjak <uros@kss-loka.si>
2711 * tree-vect-transform.c (vectorizable_operation): Return false for
2712 scalar shift operations and for vector shift operations with
2713 non-invariant shift arguments. Use scalar tree operand op1 as
2714 a shift operand when vector shift insn pattern uses scalar shift
2716 * Makefile.in (tree-vect-transform.o): Depend on recog.h.
2718 2005-09-14 Olivier Hainque <hainque@adacore.com>
2720 * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
2721 value if it has side-effects.
2723 2005-09-14 David Edelsohn <edelsohn@gnu.org>
2726 * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
2728 2005-09-14 Alan Modra <amodra@bigpond.net.au>
2730 * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
2731 passed as NAME as if it were label at start of function code.
2733 2005-09-13 Kaz Kojima <kkojima@gcc.gnu.org>
2735 * config/sh/sh.md (*movv4sf_i): Add general register cases to
2738 2005-09-13 Andrew Pinski <pinskia@physics.uc.edu>
2740 * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
2741 as early clobber. Rewrite so the PIC register is not implicitly used.
2743 2005-09-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2745 * tree.c (annotate_with_file_line): Compare line numbers before
2748 2005-09-13 Uros Bizjak <uros@kss-loka.si>
2751 * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
2752 (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
2754 2005-09-13 Ian Lance Taylor <ian@airs.com>
2756 * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
2757 than a HOST_WIDEST_INT to gen_doloop_begin.
2759 2005-09-13 Diego Novillo <dnovillo@redhat.com>
2761 * tree-dfa.c (dump_variable): Guard against NULL annotations.
2763 2005-09-13 Zdenek Dvorak <dvorakz@suse.cz>
2765 PR tree-optimize/23817
2766 * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
2768 2005-09-13 Alan Modra <amodra@bigpond.net.au>
2771 * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
2772 word before changing the stack pointer. Use gen_frame_mem for MEMs.
2773 Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
2774 (restore_stack_nonlocal): Likewise.
2775 (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
2777 2005-09-12 Ian Lance Taylor <ian@airs.com>
2780 * c.opt (ffriend-injection): New C++ option.
2781 * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
2782 (C++ Dialect Options): Document -ffriend-injection.
2784 2005-09-12 Josh Conner <jconner@apple.com>
2787 * ipa-reference.c (static_execute): Don't mark variables in
2788 named sections TREE_READONLY.
2790 2005-09-12 Alan Modra <amodra@bigpond.net.au>
2792 * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
2795 2005-09-12 Andrew Pinski <pinskia@physics.uc.edu>
2797 * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
2798 V_MUST_DEF instead of just the first_use_p.
2799 Don't mark the virtual variables for renaming on the statement which
2801 (pass_dse): Remove TODO_update_ssa.
2803 2005-09-12 J"orn Rennecke <joern.rennecke@st.com>
2806 * stor-layout.c (compute_record_mode): For records with a single
2807 field, actually check the field's mode size against the type size.
2809 * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
2810 registers for TARGET_SHMEDIA.
2811 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
2812 GENERAL_FP_REGS to GENERAL_DF_REGS. Add GENERAL_FP_REGS as union
2813 of GENERAL_REGS and FP_REGS.
2815 2005-09-12 Bernd Schmidt <bernd.schmidt@analog.com>
2817 * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
2819 2005-09-12 Alan Modra <amodra@bigpond.net.au>
2821 * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
2822 CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
2823 are omitted. Exclude stack_tie insn too.
2825 2005-09-11 David Edelsohn <edelsohn@gnu.org>
2827 PR rtl-optimization/23098
2828 * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
2830 * config/rs6000/rs6000.md (movdf splitter): Use
2831 const_double_operand predicate for TARGET_POWERPC64.
2832 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
2833 SYMBOL_REF method to ABI_V4.
2835 * config/rs6000/altivec.md (build_vector_mask_for_load): Use
2836 replace_equiv_address.
2837 * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
2838 rs6000_sr_alias_set and MEM_NOTRAP.
2839 (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
2841 2005-09-11 Eric Botcazou <ebotcazou@adacore.com>
2843 * tree.c (contains_placeholder_p) <tcc_expression>: Properly
2844 handle CALL_EXPR again.
2846 2005-09-11 Richard Earnshaw <richard.earnshaw@arm.com>
2848 * arm/predicates.md (alignable_memory_operand): Delete.
2850 2005-09-10 Richard Henderson <rth@redhat.com>
2853 * dbxout.c (dbxout_expand_expr): New.
2854 (dbxout_symbol): Use it.
2856 2005-09-10 Richard Earnshaw <richard.earnshaw@arm.com>
2858 * arm.c (arm_gen_rotated_half_load): Delete.
2859 (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
2860 (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
2861 (thumb_set_return_address): Likewise.
2862 (thumb_load_double_from_address): Use adjust_address.
2863 * arm.md (splits calling arm_gen_rotated_half_load): Delete.
2864 (extendhsisi2_mem, movhi_bytes): Use change_address.
2865 (movhi): Use widen_memory_access.
2866 (reload_out_df): Use replace_equiv_address.
2867 * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
2869 2005-09-09 Richard Henderson <rth@redhat.com>
2872 * dbxout.c: Include expr.h.
2873 (dbxout_global_decl): Don't suppress for DECL_RTL unset.
2874 (dbxout_symbol): Handle DECL_VALUE_EXPR.
2875 * Makefile.in (dbxout.o): Add EXPR_H.
2877 2005-09-09 Zdenek Dvorak <dvorakz@suse.cz>
2879 PR tree-optimization/23509
2880 * tree-cfg.c (replace_uses_by): Use replace_exp.
2881 * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
2882 pointers have name_mem_tag or type_mem_tag set.
2884 2005-09-09 Sebastian Pop <pop@cri.ensmp.fr>
2886 * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
2887 CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
2888 of wrongly accessing operands.
2890 2005-09-09 Sebastian Pop <pop@cri.ensmp.fr>
2892 * Makefile.in (tree-chrec.o): Depends on SCEV_H.
2893 * tree-chrec.c: Include tree-scalar-evolution.h.
2894 (chrec_convert): Instantiate the base and step before calling
2895 scev_probably_wraps_p that would fail on parametric evolutions.
2896 Collect all the fails into a single section failed_to_convert,
2897 print a diagnostic, and return chrec_dont_know instead of calling
2899 * tree-scalar-evolution.c (loop_closed_phi_def): New.
2900 (instantiate_parameters_1): Avoid instantiation of loop closed ssa
2902 (scev_const_prop): Don't replace the definition of a loop closed ssa
2903 phi node by itself, or by another loop closed ssa phi node.
2904 * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
2905 that base and step are defined.
2907 2005-09-09 Richard Guenther <rguenther@suse.de>
2910 * fold-const.c (fold_ternary): Check truth_value_p before
2911 calling invert_truthvalue.
2913 2005-09-09 Nick Clifton <nickc@redhat.com>
2915 * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
2916 * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
2917 dimension of these arrays.
2918 * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
2920 * longlong.h: Only provide a prototype for the __clz_tab[] array
2921 if this header has not been included from libgcc2.h.
2922 * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
2924 Provide prototypes for exported functions.
2925 Use the __clz_tab[] and __popcount_tab[] arrays provided by
2928 2005-09-08 Josh Conner <jconner@apple.com>
2932 * expr.c (expand_expr_addr_expr_1): Don't invoke
2933 expand_simple_binop for EXPAND_INITIALIZER.
2935 2005-09-08 Richard Henderson <rth@redhat.com>
2938 * toplev.c (wrapup_global_declaration_1): Split out ...
2939 (wrapup_global_declaration_2): ... from ...
2940 (wrapup_global_declarations): ... here. Return bool.
2941 (check_global_declaration_1): Split out ...
2942 (check_global_declarations): from here.
2943 (emit_debug_global_declarations): New.
2944 * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
2945 check_global_declaration_1, emit_debug_global_declarations): Declare.
2946 * c-decl.c (c_write_global_declarations_1): Don't create a vector
2947 of decls. Call wrapup_global_declaration_1,
2948 wrapup_global_declaration_2, check_global_declaration_1 directly.
2949 (c_write_global_declarations_2): New.
2951 (c_write_global_declarations): Call c_write_global_declarations_2.
2952 * langhooks.c (write_global_declarations): Call
2953 emit_debug_global_declarations.
2955 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
2956 remove decls that have DECL_RTL_SET_P.
2957 * passes.c (rest_of_decl_compilation): Invoke
2958 cgraph_varpool_finalize_decl for all but functions.
2960 2005-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2962 * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
2963 the result of a conversion if the new min and max cannot be compared.
2965 2005-09-08 Andreas Krebbel <krebbel1@de.ibm.com>
2967 * config/s390/s390.c (s390_sr_alias_set): Variable removed.
2968 (override_options): Setting s390_sr_alias_set removed.
2969 (save_fpr, save_gprs): Set alias set to vararg or frame.
2970 (restore_fpr, restore_gprs, s390_emit_prologue): Replace
2971 s390_sr_alias_set with get_frame_alias_set ().
2972 (s390_gimplify_va_arg): Replace s390_sr_alias_set with
2973 get_varargs_alias_set ().
2975 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
2979 * c-parser.c (c_parser_objc_method_definition): If the next
2980 token is not "{", error out and don't start the function.
2982 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
2984 * tree-vrp.c (extract_range_from_expr): Move the check for non
2985 nullness after the check for gimple invariant.
2987 2005-09-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2989 * tree.c (host_integerp, tree_low_cst): Correct function comment.
2991 2005-09-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2994 * config/m32r.md (movmemsi_internal): Canonicalize order of
2995 operands in PLUS component of template.
2997 2005-09-07 Andreas Krebbel <krebbel1@de.ibm.com>
2999 * reload1.c (fixup_eh_region_note): Remove assertion.
3000 (fixup_abnormal_edges): Reverted removal of call to
3001 find_many_sub_basic_blocks made on 2005-08-31.
3003 2005-09-07 Richard Henderson <rth@redhat.com>
3005 * function.c (ARG_POINTER_CFA_OFFSET): Move ...
3006 * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
3007 (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
3008 * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
3009 rearrange for better packing.
3010 (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
3011 (lookup_cfa_1): Remove inline marker.
3012 (cfa_equal_p): Split out of ...
3013 (def_cfa_1): ... here. Use INVALID_REGNUM.
3014 (build_cfa_loc): Handle !cfa->indirect.
3015 (frame_pointer_cfa_offset): New.
3016 (dbx_reg_number): Assert register elimination performed; do
3017 leaf register remapping.
3018 (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
3019 (eliminate_reg_to_offset): New.
3020 (based_loc_descr): Remove can_use_fbreg argument. Use fbreg only
3021 for verifiably local stack frame addresses; re-base to CFA.
3022 (mem_loc_descriptor): Remove can_use_fbreg argument.
3023 (concat_loc_descriptor, loc_descriptor): Likewise.
3024 (containing_function_has_frame_base): Remove.
3025 (rtl_for_decl_location): Don't do register elimination or
3026 leaf register remapping here.
3027 (secname_for_decl): Split out from ..
3028 (add_location_or_const_value_attribute): ... here.
3029 (convert_cfa_to_loc_list): New.
3030 (compute_frame_pointer_to_cfa_displacement): New.
3031 (gen_subprogram_die): Use them.
3032 * tree.h (frame_base_decl): Remove.
3033 * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
3034 (prologue_stack_adjust): Remove.
3035 (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
3036 (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
3037 (set_frame_base_location): Remove.
3038 (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
3039 (dump_attrs_list, dump_dataflow_set): Use string concatenation.
3040 (vt_add_function_parameters): Don't eliminate_regs.
3041 (vt_initialize): Don't create frame_base_decl.
3043 2005-09-07 Eric Botcazou <ebotcazou@libertysurf.fr>
3045 * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
3046 version of GNU binutils for 4.x and later.
3048 2005-09-06 Mark Mitchell <mark@codesourcery.com>
3050 * ggc-page.c (ggc_push_context): Remove.
3051 (ggc_pop_context): Likewise.
3052 * ggc.h (ggc_push_context): Remove.
3053 (ggc_pop_context): Likewise.
3055 2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
3058 * config/arc/arc.c (arc_output_function_epilogue): Update flags while
3059 returning from an interrupt handler.
3061 2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
3064 * config/arc/arc.c (output_shift): Add check for loop count when
3067 2005-09-06 Steven Bosscher <stevenb@suse.de>
3069 * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
3071 (abs_replacement): Likewise.
3072 (pass_phiopt): Remove TODO_update_ssa.
3074 2005-09-06 Jakub Jelinek <jakub@redhat.com>
3077 * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
3078 if "return with no value, in function returning non-void" warning
3080 * tree-cfg.c (execute_warn_function_return): Don't look at
3081 RETURN_EXPRs with TREE_NO_WARNING set.
3084 * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
3085 for internal functions doesn't use registers used by global registers
3086 variables. Use fewer register parameters if there are global register
3089 2005-09-06 Olivier Hainque <hainque@adacore.com>
3090 Eric Botcazou <ebotcazou@adacore.com>
3093 * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
3094 when we would be extracting outside its bit span (bitpos+bitsize
3095 larger than its mode), possible with some VIEW_CONVERT_EXPRs from
3096 Ada unchecked conversions.
3098 2005-09-06 Steven Bosscher <stevenb@suse.de>
3100 * tree-ssa-pre.c (try_look_through_load): New function.
3101 (compute_avail): Use it to try to look through loads for some
3102 more useful expressions.
3104 2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
3106 * simplify-rtx.c (simplify_binary_operation_1): Correct the
3107 condition for detecting cases like (a&a) and (a^a).
3109 2005-09-06 Keith Besaw <kbesaw@us.ibm.com>
3111 * common.opt: Add option ftree-vect-loop-version.
3112 * params.def: Add --param vect-max-version-checks.
3113 * doc/invoke.texi: Document ftree-vect-loop-version and
3114 --param vect-max-version-checks.
3115 * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
3116 may_misalign_stmts and defines for accessors.
3117 * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
3118 LOOP_VINFO_MAY_MISALIGN_STMTS.
3119 (destroy_loop_vec_info): VEC_free for
3120 LOOP_VINFO_MAY_MISALIGN_STMTS.
3121 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
3122 Update documentation.
3123 (vect_update_misalignment_for_peel): New.
3124 (vect_enhance_data_refs_alignment): Update to choose loop
3125 peeling or loop versioning if appropriate for the (potentially)
3126 unaligned data references in the loop.
3127 (vect_analyze_data_refs_alignment): Remove call to
3128 vect_enhance_data_refs_alignment so the checks can be done
3130 (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
3131 and move up call to vect_analyze_data_refs_alignment.
3132 * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
3133 (vect_transform_loop): Add call to loop_version.
3135 2005-09-06 Jakub Jelinek <jakub@redhat.com>
3137 PR rtl-optimization/23098
3138 * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
3139 * simplify-rtx.c (constant_pool_reference_p): New function.
3140 * rtl.h (constant_pool_reference_p): New prototype.
3141 * config/i386/i386.md (pushf split, mov[sdx]f split): Use
3142 constant_pool_reference_p in condition and
3143 avoid_constant_pool_reference in preparation statements.
3145 2005-09-06 Andreas Krebbel <krebbel1@de.ibm.com>
3147 * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
3148 STRICT_LOW_PART SETs.
3150 2005-09-06 Alan Modra <amodra@bigpond.net.au>
3153 * except.c (sjlj_emit_function_enter): Find the function begin
3154 note even when it's not in first basic block.
3156 2005-09-06 Kelley Cook <kcook@gcc.gnu.org>
3158 * acinclude.m4: Renamed from aclocal.m4. Delete AM_LANGINFO_CODESET,
3159 AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
3160 * aclocal.m4: Regenerate.
3162 2005-09-05 DJ Delorie <dj@redhat.com>
3164 * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
3167 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
3169 * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
3170 config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
3171 config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
3172 Follow spelling conventions.
3173 * doc/invoke.texi: Follow spelling conventions.
3175 2005-09-05 J"orn Rennecke <joern.rennecke@st.com>
3177 * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
3178 * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
3179 * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
3181 2005-09-05 J"orn Rennecke <joern.rennecke@st.com>
3184 * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
3185 (output_stack_adjust): Use gen_tmp_stack_mem.
3186 (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
3187 (sh_set_return_address, sh_allocate_initial_value): Likewise.
3188 (sh_get_pr_initial_val): Likewise.
3189 (sh_builtin_saveregs): Use gen_frame_mem and change_address.
3190 (sh_initialize_trampoline): Likewise. Also use adjust_address.
3191 * sh.md (divsi_inv_m0): Use gen_const_mem.
3192 (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
3193 (movdf_i4+1): Use gen_tmp_stack_mem.
3194 (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
3195 (fpu_switch+2): Likewise.
3196 (movv4sf_i, movv16sf_i): Use adjust_address.
3197 (symGOT_load): Set MEM_NOTRAP_P bit.
3199 2005-09-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3202 * pa.c (emit_move_sequence): Fix typo in last change.
3204 2005-09-03 Jakub Jelinek <jakub@redhat.com>
3206 PR rtl-optimization/23454
3207 * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
3210 2005-09-03 Richard Henderson <rth@redhat.com>
3211 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3214 * pa.c (emit_move_sequence): Use replace_equiv_address instead of
3217 2005-09-02 Nicolas Pitre <nico@cam.org>
3219 * config/arm/arm.c (arm_legitimize_address): Limit the value passed
3220 to bit_count to 32 bits.
3222 2005-08-31 Mark Mitchell <mark@codesourcery.com>
3225 * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
3226 generating synthetic loads from volatile lvalues.
3228 005-09-02 Nick Clifton <nickc@redhat.com>
3230 * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
3231 __ctzhi2, __clzhi2): New functions.
3233 2005-09-02 Andrew Pinski <pinskia@physics.uc.edu>
3236 * tree-nested.c (struct var_map_elt): Mark with GTY.
3237 (struct nesting_info): Mark with GTY. Mark var_map's param is struct
3239 (lookup_field_for_decl): Allocate new element in GC memory.
3240 (lookup_tramp_for_decl): Likewise.
3241 (convert_nl_goto_reference): Likewise
3242 (create_nesting_tree): Allocate info in GC memory. Likewise for
3244 (free_nesting_tree): Free with ggc_free instead of free.
3245 (root): New static variable.
3246 (lower_nested_functions): Remove root as local variable. And zero out
3247 root at the end of the function.
3249 2005-09-02 J"orn Rennecke <joern.rennecke@st.com>
3251 PR rtl-optimization/20365
3252 * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
3253 to short. New member ix.
3254 (simplify_plus_minus_op_data_cmp): Break ties using ix member.
3255 (simplify_plus_minus): Initialize ix members before calling qsort.
3257 2005-09-02 Zdenek Dvorak <dvorakz@suse.cz>
3259 PR tree-optimization/23626
3260 * tree-cfg.c (replace_uses_by): Clean up eh info.
3262 2005-09-01 DJ Delorie <dj@redhat.com>
3264 * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
3267 2005-09-01 David Edelsohn <edelsohn@gnu.org>
3269 * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
3270 (rs6000_split_multireg_move): Use replace_equiv_address instead of
3273 2005-09-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
3275 * c-decl.c (diagnose_mismatched_decls): With -Wredundant-decls,
3276 do not issue warning for a variable definition following
3279 2005-09-01 Richard Henderson <rth@redhat.com>
3282 * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
3283 conversion to CONST_VECTOR.
3285 2005-09-01 Richard Henderson <rth@redhat.com>
3288 * reload1.c (reload_as_needed): Check !CALL_P before calling
3289 fixup_eh_region_note.
3290 * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
3292 2005-09-01 DJ Delorie <dj@redhat.com>
3294 * varasm.c (output_constant): Let the target resolve
3295 conversions of addresses to non-default pointer sizes.
3297 2005-09-01 Nicolas Pitre <nico@cam.org>
3299 * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
3300 to alow matching ARM pre-indexed addressing mode.
3301 (arm_override_options): Remove now irrelevant comment.
3303 2005-09-01 Phil Edwards <phil@codesourcery.com>
3305 * config.gcc (i*86-wrs-vxworks): Update. Split out vxworksae target.
3306 * config/i386/t-vxworks: Update multilibs for VxWorks 6 and RTP mode.
3307 * config/i386/vxworks.h: Likewise.
3308 * config/i386/t-vxworksae: New file, for VxWorks AE.
3309 * config/i386/vxworksae.h: Likewise.
3311 2005-09-01 Sebastian Pop <pop@cri.ensmp.fr>
3313 PR tree-optimization/23410
3314 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
3315 sequence is not wrapping during the first step.
3317 2005-09-01 Jakub Jelinek <jakub@redhat.com>
3320 * dwarf2out.c (base_type_die): Compare char_type_node with
3321 TYPE_MAIN_VARIANT (type), not type.
3323 2005-09-01 Richard Guenther <rguenther@suse.de>
3325 PR tree-optimization/15366
3326 * common.opt: Add -finline-functions-called-once.
3327 Put -fearly-inlining in alphabetically ordered place.
3328 * doc/invoke.texi: Document new option.
3329 * ipa-inline.c (cgraph_decide_inlining): Honour
3330 flag_inline_functions_called_once.
3332 2005-09-01 Jakub Jelinek <jakub@redhat.com>
3334 PR rtl-optimization/23478
3335 * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
3336 (alloc_qty): Initialize it.
3337 (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
3338 (combine_regs): Combine also n_throwing_calls_crossed fields.
3339 (find_free_reg): Don't attempt to caller-save pseudos crossing
3340 calls that might throw.
3341 * global.c (struct allocno): Add throwing_calls_crossed field.
3342 (global_alloc): Revert 2005-08-22 change. Initialize
3343 throwing_calls_crossed.
3344 (find_reg): Don't attempt to caller-save pseudos crossing calls that
3347 2005-09-01 Alan Modra <amodra@bigpond.net.au>
3350 * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
3351 (mask64_operand): Reinstate code prior to 2005-06-11 change.
3352 (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
3353 (and64_2_operand): Tweak to use predicate.
3354 (and_operand): Adjust for mask_operand changes.
3355 * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
3356 (print_operand): Likewise.
3357 (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
3358 (mask64_1or2_operand): Delete.
3359 * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
3360 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
3361 (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
3362 (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
3363 * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
3364 (rotldi3_internal4): Likewise.
3365 (rotldi3_internal5, rotldi3_internal5 split): Likewise.
3366 (rotldi3_internal6, rotldi3_internal6 split): Likewise.
3367 (ashldi3_internal7): Likewise.
3368 (ashldi3_internal8, ashldi3_internal8 split): Likewise.
3369 (ashldi3_internal, ashldi3_internal9 split): Likewise.
3370 (anddi3 split): Don't match mask64_operand.
3371 (anddi3_internal2): Add rlwinm. Modify 't' splitter predicate.
3372 (anddi3_internal3): Add rlwinm. Use and64_2_operand in non-cr0
3373 splitter and match TARGET_64BIT not TARGET_POWERPC64. Modify
3374 't' splitter predicate.
3375 (movdi_internal64 + 2): Revert 2005-06-11 change.
3377 2005-08-31 DJ Delorie <dj@redhat.com>
3379 * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
3380 (m32c_asm_integer): Add support for 32 bit pointers.
3382 2005-08-31 Richard Henderson <rth@redhat.com>
3384 * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
3385 component-like references for setting MEM_NOTRAP_P.
3387 * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
3388 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
3390 2005-08-31 Richard Henderson <rth@redhat.com>
3392 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
3393 into a pseudo before applying gen_lowpart.
3395 2005-08-31 Geoffrey Keating <geoffk@apple.com>
3397 * doc/install.texi (Specific): Update cctools version required
3398 for full functionality.
3399 * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
3400 linkers as -macosx_version_min.
3402 2005-08-31 J"orn Rennecke <joern.rennecke@st.com>
3405 * sh.c (print_operand, %R and %S): Add handling of floating point
3406 registers, memory, constants and invalid operands.
3408 2005-08-31 Daniel Berlin <dberlin@dberlin.org>
3410 * ipa-pure-const.c: Change dump name.
3412 2005-08-31 Uros Bizjak <uros@kss-loka.si>
3415 * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
3416 to "reg_or_0_operand".
3417 (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
3419 2005-08-31 Dale Johannesen <dalej@apple.com>
3421 * loop-iv.c (iv_number_of_iterations): Fix overflow check for
3422 loops that count down.
3424 2005-08-31 Richard Henderson <rth@redhat.com>
3427 * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
3428 (fixup_eh_region_note): New.
3429 (reload_as_needed): Call it.
3430 (fixup_abnormal_edges): Allow all throwing insns to be deleted;
3431 don't call find_many_sub_basic_blocks; call verify_flow_info.
3432 * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
3433 (keep_stack_depressed): Likewise.
3434 (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
3436 2005-08-31 Richard Henderson <rth@redhat.com>
3438 * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
3441 2005-08-31 Fariborz Jahanian <fjahanian@apple.com>
3443 * expr.c (expand_expr_real_1): Compare size of address
3444 mode to target's address mode size in deciding expansion of
3445 the constant address.
3447 2005-08-31 Richard Guenther <rguenther@suse.de>
3450 * expr.c (all_zeros_p): New function.
3451 (expand_expr_real_1): Handle the case of an all-zero
3452 non-addressable constructor separately.
3454 2005-08-31 Adrian Straetling <straetling@de.ibm.com>
3456 * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
3457 arguments, adjust all callers.
3458 (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
3460 2005-08-30 Richard Henderson <rth@redhat.com>
3463 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
3464 whenever the mode sizes match.
3466 2005-08-31 Alan Modra <amodra@bigpond.net.au>
3468 * calls.c (load_register_parameters): Fix comment typo.
3469 * expr.c (emit_push_insn): Comment formatting.
3471 2005-08-30 Ian Lance Taylor <ian@airs.com>
3473 * config/i386/x-cygwin (host-cygwin): Change dependency from
3474 hosthooks-def.h to $(HOSTHOOKS_DEF_H).
3476 2005-08-29 Geoffrey Keating <geoffk@apple.com>
3478 * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
3481 2005-08-29 Andrew Pinski <pinskia@physics.uc.edu>
3484 * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
3485 call to ggc_collect.
3487 2005-08-29 Paolo Bonzini <bonzini@gnu.org>
3490 * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
3491 beginning. Remove $(INCLUDES) from all the rules, if following
3492 $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
3494 2005-08-29 Jakub Jelinek <jakub@redhat.com>
3497 * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
3498 fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
3499 not constant, but maxlen is, don't set len to maxlen, rather
3500 set maxlen to len if len is a constant.
3502 2005-08-29 Zdenek Dvorak <dvorakz@suse.cz>
3504 PR tree-optimization/23475
3505 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
3508 2005-08-28 Daniel Berlin <dberlin@dberlin.org>
3510 Fix PR middle-end/22455
3512 * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
3513 Checksum only the parts of the tree that exist for the tree code.
3515 2005-08-28 Dale Johannesen <dalej@apple.com>
3517 * config/i386/i386.c (nocona_cost): Increase MOVE_RATIO.
3519 2005-08-28 Andrew Pinski <pinskia@physics.uc.edu>
3521 * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
3523 2005-08-28 Richard Henderson <rth@redhat.com>
3525 * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
3526 * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
3529 2005-08-28 Jakub Jelinek <jakub@redhat.com>
3532 * builtins.c (get_memory_rtx): Don't strip nops
3533 in between COMPONENT_REFs.
3535 2005-08-27 Andrew Pinski <pinskia@physics.uc.edu>
3538 * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
3540 (gimplify_modify_expr): Check for zero sized types and gimplify the
3541 rhs and lhs as statements.
3543 2005-08-27 John David Anglin <dave.anflin@nrc-cnrc.gc.ca>
3546 * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
3547 state for return address column of signal frames.
3549 2005-08-27 David Edelsohn <edelsohn@gnu.org>
3552 * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
3553 bytes >= 2 not bytes == 2.
3554 (expand_block_move): Same.
3556 2005-08-27 Richard Guenther <rguenther@suse.de>
3559 * config/i386/sse.md (sse2_movsd): Add missing closing
3562 2005-08-27 Paul Brook <paul@codesourcery.com>
3564 * genrecog.c (enum decision_type): Add DT_num_insns.
3565 (struct decision_test): Add u.num_insns.
3566 (add_to_sequence): Add DT_num_insns test.
3567 (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
3568 (write_cond, debug_decision_2): Ditto.
3569 (change_state): Assume peep2_next_insn never fails.
3570 Remove "afterward" argument.
3571 (write afterward, write_tree): Update to match.
3572 * recog.c (peep2_current_count): New variable.
3573 (peep2_next_insn): Check it.
3574 (peephole2_optimize): Set peep2_current_count.
3575 * recog.h (peep2_current_count): Declare.
3577 2005-08-26 Josh Conner <jconner@apple.com>
3580 * ipa-pure-const.c (check_tree): Check for volatile-ness
3581 when considering a dereference.
3583 2005-08-27 Jakub Jelinek <jakub@redhat.com>
3585 * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
3587 2005-08-26 Jakub Jelinek <jakub@redhat.com>
3589 PR rtl-optimization/23561
3590 * builtins.c (get_memory_rtx): Add LEN argument. If MEM_EXPR is
3591 a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
3592 at most LEN bytes long memory fits into the field.
3593 (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
3594 expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
3595 expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
3597 2005-08-26 Richard Henderson <rth@redhat.com>
3600 * loop.c (biased_biv_may_wrap_p): New.
3601 (maybe_eliminate_biv_1): Use it to suppress non-equality
3602 comparison transformations. Delete disabled code.
3604 2005-08-26 Ian Lance Taylor <ian@airs.com>
3606 * combine.c (make_extraction): Avoid reference outside object.
3608 2005-08-26 J"orn Rennecke <joern.rennecke@st.com>
3610 * stor-layout.c (finalize_type_size): Restore behaviour for
3611 non-aggregate types to the status quo ante of the patch for
3612 pr 23467. Document why it matters.
3614 2005-08-26 Jakub Jelinek <jakub@redhat.com>
3617 * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
3618 array by one element, initialize the BT_LAST element with NULL.
3620 2005-08-26 David Edelsohn <edelsohn@gnu.org>
3622 * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
3623 optimizing for size.
3625 (compare_plus_eqsi): Same.
3626 (plus_eqsi_compare): Same.
3627 (neg_eq0<mode>): Same.
3628 (neg_eq<mode>): Same.
3630 * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
3633 2005-08-26 Nick Clifton <nickc@redhat.com>
3635 * config/v850/v850.c (ep_memory_operand): Return FALSE if
3636 TARGET_EP is not defined.
3637 * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
3638 TARGET_EP is enabled.
3639 (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
3640 * config/v850/v850.md (save_all_interrupt): Only use the EP
3641 register if TARGET_EP is defined.
3642 (restore_all_interrupt): Likewise.
3643 * config/v850/lib1funcs.asm: Update functions so that the EP
3644 register is only used if __EP__ is defined.
3646 2005-08-26 David Ung <davidu@mips.com>
3648 * config/mips/mips.c (mips_expand_prologue): Handle case when
3649 generating for MIPS16 and the outgoing argument area is more than
3650 SMALL_OPERAND. Use the frame pointer as temporary to generate the
3653 2005-08-26 Paul Woegerer <paul.woegerer@nsc.com>
3655 * config/crx/crx.md: Make doloop_end pattern usage controllable
3656 via mloop-nesting=<max-nesting> command line switch. Make sure
3657 the combiner cannot use doloop_end_<mode> in an illegal way.
3658 * config/crx/crx.c: Use regs up to r6 for argument passing.
3659 Refine crx_address_cost (non cst4 displacements are expensive).
3660 * config/crx/crx.opt: Add switch for mloop-nesting=.
3662 2005-08-26 Adrian Straetling <straetling@de.ibm.com>
3664 * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
3665 (UNSPEC_MVST): New constant.
3667 2005-08-26 Andreas Krebbel <krebbel1@de.ibm.com>
3669 * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
3670 Reject operands containing eliminable registers.
3671 * testsuite/gcc.dg/20050825-1.c: New testcase.
3673 2005-08-24 Paolo Bonzini <bonzini@gnu.org>
3674 Jan Hubicka <jh@suse.cz>
3676 * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
3678 2005-08-24 Paolo Bonzini <bonzini@gnu.org>
3680 PR tree-optimization/23546
3681 * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
3684 2005-08-24 Pete Steinmetz <steinmtz@us.ibm.com>
3686 * params.def (PARAM_MIN_SPEC_PROB): New.
3687 * sched-rgn.c (MIN_PROBABILITY): Delete.
3688 (compute_trg_info): Convert to PARAM_VALUE.
3689 * doc/invoke.texi (param): Document min-spec-prob.
3691 2005-08-24 Fariborz Jahanian <fjahanian@apple.com>
3693 * config/darwin.h: define __PIC__
3694 * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
3695 TARGET_OS_CPP_BUILTINS macro.
3697 2005-08-24 Paolo Bonzini <bonzini@gnu.org>
3699 * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
3702 2005-08-24 Zdenek Dvorak <dvorakz@suse.cz>
3704 * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
3706 * cfghooks.c (duplicate_block): Added position where to place
3707 new block as argument.
3708 * cfghooks.h (duplicate_block): Declaration changed.
3709 * cfglayout.c (copy_bbs): Add argument after. Pass it to
3711 * cfglayout.h (copy_bbs): Declaration changed.
3712 * cfgloop.h (loop_version): Declaration changed.
3713 * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
3714 position to copy_bbs.
3715 (loop_version): Pass position to duplicate_loop_to_header_edge.
3716 Add place_after argument and position new blocks according to
3718 * modulo-sched.c (sms_schedule): Pass place_after argument
3720 * tracer.c (tail_duplicate): Pass argument to duplicate_block.
3721 * tree-cfg.c (split_edge_bb_loc): New function.
3722 (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
3723 to determine position of new blocks.
3724 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
3726 * tree-ssa-threadupdate.c (create_block_for_threading): Pass
3727 argument to duplicate_block.
3728 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
3729 Pass position to copy_bbs.
3731 2005-08-24 Zdenek Dvorak <dvorakz@suse.cz>
3733 * fold-const.c (ptr_difference_const): Use
3734 cst_and_fits_in_hwi instead of host_integerp.
3736 2005-08-24 Paolo Bonzini <bonzini@gnu.org>
3738 * config/darwin.c (gen_pic_offset): New.
3739 (machopic_indirect_data_reference, machopic_legitimize_pic_address):
3742 2005-08-23 Zdenek Dvorak <dvorakz@suse.cz>
3744 PR tree-optimization/23486
3745 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
3747 2005-08-23 Phil Edwards <phil@codesourcery.com>
3749 * config.gcc (*-*-vxworks*): Update tm_file, add extra_options,
3750 remove use_collect2.
3751 (powerpc-wrs-vxworks): Update, split out *-*-vxworksae target.
3753 * target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target
3754 configuration files to override the default value.
3756 * config/t-vxworks: Remove INSTALL_ASSERT_H. Define STMP_FIXPROTO,
3757 EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
3758 * config/vx-common.h: New file, split out from...
3759 * config/vxworks.h: here. Update for VxWorks 6.x and RTP mode.
3760 * config/vxworksae.h: New file, for VxWorks AE.
3761 * config/vxworks.opt: New file.
3762 * config/vxlib.c: Update for VxWorks 6.
3764 * config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list. Adjust
3765 other MULTILIB_* variables appropriately.
3766 (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm.
3767 * config/rs6000/t-vxworksae: New file, adjust multilibs for AE.
3768 * config/rs6000/vxworks.h: Update for VxWorks 6.
3769 * config/rs6000/vxworksae.h: New file, mostly placeholder for now.
3771 2005-08-23 Andrew Pinski <pinskia@physics.uc.edu>
3774 * config/darwin.c (machopic_select_section): Remove the hack to
3775 mark "::operator new" and "::operator delete" for coalescing
3776 even though they are not weak.
3778 2005-08-24 Alan Modra <amodra@bigpond.net.au>
3780 * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
3781 * configure: Regenerate.
3783 2005-08-23 Paolo Bonzini <bonzini@gnu.org>
3786 * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
3788 * convert.c (convert_to_integer, convert_to_vector): Likewise.
3789 * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
3792 2005-08-23 Paolo Bonzini <bonzini@gnu.org>
3794 * config/rs6000/predicates.md (equality_operator): New.
3795 * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
3796 comparison with a large constant.
3798 2005-08-23 Mark Mitchell <mark@codesourcery.com>
3800 * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
3802 2005-08-23 J"orn Rennecke <joern.rennecke@st.com>
3804 * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
3805 registers is even, and we have a hardware double precision fp,
3807 (sh_gimplify_va_arg_expr): For floating point arguments, consider
3808 size of current argument when checking if argument was passed in
3811 * sh.c (sh_attr_renesas_p): Handle error_mark_node.
3814 * stor-layout.c (finalize_type_size): Dont override
3815 existing alignment with a smaller alignment from the mode.
3817 2005-08-23 Sebastian Pop <pop@cri.ensmp.fr>
3819 * lambda-code.c (lambda_vector_lexico_pos): Moved...
3820 * lambda.h (lambda_vector_lexico_pos): ... here.
3821 * tree-data-ref.c (build_classic_dist_vector): Return false when
3822 the distance vector is lexicographically negative.
3824 2005-08-23 Sebastian Pop <pop@cri.ensmp.fr>
3826 PR tree-optimization/23511
3827 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
3828 handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
3830 2005-08-23 Jakub Jelinek <jakub@redhat.com>
3832 PR tree-optimization/22043
3833 * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
3834 * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
3835 If ALLOW_FLEXARR, handle types ending with flexible array member.
3836 Pass false as second argument to recursive count_type_elements calls.
3837 (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
3838 argument to count_type_elements call.
3839 * tree-sra.c (decide_block_copy): Likewise.
3840 * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
3841 for a constant-sized object, set cleared as well. Pass true as
3842 second argument to count_type_elements call.
3844 2005-08-23 Alan Modra <amodra@bigpond.net.au>
3847 * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
3848 from legitimate_small_data_p, and make global. Update use.
3849 Remove forward declaration.
3850 * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
3852 * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
3854 2005-08-23 David Edelsohn <edelsohn@gnu.org>
3856 * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
3857 of scratch intermediates.
3858 (eq<mode>_compare): Same.
3859 (neg_eq0<mode>): New.
3860 (neg_eq<mode>): Convert to define_insn_and_split.
3862 2005-08-23 Alan Modra <amodra@bigpond.net.au>
3865 * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
3866 stdarg functions, set/clear the fp marker even when no variable
3868 * config/rs6000/sysv4.opt (mprototype): Describe.
3870 2005-08-22 Jakub Jelinek <jakub@redhat.com>
3872 PR rtl-optimization/23478
3873 * regs.h (reg_info): Add throw_calls_crossed.
3874 (REG_N_THROWING_CALLS_CROSSED): Define.
3875 * flow.c (allocate_reg_life_data): Initialize
3876 REG_N_THROWING_CALLS_CROSSED.
3877 (propagate_one_insn, attempt_auto_inc): Update
3878 REG_N_THROWING_CALLS_CROSSED.
3879 * global.c (global_alloc): Don't allocate pseudos across
3880 calls that may throw.
3882 2005-08-22 Andrew Pinski <pinskia@physics.uc.edu>
3885 * c-common.c (c_do_switch_warnings): Look for a node where the enum's
3886 value is inbetween the range if we did not find an exact match.
3888 2005-08-22 Aldy Hernandez <aldyh@redhat.com>
3890 * doc/invoke.texi (Option Summary): Add ms1 options.
3891 * doc/extend.texi: Document interrupt handler attribute for ms1.
3892 * doc/md.texi: Document ms1 constraints.
3893 * config.gcc: Add ms1-*-elf.
3894 * config/ms1/ms1.h: New.
3895 * config/ms1/ms1.c: New.
3896 * config/ms1/ms1.md: New.
3897 * config/ms1/ms1-protos.h: New.
3898 * config/ms1/ABI.txt: New.
3899 * config/ms1/crti.asm: New.
3900 * config/ms1/crtn.asm: New.
3901 * config/ms1/lib2extra-funcs.c: New.
3902 * config/ms1/t-ms1: New.
3903 * config/ms1/ms1.opt: New.
3905 2005-08-22 Ira Rosen <irar@il.ibm.com>
3907 * config/rs6000/altivec.md (xorv4sf3): New.
3908 (negv4sf2, neg<mode>2): Likewise.
3910 2005-08-21 H.J. Lu <hongjiu.lu@intel.com>
3913 * config/ia64/ia64.md (divsi3): Check divide by zero.
3914 (udivsi3): Likewise.
3916 (udivdi3): Likewise.
3918 2005-08-21 Jakub Jelinek <jakub@redhat.com>
3920 * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
3921 up to elem_bitsize bits, not max_bitsize.
3923 2005-08-21 Sebastian Pop <pop@cri.ensmp.fr>
3925 PR tree-optimization/23433
3926 * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
3927 REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
3929 2005-08-21 Sebastian Pop <pop@cri.ensmp.fr>
3931 PR tree-optimization/23434
3932 * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
3933 the iteration bound is not an INTEGER_CST.
3935 2005-08-21 Dorit Nuzman <dorit@il.ibm.com>
3937 * tree-vect-transform.c (get_initial_def_for_reduction): Set
3938 need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
3939 NULL if need_epilog_adjust is false.
3940 (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
3941 Case 3 always peels first itration, not just for PLUS case, and no need
3942 to use scalar_initial_def here. Create an epilog adjustment only if
3943 scalar_initial_def is not NULL.
3945 (vectorizable_reduction): Remove assert.
3947 2005-08-20 H.J. Lu <hongjiu.lu@intel.com>
3950 * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
3951 (__moddi3): Likewise.
3952 (__udivdi3): Likewise.
3953 (__umoddi3): Likewise.
3954 (__divsi3): Likewise.
3955 (__modsi3): Likewise.
3956 (__udivsi3): Likewise.
3957 (__umodsi3): Likewise.
3959 2005-08-20 Jakub Jelinek <jakub@redhat.com>
3961 * tree-pass.h (TDF_GRAPH): Define.
3962 * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
3963 * passes.c (finish_optimization_passes): Only call
3964 finish_graph_dump_file if TDF_GRAPH is set.
3965 (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
3966 NULL. Set TDF_GRAPH bit.
3967 (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
3969 2005-08-20 Richard Earnshaw <richard.earnshaw@arm.com>
3971 * arm.h (arm_stack_offsets): Add locals_base field.
3972 * arm.c (arm_get_frame_offsets): Compute it.
3973 (thumb_compute_initial_elimination offset): Make the Thumb frame
3974 pointer point to the base of the local variables.
3975 (thumb_expand_prologue): Update accordingly.
3976 (thumb_expand_epilogue): Likewise.
3978 * arm.md (thumb_movhi_clobber): Make this insn a define_expand. Change
3979 mode of clobbered scratch to DImode. Handle a case that's known to
3982 2005-08-19 David Edelsohn <edelsohn@gnu.org>
3984 * config/rs6000/rs6000.md (gt0<mode>): Delete.
3985 (gt0<mode>_compare): Delete.
3986 (neg_gt0<mode>): Delete.
3988 2005-08-19 Eric Christopher <echristo@apple.com>
3990 * optabs.h: Change CTI_ to COI_.
3993 2005-08-19 James E Wilson <wilson@specifix.com>
3995 * builtins.c (expand_builtin_return_addr): Set
3996 current_function_accesses_prior_frames when count != 0. Use
3997 frame_pointer_rtx when count == 0.
3998 * function.h (struct function): Add accesses_prior_frames field.
3999 (current_function_accesses_prior_frames): Define.
4000 * reload1.c (init_elim_table): Check
4001 current_function_accesses_prior_frames.
4002 * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
4004 2005-08-19 Diego Novillo <dnovillo@redhat.com>
4006 * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
4007 indicator. Return true if the flowgraph changed during
4010 2005-08-19 Diego Novillo <dnovillo@redhat.com>
4013 * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
4014 conditional expression before testing its value.
4016 2005-08-19 Diego Novillo <dnovillo@redhat.com>
4018 * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
4020 2005-08-19 Devang Patel <dpatel@apple.com>
4022 PR tree-optimization/23048
4023 * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
4024 third parameter. Check whether latch is dominated by exit
4026 (if_convertible_loop_p): Supply exit block itself to
4027 if_convertible_bb_p.
4029 2005-08-19 Richard Earnshaw <richard.earnshaw@arm.com>
4032 * arm.md (arm_load_pic_register): Change argument to the mask of
4033 saved registers. Call thumb_find_work_register if we need a
4034 scratch register on Thumb.
4035 (arm_expand_prologue): Pass empty register set to
4036 arm_load_pic_register.
4037 (thumb_expand_prologue): Pass live_regs_mask directly to
4038 arm_load_pic_register.
4039 * arm-protos.h (arm_load_pic_register): Update prototype.
4041 2005-08-19 J"orn Rennecke <joern.rennecke@st.com>
4043 * sh.c (find_sole_member): New function.
4044 (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
4045 if the record's alignment is larger than the size of its only member.
4047 2005-08-19 Richard Earnshaw <richard.earnshaw@arm.com>
4050 * arm.c (thumb_legitimize_reload_address): New function.
4051 * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
4052 * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
4054 2005-08-19 Paul Woegerer <paul.woegerer@nsc.com>
4056 * config/crx/crx.c: Implement crx_decompose_address. Reject
4057 symbolic displacements since CRX register relative adressing
4058 mode can't handle unsigned 32-bit values as displacements.
4059 * config/crx/crx.h: Simplify definitions, remove redundant
4060 parenthesis and obsolete macros.
4061 * config/crx/crx.opt: Add new switch for debugging addresses.
4062 * config/crx/crx-protos.h: Add new declarations for above.
4064 2005-08-19 Andrew Pinski <pinskia@physics.uc.edu>
4067 * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
4070 2005-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4072 * collect2.c (dup2): Delete.
4073 * configure.ac: Don't check for dup2.
4075 * config.in, configure: Regenerate.
4077 2005-08-18 J"orn Rennecke <joern.rennecke@st.com>
4079 * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
4080 record with the type of its only member.
4082 2005-08-18 David Edelsohn <edelsohn@gnu.org>
4084 * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
4085 define_insn_and_split.
4086 (plus_ltu<mode>_compare): Same.
4087 (gtu<mode>_compare): Same.
4088 (plus_gtu<mode>_compare): Same.
4090 2005-08-18 Dorit Nuzman <dorit@il.ibm.com>
4092 PR tree-optimization/22228
4093 * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
4095 * tree-vect-transform.c (vect_transform_loop): Mark the variables that
4096 are recorded in vect_vnames_to_rename for renaming.
4097 * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
4098 (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
4099 in vect_vnames_to_rename.
4100 (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
4101 * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
4103 2005-08-18 Jan Hubicka <jh@suse.cz>
4106 * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
4107 info only for local statics, not for member variables.
4109 2005-08-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4111 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
4113 2005-08-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4115 * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
4117 2005-08-18 Andrew Pinski <pinskia@physics.uc.edu>
4120 * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
4122 2005-08-17 James E Wilson <wilson@specifix.com>
4124 * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
4127 2005-08-17 David Edelsohn <edelsohn