OSDN Git Service

032b12910b44bd28bce65f74c7fbd9f1f44c1cc1
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-11-14  Mike Stump  <mrs@apple.com>
2
3         * config/i386/i386.c (override_options): -masm=intel isn't
4         supported on darwin.
5         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
6
7 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
8
9         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
10         vfork after including auto-host.h.
11
12 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
13
14         PR rtl-optimization/22002
15         * combine.c (distribute_notes): Detect cases where a reg dies
16         two or more times in a bb, including on the insn we are combining,
17         and place the death note on the correct range.
18
19 2005-11-14  Dale Johannesen  <dalej@apple.com>
20
21         * expmed.c (store_bit_field):  Add offset unconditionally for
22         memory targets.
23         (extract_bit_field):  Don't force extzv or extv operand into
24         a register if field is too big.
25
26 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
27
28         * config/arm/arm.c (pic_labelno): New.
29         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
30         LABEL_REF.  Pass only the labelno to PIC insns.
31         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
32         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
33         * arm.md (UNSPEC_PIC_LABEL): New constant.
34         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
35         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
36         Use the correct label prefix.
37
38 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
39
40         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
41         REQ_EQUIV note.
42
43 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
44
45         * loop-invariant.c: Include tm_p.h.
46         * Makefile.in: Updated.
47
48 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
49
50         * pa.c (store_reg): Revise generation of frame notes in large frames.
51         (set_reg_plus_d): Likewise.
52
53 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
54
55         PR tree-optimization/24709
56         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
57         loop check.
58
59 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
60
61         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
62         and duplicate declaration of pthread_self.
63
64 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
65             Ian Lance Taylor  <ian@airs.com>
66
67         PR middle-end/24003
68         * calls.c (expand_call): If TARGET is a MEM and some part of the
69         argument area has been saved, force TARGET to a register.
70
71 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
72
73         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type 
74         checking.
75
76 2005-11-13  Jason Merrill  <jason@redhat.com>
77
78         PR c++/22489
79         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
80         lazily declared methods.
81         (force_decl_die): Stop if forcing out the context already make a
82         DIE for the decl.
83         (force_type_die): Likewise.
84
85 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
86
87         PR middle-end/24820
88         * builtins.c (integer_valued_real_p): Add break in
89         REAL_CST having TREE_OVERFLOW set.
90
91 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
92
93         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
94         addressing modes during calculation of costs.
95
96 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
97
98         * function.c (assign_stack_local_1): Restrict sanity check
99         on frame size overflow to 32-bit and above platforms.
100
101 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
102
103         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
104         * config/cris/cris.c: Include reload.h.
105         (cris_initial_elimination_offset): New function.
106         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
107         Prototype.
108
109 2005-11-12  Richard Guenther  <rguenther@suse.de>
110
111         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
112
113 2005-11-12  Jan Hubicka  <jh@suse.cz>
114
115         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
116         to compare against 0 when possible.
117
118 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
119
120         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
121         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
122         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
123         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
124         in the new order.
125
126 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
127
128         * recog.c (constrain_operands) <case 'g'>: For a match, require
129         that a non-register matches general_operand when strict >= 0.
130
131 2005-11-11  Steven Bosscher  <stevenb@suse.de>
132
133         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
134         previous checkin.
135
136 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
137
138         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
139         (memory_address_same): New.
140         (dse_optimize_stmt): Call memory_address_same.
141
142 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
143
144         PR middle-end/24750
145         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
146         ZERO_EXTEND>: New cases.
147
148 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
149
150         * longlong.h (__clz_tab): Always provide.
151
152 2005-11-11  Steven Bosscher  <stevenb@suse.de>
153
154         PR 24265
155         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
156         can be assigned to.
157         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
158         before check_maybe_invariant.
159         (move_invariant_reg): Use gen_move_insn instead of replacing
160         SET_DEST with the temporary for the invariant.
161         (move_loop_invariants): If checking is enabled, do internal
162         consistency checks after completing the pass.
163
164 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
165
166         PR 24644
167         * common.opt (Wvolatile-register-var): New.
168         * varasm.c (make_decl_rtl): Only emit warning when option
169         specified.  Clarify warning message.
170         * doc/invoke.texi (Wvolatile-register-var): Document new option.
171
172         * doc/md.texi (copysign): Document standard named pattern.
173
174 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
175
176         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
177         bytes when align is 2.
178         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
179         by the first instruction of the loop.
180
181 2005-11-11  Jason Merrill  <jason@redhat.com>
182
183         PR c++/24686
184         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore 
185         the cleanup list.
186
187 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
188
189         PR rtl-optimization/22509
190         * local-alloc.c (memref_used_between_p): Check whether a function call
191         could not reference the memref.
192
193 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
194
195         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
196         algorithm so as to choose the best, not the worst, alternative.
197         Reset accumulated register class before processing next alternative.
198
199 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
200
201         PR target/24445
202         * calls.c (expand_call): Copy a return value to a plain register
203         if needed.
204
205 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
206
207         PR target/24778
208         * varasm.c (assemble_name): Recompute name only for transparent
209         aliases.
210
211 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
212
213         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
214
215 2005-11-04  Jeff Law  <law@redhat.com>
216
217         PR middle-end/23181
218         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
219         perform reassociation if the parent statement will not die as
220         a result of the optimization.
221
222 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
223
224         * tree-ssa-alias.c (compute_may_aliases): Remove call to 
225         delete_old_heap_vars.
226         * tree-dfa.c (referenced_var_remove): Remove function.
227         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
228         (delete_tree_ssa): Remove call to delete_old_heapvars.
229         Add call to delete_alias_heapvars.
230         * tree-flow.h (referenced_var_remove): Remove prototype
231         (init_alias_heapvars): New prototype.
232         (delete_alias_heapvars): Ditto.
233         * Makefile.in (tree-ssa-structalias.o): Add
234         gt-tree-ssa-structalias.o
235         (GTFILES): Add tree-ssa-structalias.h and
236         tree-ssa-structalias.c.
237         (s-gtype): Add gt-tree-ssa-structalias.h.
238         * tree-ssa-structalias.c (heapvars): Remove.
239         (oldheapvars): Remove.
240         (heapvar_for_stmt): New variable.
241         (heapvar_lookup): New function.
242         (heapvar_insert): Ditto.
243         (get_constraint_for): See if we have an old heapvar
244         to reuse.
245         (init_alias_heapvars): New function.
246         (delete_alias_heapvars): Ditto.
247         Add include of gt-tree-ssa-structalias.h.
248
249 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
250
251         PR middle-end/22127
252         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
253
254 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
255
256         * tree.c (int_fits_type_p): Only look at the base type
257         if it has the same precision as the original type.
258
259 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
260
261         PR other/4372
262         * varasm.c (assemble_alias): Use %q+D in the error
263         message instead of %J and %qD.
264
265 2005-11-10  Richard Guenther  <rguenther@suse.de>
266
267         * gcse.c (free_ldst_entry): Only free hashtable if
268         it exists.
269
270 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
271
272         * function.c (assign_stack_local_1): Issue an error message if
273         the frame size overflows in the signed target arithmetics.
274
275 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
276
277         * tree.c (build_qualified_type): Chain the new type to the original
278         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
279         a POINTER_TYPE or a REFERENCE_TYPE respectively.
280         (build_pointer_type_for_mode): Only return unqualified types.
281         (build_reference_type_for_mode): Likewise.
282
283 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
284
285         * Makefile.in (gnucompare): Do comparison of all files using one of
286         the chosen methods and only afterwards decide if just warning should
287         be issued or comparison failure raised.
288
289 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
290
291         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
292         (noce_try_abs): Negate if the comparison is reversed.
293         Look only one instruction backwards for a REG_EQUAL note.
294
295 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
296
297         PR other/4372
298         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
299         gthr-tpf.h: Define __gthrw.  For all identifiers that might
300         be weak, introduce weakrefs or non-weak aliases with __gthrw,
301         and prefix all uses with __ghtrw.
302
303 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
304
305         PR other/4372
306         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
307         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
308         * c-common.c (handle_weakref_attribute): New.
309         (c_common_attribute_table): Add weakref.
310         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
311         in the assembler.
312         * configure, config.in: Rebuilt.
313         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
314         * doc/extend.texi: Document weakref attribute.
315         * varasm.c (ultimate_transparent_alias_target): New
316         (assemble_name): Use it.
317         (weak_finish_1): Split out of...
318         (weak_finish): ... and deal with weakrefs in...
319         (weakref_targets): ... new list.
320         (globalize_decl): Clean up weakref_targets.
321         (do_assemble_alias): Handle weakrefs.
322         (finish_aliases_1): Do not reject weakrefs to external symbols.
323         (assemble_alias): Handle weakrefs.
324
325 2005-11-09  Richard Guenther  <rguenther@suse.de>
326
327         PR tree-optimization/24716
328         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
329         t_bool to track results from follow_ssa_edge.
330
331 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
332
333         * final.c (force_source_line): New global variable.
334         (final_scan_insn): Set it to true instead of clearing last_filename.
335         (notice_source_line): Return true if force_source_line is true,
336         unless source info is absent.
337
338 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
339
340         PR c/24644
341         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
342         a linkage name for a variable if it a register variable.
343         * c-decl.c (grokdeclarator): Global register variables
344         should be set as PUBLIC.
345
346 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
347
348         PR 24624
349         * config/s390/s390.c (struct s390_frame_layout): New fields 
350         first_save_gpr_slot and last_save_gpr_slot.
351         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,  
352         s390_emit_epilogue, s390_initial_elimination_offset): Replaced 
353         first_save_gpr and last_save_gpr with the _slot variants.
354         (s390_register_info): Calculate first_save_gpr_slot and 
355         last_save_gpr_slot using regs_ever_live.
356
357 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
358
359         PR 24623
360         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
361         for a function containing a landing pad.
362
363 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
364
365         PR 24034
366         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
367         is live afterwards.
368
369 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
370
371         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
372         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
373
374 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
375
376         Add ms2 support
377         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
378         constants.
379         (call,load,store): New insn types.
380         (mem_access, branch_access): Adjust reservation conditions.
381         (define_delay): Adjust condition.
382         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
383         type.
384         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
385         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
386         insn type.
387         (call_internal, call_value_internal, return_internal,
388         return_interrupt_internal, eh_return_internal, indirect_jump,
389         tablejump): Set call insn type.
390         (blockage, ei, di): Use appropriate unspec const.
391         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
392         (ms1_get_attr_type): Adjust to give load & store types.
393         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
394         backwards past a barrier.
395         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
396         branch scheduling.
397         (struct branch_info, struct label_info): New.
398         (ms1_labels): New.
399         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
400         (ms1_machine_reorg): New.
401         (TARGET_MACHINE_DEPENDENT_REORG): Override.
402         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
403         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
404         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
405         (TARGET_MS2): New.
406
407 2005-11-09  Per Bothner  <per@bothner.com>
408             Uros Bizjak  <uros@kss-loka.si>
409         
410         PR c/24101
411         * toplev.c (process_options): Initialize debug_hooks early
412         in case lang_hooks.post_options ends up calling a debug_hook.
413
414 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
415
416         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
417         DBX_REGISTER_NUMBER being contiguous.
418
419 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
420             Diego Novillo  <dnovillo@redhat.com>
421
422         PR 23046
423         * tree-vrp.c (register_edge_assert_for): Do not register
424         always-false predicates.
425
426 2005-11-08  Devang Patel <dpatel@apple.com>
427
428         PR tree-optimization/23115
429         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
430         relation.
431
432 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
433
434         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
435         -mcpu=440.
436
437 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
438
439         Fix PR tree-optimization/23382
440
441         * tree-ssa-alias.c (compute_may_aliases): Call
442         delete_old_heap_vars.
443         * tree-dfa.c (referenced_var_remove): New function.
444         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
445         * tree-flow.h (referenced_var_remove): Add prototype.
446         (delete_old_heap_vars): Ditto.
447         * tree-ssa-structalias.c (heapvars): New variable.
448         (oldheapvars): Ditto.
449         (get_constraint_for): Put heap vars on heapvars list.
450         (delete_old_heap_vars): New function.
451         
452 2005-11-08  Jason Merrill  <jason@redhat.com>
453
454         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
455
456 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
457
458         PR target/19340
459         * reg-stack.c (reg_to_stack): Update register liveness also
460         for flag_sched2_use_traces.
461
462 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
463
464         PR target/23704
465         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
466         override prior explicit -mno-powerpc-gfxopt.
467
468 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
469
470         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
471         if the bitsize is zero.
472         * doc/md.texi (Standard Pattern Names): Document it.
473
474         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
475         (TARGET_PASS_BY_REFERENCE): Likewise.
476
477 2005-11-07  Ian Lance Taylor  <ian@airs.com>
478
479         PR rtl-optimization/24683
480         * config/i386/i386.c (legitimize_pic_address): If constant operand
481         to PLUS is too large, put it in a register.
482
483 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
484
485         * configure.ac: Enable checking assembler dwarf2 support for bfin
486         target.
487         * configure: Regenerate.
488
489 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
490
491         PR target/24230
492
493         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
494         gen_easy_vector_constant_add_self): Delete.
495         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
496         New.
497         (output_vec_const_move): Use gen_easy_altivec_constant.
498         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
499         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
500         (easy_vector_constant_add_self): Rewritten.
501         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
502         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
503         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
504         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
505         Macroize and adjust for the other changes.
506
507 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
508
509         PR c/24599
510
511         * c-typeck.c (build_c_cast): Try using a shared constant, and see
512         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
513
514 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
515
516         PR rtl-optimization/23567
517         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
518         (noce_process_if_block): Don't do any optimizations except
519         if (cond) x = x; if !set_b and write into orig_x may trap
520         or fault.  Remove the MEM_READONLY_P check.
521
522 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
523
524         PR 24670
525         * tree-vrp.c (fix_equivalence_set): New.
526         (extract_range_from_assert): Call it.
527
528 2005-11-05  Ian Lance Taylor  <ian@airs.com>
529
530         PR target/22432
531         * combine.c (apply_distributive_law): Don't distribute across a
532         vector mode subreg.
533
534 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
535
536         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
537         config/ms1/ms1.h, config/rs6000/predicates.md,
538         config/s390/s390.c, params.def, postreload-gcse.c,
539         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
540         tree-vrp.c, tree.c: Fix comment typos.
541         * doc/invoke.texi: Fix typos.
542
543 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
544
545         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
546         for testing whether the data_dependence_relation contains distance
547         vectors.  Iterate over all distance vectors of the ddr.
548         * lambda.h: Define a vec of lambda_vector pointers.
549         * tree-data-ref.c (dump_data_dependence_relation,
550         dump_data_dependence_direction): Iterate over all distance and
551         direction vectors of the ddr.
552         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
553         DDR_DIST_VECTS.
554         (build_classic_dist_vector, build_classic_dir_vector): Push a set
555         of distance/direction vectors instead of a single one.
556         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist 
557         lambda_vectors with a vec of lambda_vectors.
558         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
559         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
560         DDR_NUM_DIST_VECTS): New.
561         * tree-loop-linear.c (gather_interchange_stats): Test for the
562         existence of distance vectors only after having checked that there
563         is a dependence.  Iterate over all distance vectors of the ddr.
564         (linear_transform_loops): Use dump_data_dependence_relation.
565         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
566         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
567         distance vectors of the ddr.
568
569 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
570
571         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
572         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
573         IS_INTHANDLER; all callers changed.
574         (n_regs_saved_by_prologue): Take interrupt handler attributes into
575         account.
576         (do_link, do_unlink): New argument ALL; all callers changed.
577         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
578         If function isn't leaf, save and restore all registers.
579         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
580         exception handler.
581
582 2005-11-05  Jan Hubicka  <jh@suse.cz>
583
584         PR rtl-optimization/23490
585         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
586         max-flow-memory-location): Document.
587         * flow.c: Include params.h
588         (MAX_MEM_SET_LIST_LEN): Kill.
589         (add_to_mem_set_list): Use new param.
590         * cse.c (cse_basic_block): Replace 1000 by new param.
591         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
592         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
593         * predict.c (predict_loops): Use new param.
594         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
595
596         * ipa-inline.c (cgraph_decide_inlining_of_small_function, 
597         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
598         Do not hold memory returned by cgraph_node_name across other call.
599
600 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
601
602         PR target/23424
603         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
604         Disable.
605
606 2005-11-04  Jeff Law  <law@redhat.com>
607
608         PR/21883
609         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
610         * tree-ssa-dom.c: Include params.h.
611         (thread_across_edge): If there are too many statements in the
612         target block, then do not thread through it.
613         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
614         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
615
616 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
617
618         PR 24627
619         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
620         TODO_update_ssa instead of TODO_update_ssa_no_phi.
621
622 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
623
624         PR/18595
625         * tree-scalar-evolution.c (instantiate_parameters_1,
626         instantiate_parameters, resolve_mixers): Compute the size of an
627         expression to be instantiated and give up the instantiation if the
628         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
629
630 2005-11-04  Richard Guenther  <rguenther@suse.de>
631
632         * tree-flow.h (ref_contains_indirect_ref): Rename to
633         array_ref_contains_indirect_ref.
634         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
635         (array_ref_contains_indirect_ref): Make comment match the code
636         and vice-versa.
637         (ref_contains_array_ref): Likewise.
638         * tree-ssa-structalias.c (find_func_aliases): Remove call to
639         ref_contains_indirect_ref.
640         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
641         Rename calls to ref_contains_indirect_ref.
642
643 2005-11-04 Paul Brook  <paul@codesourcery.com>
644
645         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
646         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
647         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
648         * config/arm/arm.md: Use match_operand in peephole input templates
649         and match_dup in peephole output templates.
650
651 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
652
653         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
654         __aeabi_uidiv.
655
656 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
657             Daniel Jacobowitz  <dan@codesourcery.com>
658
659         * longlong.h (add_ssaaaa): Clobber condition code register
660         in ARM version.
661         (sub_ddmmss): Likewise.
662         (umul_ppmm): Likewise.
663
664 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
665             Paul Brook  <paul@codesourcery.com>
666             Phil Blundell  <pb@reciva.com>
667
668         * configure.ac: Add test for ARM TLS support.
669         * configure: Regenerated.
670         * config/arm/arm-protos.h (legitimize_tls_address)
671         (arm_tls_referenced_p, tls_mentioned_p)
672         (arm_output_addr_const_extra): New prototypes.
673         (thumb_legitimize_pic_address): Delete.
674         * config/arm/arm.c: Include "gt-arm.h".
675         (enum tls_reloc): New.
676         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
677         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
678         (arm_call_tls_get_addr, legitimize_tls_address)
679         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
680         (arm_init_tls_builtins, arm_emit_tls_decoration)
681         (arm_output_addr_const_extra): New functions.
682         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
683         (TARGET_HAVE_TLS): Define.
684         (target_thread_pointer): New.
685         (arm_override_options): Handle -mtp=.
686         (legitimize_pic_address): Ignore UNSPECs.
687         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
688         relative symbols.
689         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
690         (tls_get_addr_libfunc): New variable.
691         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
692         (arm_init_builtins): Call arm_init_tls_builtins.
693         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
694         (arm_encode_section_info): Call default_encode_section_info.
695         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
696         (enum arm_tp_type): New.
697         (target_thread_pointer): Add declaration.
698         (LEGITIMATE_CONSTANT_P): Handle TLS.
699         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
700         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
701         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
702         * config/arm/arm.md: Add UNSPEC_TLS.
703         (movsi): Handle TLS.
704         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
705         non-PIC.
706         (tls_load_dot_plus_eight): New insn and a peephole to create it.
707         (load_tp_hard, load_tp_soft): New insns.
708         * arm.opt: Add -mtp=.
709         * doc/invoke.texi (ARM Options): Document -mtp.
710
711 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
712
713         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
714         * config/arm/libunwind.S: Include "lib1funcs.asm".
715         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
716         (LIB2ADDEH): Add libunwind.S.
717         (LIB2ADDEHDEP): Add lib1funcs.asm.
718         * mklibgcc.in: Handle asm files in libgcc_eh.a.
719
720 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
721
722         PR fortran/18452
723         * gcc/c.opt: Add a -lang-fortran option.
724         * gcc/c-opts.c: Add a lang_fortran flag.
725         (c_common_init_options): Handling the -lang-fortran option.
726         (c_common_handle_option): Add a case for Fortran options in
727         preprocessing. Remove cases for -ffixed-form and
728         -ffixed-line-length. Add a case for -lang-fortran.
729
730 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
731
732         * config/rs6000/rs6000.c: Include params.h
733         (optimization_options): Set max-grow-copy-bb-insns default to 16.
734         (bdesc_2arg): Delete vpkuhss and vpkuwss.
735         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
736         (UNSPEC_VPKUWSS): Delete.
737         (altivec_vpkuhss): Delete.
738         (altivec_vpkuwss): Delete.
739         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
740         final condition.
741         (neg_eq0<mode>): Remove final condition.
742         (neg_eq<mode>): Remove condition and split-condition.
743
744 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
745
746         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
747         Use associated print macros.
748
749 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
750
751         PR c++/17964
752         * diagnostic.c (diagnostic_set_info_translated): New function.
753         (diagnostic_set_info): Use it.  Add comment.
754         * diagnostic.h (diagnostic_set_info_translated): Declare.
755
756 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
757
758         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
759         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
760         reference only if 'public' is true.
761         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
762         emit the .hidden directive only if the indirect reference is public.
763         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
764         Pass it to dw2_force_const_mem.
765         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
766         * dwarf2out.c (output_cfi): Adjust calls to above function.
767         (output_call_frame_info): Likewise.
768         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
769         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
770
771 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
772
773         PR tree-optimization/24483
774         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
775         field to elts if possible.
776
777 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
778
779         PR middle-end/23155
780         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
781         CONSTRUCTOR.
782
783 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
784
785         Fix PR tree-optimization/24351
786
787         * tree-ssa-structalias.c (struct variable_info): Add
788         collapsed_into.
789         (get_varinfo_fc): New function to follow collapsing.
790         (new_var_info): Set collapsed_to to NULL.
791         (dump_constraint): Follow collapsing.
792         (build_constraint_graph): Handle collapsing.
793         (do_simple_structure_copy): Return false if something bad
794         happened.
795         (collapse_rest_of_var): New function.
796         (do_structure_copy): Collapse if do_simple_structure_copy returns
797         false.
798         
799 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
800
801         PR middle-end/24589
802         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
803         expressions to a statement list instead of gimplifying them.
804
805 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
806
807         PR rtl-optimization/23585
808         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
809         that can't trap plus a constant integer, if the mode has zero size.
810
811 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
812
813         PR target/24620
814         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
815         as operand 2.
816         ("*insv<mode>_reg_extimm"): Likewise.
817
818 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
819
820         PR c/24329
821         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
822         c_common_type_for_mode returns an unnamed type.
823
824 2005-11-02  Richard Henderson  <rth@redhat.com>
825
826         PR target/9350
827         PR target/24374
828         * dwarf2out.c (dwarf2out_reg_save_reg): New.
829         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
830         * function.c (assign_parms): Use calls.internal_arg_pointer.
831         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
832         code.
833         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
834         (TARGET_CALLS): Add it.
835         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
836         * targhooks.c (default_internal_arg_pointer): New.
837         * targhooks.h (default_internal_arg_pointer): Declare.
838         * tree.h (dwarf2out_reg_save_reg): Declare.
839         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
840         * config/i386/i386.c (dbx_register_map): Add return column.
841         (dbx64_register_map, svr4_dbx_register_map): Likewise.
842         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
843         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
844         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
845         (ix86_save_reg): Save force_align_arg_pointer.
846         (ix86_emit_save_regs): Make regno unsigned.
847         (ix86_emit_save_regs_using_mov): Likewise.
848         (ix86_expand_prologue): Handle force_align_arg_pointer.
849         (ix86_expand_epilogue): Likewise.
850         * config/i386/i386.h: (dbx_register_map): Update.
851         (dbx64_register_map, svr4_dbx_register_map): Update.
852         (struct machine_function): Add force_align_arg_pointer.
853         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
854         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
855         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
856
857 2005-11-02  Jan Hubicka  <jh@suse.cz>
858
859         PR target/23303
860         * i386.md: Add peep2 for simplyfing array accesses.
861
862 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
863
864         PR target/24615
865         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
866         * config/s390/s390.c (s390_decompose_shift_count): New function.
867         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
868         (print_shift_count_operand): Use s390_decompose_shift_count.
869         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
870         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
871
872 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
873
874         PR target/24600
875         * loop.c (loop_givs_rescan): Use force_operand to expand
876         complex GIVs.
877
878 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
879
880         PR 22429
881         * fold-const.c (build_range_check): Use unsigned when signed
882         overflow is undefined also.  If etype is subtype, make sure that
883         the subtraction is in the supertype.
884
885 2005-11-02  Richard Henderson  <rth@redhat.com>
886
887         PR target/24178
888         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
889         by MEM_ALIGN.
890
891 2005-11-01  Richard Henderson  <rth@redhat.com>
892
893         PR 21518
894         * loop.c (scan_loop): Do not propagate computations to a hard
895         register destination with SMALL_REGISTER_CLASSES.
896
897 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
898
899         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
900         costs for MULT inside PLUS or MINUS.
901
902 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
903
904         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
905         (TRAMPOLINE_SIZE): Round up to 60.
906         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
907
908 2005-10-31  James E. Wilson  <wilson@specifix.com>
909
910         PR debug/24444
911         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
912         ifdef.  Put ifdefs around call in gen_subprogram_die.
913         (compute_frame_pointer_to_cfa_displacement): Likewise.
914         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
915         not defined.
916         
917         PR rtl-optimization/17356
918         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
919         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
920
921 2005-10-31  Jan Hubicka  <jh@suse.cz>
922
923         PR middle-end/24093
924         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
925
926         PR target/20928
927         * i386.c (legitimize_pic_address): Deal with large immediates.
928
929         PR profile/20815
930         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
931         from symbol names while computing checkup.
932
933         PR profile/24487
934         * predict.c (predict_loops): Do not estimate more than
935         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
936         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
937
938 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
939         
940         PR tree-optimization/19097
941         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
942
943 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
944
945         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
946
947 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
948
949         PR middle-end/23492
950         * tree-inline.c (setup_one_parameter): If the init_stmt
951         is NULL, don't insert the statement.
952
953 2005-10-30  Jan Hubicka  <jh@suse.cz>
954
955         PR tree-optimization/24172
956         * tree-inline.c (copy_body_r): Unshare the substituted value first.
957
958 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
959
960         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
961         constants for hosts with long != 32 bits.
962
963 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
964
965         PR middle-end/24093
966         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
967
968 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
969
970         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
971         (TARGET_MS1_16_002): New.
972         (TARGET_MS1_16_003): New.
973
974         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
975         ("*decrement_and_branch_until_zero_no_clobber"): New.
976         Add corresponding splitter for decrement_and_branch_until_zero
977         instruction.
978         Key all decrement_and_branch_until_zero patterns off of
979         TARGET_MS1_16_003.
980
981 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
982
983         PR middle-end/24362
984         * tree-complex.c (extract_component): Treat RESULT_DECL
985         like the rest of the decls.
986
987 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
988
989         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
990         indirect call to _mcount if the function needs a static chain.
991
992 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
993             Caroline Tice  <ctice@apple.com>
994
995         PR rtl-optimization/24460
996         * dwarf2out.c (have_switched_text_sections): New boolean variable.
997         (dwarf2out_switch_text_section): Set it to true instead of
998         incrementing separate_line_info_table_in_use.
999         (output_loc_list): Additionally test have_switched_text_sections.
1000         (output_ranges): Likewise.
1001         (dwarf2out_finish): Likewise.
1002         * varasm.c (assemble_start_function): Do not call
1003         insert_section_boundary_note.
1004         (assemble_end_function): If flag_reorder_blocks_and_partition,
1005         switch to the function's section before emitting the .size directive.
1006         * bb-reorder.c (insert_section_boundary_note): Staticify.
1007         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
1008         * output.h (insert_section_boundary_note): Delete.
1009
1010 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
1011
1012         PR c/23103
1013         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
1014         instead of pointer equality when comparing types.
1015
1016 2005-10-24  James E. Wilson  <wilson@specifix.com>
1017
1018         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
1019         add_dependence_list_and_free calls.
1020
1021 2005-10-24  Steven Bosscher  <stevenb@suse.de>
1022
1023         * contrib.texi: Add the names of the LLNL folks who donated
1024         Cray pointer support for gfortran.
1025
1026 2005-10-24  Steven Bosscher  <stevenb@suse.de>
1027
1028         PR tree-optimization/24225
1029         * profile.c (branch_prob): Look from end to start through a
1030         basic block when looking for a locus.
1031
1032 2005-10-24  Richard Henderson  <rth@redhat.com>
1033
1034         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
1035         parallel.
1036         (hppa_expand_prologue): Likewise.
1037
1038 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1039
1040         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
1041         (NO_DEFERRED_PROFILE_COUNTERS): Define.
1042         * pa.h (NO_PROFILE_COUNTERS): Define.
1043         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
1044         (funcdef_nos): New vector to hold label numbers of deferred profile
1045         counters.
1046         (output_deferred_profile_counters): New function.
1047         (hppa_profile_hook): Push label number onto funcdef_nos.
1048         (pa_hpux_file_end): Call output_deferred_profile_counters if
1049         NO_DEFERRED_PROFILE_COUNTERS is false.
1050
1051         * pa-protos.h (get_deferred_plabel): New prototype.
1052         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
1053         Make global.
1054         (output_call): Adjust calls.
1055
1056 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
1057
1058         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
1059         peculiarity of GOT/TOC section usage.
1060
1061 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
1062
1063         PR objc/24435
1064          * c-common.c (constant_string_class_name): Add documentation.
1065
1066 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
1067
1068         PR target/23832
1069         * recog.c (peephole2_optimize): Increment peep2_current_count
1070         only when the slot is empty.
1071
1072 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1073
1074         PR ada/23957
1075         * except.c (output_function_exception_table): Call
1076         assemble_external_libcall if we need a personality function.
1077
1078 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1079
1080         PR rtl-optimization/24460
1081         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
1082         set the basic block for barriers.
1083
1084 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
1085
1086         * var-tracking.c (vt_initialize): Initialize post.
1087
1088 2005-10-21  Devang Patel  <dpatel@apple.com>
1089
1090         PR/24220
1091         * c-common.c (vector_types_convertible_p): Check vector element type.
1092         
1093 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1094
1095         * config/sh/sh.c (prepare_move_operands): Handle the address
1096         constant which is a tls symbolic address plus a constant.
1097
1098 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1099
1100         PR driver/24473
1101         * gcc.c (main): Use the correct counter for erroring out
1102         about mulitple files.
1103
1104 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
1105
1106         PR target/24465
1107         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
1108         use r2 for 64-bit tls .got access.
1109
1110 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
1111
1112         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
1113         TRUTH_OR_EXPR.
1114
1115 2005-10-20  Steven Bosscher  <stevenb@suse.de>
1116
1117         PR tree-optimization/24307
1118         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
1119
1120 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
1121
1122         PR middle-end/24295
1123         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
1124         alias targets.
1125         * varasm.c (find_decl_and_mark_needed): After cgraph global info
1126         is ready, stop marking functions, but still mark variables.
1127
1128 2005-10-20  Richard Guenther  <rguenther@suse.de>
1129
1130         PR c++/24439
1131         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
1132         void type operands.
1133
1134 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1135
1136         PR rtl-optimization/23585
1137         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
1138         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
1139         (may_trap_p_1): New predicate extracted from...
1140         (may_trap_p): ... here.  Invoke may_trap_p_1.
1141         (may_trap_or_fault_p): New predicate.
1142         * rtl.h (may_trap_or_fault_p): Declare it.
1143         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
1144         instead of may_trap_p.
1145         (steal_delay_list_from_fallthrough): Likewise.
1146         (fill_simple_delay_slots): Likewise.
1147         (fill_slots_from_thread): Likewise.
1148         * function.c (pad_to_arg_alignment): Rework comment about
1149         SPARC_STACK_BOUNDARY_HACK.
1150         * config/sparc/sparc.h: Likewise.
1151
1152 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
1153
1154         * config/s390/s390.c (s390_expand_insv): New.
1155         * config/s390/s390-protos.h (s390_expand_insv): Declare.
1156         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
1157         ("icm_hi"): Remove mode attribute.
1158         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
1159         Adjust all uses.
1160         ("*extracthi", "*extractqi"): Remove.
1161         (extv<mode>", "*extzv<mode>"): New.
1162         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
1163         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
1164
1165 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1166
1167         * cfgexpand.c (discover_nonconstant_array_refs_r,
1168         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
1169         (tree_expand_cfg): Call discover_nonconstant_array_refs.
1170         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
1171         discover_nonconstant_array_refs.
1172
1173 2005-10-19  Steven Bosscher  <stevenb@suse.de>
1174
1175         PR c/23228
1176         * c-decl.c (pop_scope): Don't warn about an unused variable
1177         if it is marked with TREE_NO_WARNING.
1178         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
1179         somenow mismatch and olddecl is to be replaced.
1180
1181 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1182
1183         PR middle-end/23199
1184         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
1185         whether registers live on the edge can be saved/restored.
1186
1187 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1188
1189         * config/sh/sh.c (fixup_mova): Skip notes.
1190
1191 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1192
1193         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
1194         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
1195         (s390_can_eliminate): Handle BASE_REGNUM elimination.
1196         (s390_initial_elimination_offset): Likewise.
1197         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
1198         register on TARGET_ZARCH targets.
1199         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
1200         (INITIAL_FRAME_POINTER_OFFSET): Remove.
1201         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
1202         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
1203
1204 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1205
1206         * config/s390/s390.md: Comment describing output modifiers updated.
1207         * config/s390/s390.c (print_operand): Likewise.
1208
1209 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1210
1211         * config/s390/s390.c (override_options): Added check for -mstack-size
1212         64k limitation.
1213         * doc/invoke.texi: Mention that limit in the documenation.
1214
1215 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
1216
1217         PR #19672
1218         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
1219
1220 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
1221
1222         Fix PR tree-optimization/24231
1223
1224         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
1225         (compute_avail): Ditto.
1226
1227 2005-10-18  Richard Henderson  <rth@redhat.com>
1228
1229         PR target/24428
1230         * config/i386/i386.c (legitimate_constant_p): Check
1231         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
1232         if LABEL_REF.
1233         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
1234         (legitimate_pic_address_disp_p): Reorg CONST checking to make
1235         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
1236         directly.
1237         (print_operand_address): Likewise.
1238         * config/i386/predicates.md (x86_64_immediate_operand): Test
1239         SYMBOL_REF_TLS_MODEL properly inside CONST.
1240         (x86_64_zext_immediate_operand): Likewise.
1241         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
1242         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
1243         * config/i386/i386-protos.h: Remove predicates.md entries.
1244
1245 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
1246
1247         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
1248         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
1249
1250 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1251             Ian Lance Taylor <ian@airs.com>
1252
1253         PR middle-end/23522
1254         * fold-const.c (fold_widened_comparison): Do not allow range based
1255         constant folding when right operand cannot be unwidened.
1256
1257 2005-10-17  Richard Henderson  <rth@redhat.com>
1258
1259         * builtins.c (expand_builtin_synchronize): Build a new-style asm
1260         with a memory clobber.
1261
1262 2005-10-17  James E Wilson  <wilson@specifix.com>
1263
1264         PR rtl-optimization/17356
1265         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
1266         checking for EDGE_EH.
1267
1268 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1269
1270         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
1271         the slot on an even boundary for any type with 16-byte alignment.
1272
1273 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
1274
1275         PR target/23424
1276         * md.texi (Modifiers) <%>: Clarify that % doesn't work
1277         after register allocation.
1278
1279 2005-10-17  DJ Delorie  <dj@redhat.com>
1280
1281         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
1282         as frame related.
1283
1284 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
1285
1286         PR c++/22551
1287         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
1288         overflow flags.
1289
1290 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1291
1292         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
1293         to 2 if it's already non-zero.
1294         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
1295         is set and warn about it if flag_schedule_insns is 1.
1296
1297 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
1298
1299         * config/crx/crx.md: Compare-and-branch instructions need to
1300         invalidate CC.
1301
1302 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
1303
1304         PR target/24315
1305         * config/i386/i386.md (*pushdi2_rex64 splitter)
1306         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
1307         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
1308         flow2 pass only when (optimize > 0 && flag_peephole2).
1309
1310 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
1311
1312         PR driver/22544
1313         * gcc.c (have_c): New static variable.
1314         (have_o): Likewise.
1315         (process_command): Remove declation of have_c.
1316         Set have_o to 1 when handling -o.
1317         (main): Add a fatel error if there are multiple
1318         files specified and -o and -c/-S is passed witout
1319         -combine or multiple languages.
1320
1321 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
1322
1323         Fix PR tree-optimization/22444
1324         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
1325         Assert that we don't hit something with subvars.
1326         (setup_pointers_and_addressables): Don't add things with subvars,
1327         because we'll already process the subvars for aliasing purposes.
1328
1329 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
1330
1331         PR target/23424
1332         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
1333         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
1334         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
1335         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
1336         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
1337         swapped, alternatives for the R constraint.
1338
1339         PR middle-end/24341
1340         * builtins.c (get_builtin_sync_mode): Make unlimited
1341         mode_for_size request.
1342
1343 2005-10-15  Richard Henderson  <rth@redhat.com>
1344
1345         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
1346         (gimplify_expr): ... here.
1347         (gimplify_compound_lval): Use it in initial scan loop.  Allow
1348         fb_lvalue in base expression.
1349
1350 2005-10-15  Richard Henderson  <rth@redhat.com>
1351
1352         PR 23714
1353         * builtins.c (expand_builtin_trap): Export.
1354         * expr.h (expand_builtin_trap): Declare.
1355         * expr.c (expand_assignment): Emit a trap for integral offsets 
1356         from registers that weren't reduced to bitpos.
1357
1358         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
1359         (mark_array_ref_addressable): Remove.
1360         * tree-flow.h (mark_array_ref_addressable): Remove.
1361         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
1362
1363 2005-10-15  James E Wilson  <wilson@specifix.com>
1364
1365         PR target/24232
1366         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
1367         (add_dependence_list_and_free): Likewise.
1368         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
1369         call.
1370
1371 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
1372
1373         PR 23141
1374         PR 23142
1375         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
1376         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
1377         anti-range.
1378         (vrp_visit_phi_node): Only prevent infinite iterations when
1379         the previous result and the new result are both VR_RANGEs.
1380
1381 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
1382
1383         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
1384         function comment.
1385
1386 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1387
1388         PR c/23439
1389         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
1390         to initialize loc.
1391
1392 2005-10-14  Per Bothner  <per@bothner.com>
1393
1394         PR preprocessor/21250
1395         * c-ppoutput.c (print_line): Print internal line 0 as 1.
1396
1397 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
1398
1399         PR c++/22551
1400         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
1401         overflow flags.  Refactor some conditionals.
1402
1403 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
1404
1405         PR tree-opt/21304
1406         * tree-dfa.c (add_referenced_var): Only look at decls which
1407         have TREE_CONSTANT or TREE_READONLY set instead of if
1408         !TREE_PUBLIC or !TREE_CONSTANT.
1409
1410 2005-10-13  James E Wilson  <wilson@specifix.com>
1411
1412         * doc/invoke.texi: For -x, add f95-cpp-input.
1413         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
1414
1415 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
1416
1417         PR tree-optimization/24262
1418         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
1419         in loop all the time.
1420
1421 2005-10-12  Richard Henderson  <rth@redhat.com>
1422
1423         PR c/24255
1424         * tree.h (DECL_TRANSPARENT_UNION): Remove.
1425         * function.c (assign_parm_find_data_types): Don't support it.
1426         * print-tree.c (print_node): Likewise.
1427         * c-common.c (handle_transparent_union_attribute): Likewise.
1428         Use build_duplicate_type.
1429         * tree-inline.c (remap_type_1): Split out of remap_type;
1430         properly remap aggregate fields.
1431         (build_duplicate_type): New.
1432         * doc/extend.texi (Variable Attributes): Remove documentation
1433         for transparent_union.
1434
1435 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1436
1437         PR target/24284
1438         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
1439         (gen_stack_pointer_dec): Likewise.
1440
1441 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
1442
1443         PR middle-end/21275
1444         PR middle-end/21766
1445         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
1446         target hook.
1447         (struct cxx): Add adjust_class_at_definition target hook.
1448         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
1449         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
1450         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to 
1451         hook_void_tree. Add to TARGET_CXX.
1452         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
1453         dllimport_flag.
1454         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
1455         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
1456         instead of attribute. Check for dllexport override.  Warn if
1457         inconsistent dll linkage. Don't lose old dllimport if decl has
1458         had address referenced.   Tweak lookup of dllimport atribute.  
1459         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
1460         for target specific rules.  Don't add dllimport attribute if
1461         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
1462         dllimport attribute. 
1463         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
1464         * varasm.c (initializer_constant_valid_p): Replace
1465         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
1466
1467         PR target/21801
1468         PR target/23589
1469         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to 
1470         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
1471         (i[34567]86-*-mingw32*): Likewise.
1472
1473         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
1474         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
1475                         
1476         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
1477         C++-specific code. Change return value to bool. 
1478         (i386_pe_dllimport_p): Likewise.
1479         (associated_type): Simplify and make language-independent
1480         (i386_pe_encode_section_info): Replace override of ambiguous
1481         dllimport symbol refs with a gcc_assert.
1482         (i386_pe_valid_dllimport_attribute_p): Define.
1483         * config/i386/winnt-cxx.c: New file. Define C++ versions of
1484         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
1485         i386_pe_adjust_class_at_definition.
1486         * config/i386/winnt-stubs.c: New file. Define stub versions of
1487         lang-specific functions.
1488         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
1489         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, 
1490         i386_pe_adjust_class_at_definition.
1491         (i386_pe_valid_dllimport_attribute_p): Declare. 
1492         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
1493         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
1494         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
1495
1496         PR target/19704
1497         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
1498         dllimport attribute with test of DECL_DLLIMPORT_P.
1499
1500 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
1501
1502         * combine.c (make_extraction): Correct offset computation.
1503
1504 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
1505
1506         * config/cris/t-linux (LIMITS_H_TEST): Define.
1507
1508 2005-10-12  Richard Henderson  <rth@redhat.com>
1509
1510         PR rtl-opt/23324
1511         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
1512
1513 2005-10-12  Richard Guenther  <rguenther@suse.de>
1514
1515         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
1516
1517 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
1518
1519         PR c++/19964
1520         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
1521         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
1522         type.
1523
1524 2005-10-12  Richard Guenther  <rguenther@suse.de>
1525
1526         PR c++/23799
1527         * varasm.c (output_constant): Correct typo from previous
1528         patch by DJ.
1529
1530 2005-10-11  Ian Lance Taylor  <ian@airs.com>
1531
1532         PR rtl-optimization/13931
1533         * combine.c: Revert patch of 2003-05-14, and:
1534         (try_combine): Only set elim_i1 and elim_i2 if the destination is
1535         completely killed in the appropriate insn.
1536         (distribute_notes): Don't skip multiple hard register test for
1537         elim_i1 and elim_i2.
1538
1539 2005-10-11  Richard Henderson  <rth@redhat.com>
1540
1541         PR c/24255
1542         * c-typeck.c (convert_for_assignment): Use build_constructor_single
1543         to initialize a transparent union instead of a nop_expr.
1544
1545 2005-10-11  Richard Henderson  <rth@redhat.com>
1546
1547         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
1548         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
1549         (tree_ssa_dce_loop): Call scev_reset.
1550
1551         PR tree-opt/24300
1552         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
1553         * tree-ssa-dce.c: Include cfgloop.h.
1554         (tree_ssa_dce_loop, pass_dce_loop): New.
1555         * tree-pass.h (pass_dce_loop): Declare it.
1556         * passes.c (init_optimization_passes): Use it.
1557
1558 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1559
1560         PR middle-end/24263 
1561         * convert.c (convert_to_real): Revert 2005-10-05 patch.
1562         Only apply the optimization for rounding builtins if the inner
1563         cast is also an extension.
1564
1565 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
1566
1567         PR tree-opt/23946
1568         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
1569         mark_new_vars_to_rename instead of update_stmt.
1570
1571 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1572
1573         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
1574
1575 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
1576
1577         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
1578         for setting MMX register to 0 rather than mmx.
1579
1580 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
1581
1582         PR target/12098
1583         * configure.ac: Move gas check from mips specific case to common case.
1584         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
1585         * configure: Regenerate
1586         * doc/install.texi: Update.
1587
1588 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1589
1590         PR target/24284
1591         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
1592
1593 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
1594
1595         * gcc.c (do_spec_1): Accept numeric characters in file name
1596         suffixes.
1597
1598 2005-10-10  Nick Clifton  <nickc@redhat.com>
1599
1600         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
1601         describing the deleted arm_gen_rotated_half_load function.
1602
1603 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1604
1605         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
1606         __fpscr_values.
1607
1608 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
1609
1610         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
1611         gnu_ld assignments.
1612         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
1613         (EXTRA_MULTILIB_PARTS): Define.
1614         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
1615         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
1616         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
1617         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
1618         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
1619         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
1620
1621 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
1622
1623         PR tree-optimization/24226
1624         * tree-cfg.c (remove_bb): Clean up unreachable loops.
1625         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
1626         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
1627         Export.
1628
1629 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1630
1631         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
1632
1633 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1634
1635         PR target/24136
1636         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
1637         Rewrite for no need for the early clobber.
1638
1639 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
1640
1641         Merge from csl-arm-branch:
1642         2005-09-07  Paul Brook  <paul@codesourcery.com>
1643         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
1644         space to string.
1645
1646         2005-04-30  Paul Brook  <paul@codesourcery.com>
1647         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
1648         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
1649
1650         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
1651         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
1652         (arm_override_options): Use TARGET_AAPCS_BASED.
1653         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
1654         (PTRDIFF_TYPE): Use int for AAPCS.
1655         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
1656         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
1657         (DEFAULT_SHORT_ENUMS): Delete.
1658         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
1659
1660         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
1661         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
1662         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
1663         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
1664
1665         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
1666         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
1667
1668         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
1669         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
1670  
1671         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
1672         * config.gcc (arm*-*-linux-gnueabi): Add it.
1673         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
1674         redefining it.
1675         (TARGET_OS_CPP_BUILTINS): Likeiwse.
1676         * config/arm/linux-eabi.h: New file.
1677         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
1678         (LINUX_TARET_LINK_SPEC): Likewise.
1679         (LINK_SPEC): Use it.
1680         * config/arm/t-linux-eabi: New file.
1681
1682 2005-10-08  Steven Bosscher  <stevenb@suse.de>
1683
1684         PR other/22202
1685         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
1686         spaces.
1687         (PARAM_SMS_DFA_HISTORY): Likewise.
1688
1689 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
1690
1691         PR middle-end/23150
1692         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
1693         (load_register_parameters): Call it.
1694         (check_sibcall_argument_overlap_1): Likewise.
1695         (store_one_arg): Likewise.
1696
1697 2005-10-07  James E. Wilson  <wilson@specifix.com>
1698
1699         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
1700         DImode not VECINT24 for operand 2.
1701
1702         PR target/23644
1703         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
1704         -mtune-arch.
1705
1706         PR target/24193
1707         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
1708         fr_spill): Use destination_operand for operand 0.
1709
1710 2005-10-07  DJ Delorie  <dj@redhat.com>
1711
1712         * varasm.c (output_constant): Limit error to expanding
1713         conversions.
1714
1715 2005-10-07  Richard Guenther  <rguenther@suse.de>
1716
1717         PR middle-end/24227
1718         * fold-const.c (fold_binary): Fix operand types during folding
1719         of X op (A, Y).  Evaluation order of the side-effects of
1720         X and A are frontend-defined, so ensure we honour that even for
1721         tcc_comparison class operands; eased by removing duplicate code.
1722
1723 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
1724
1725         * stor-layout.c (layout_type): Do not allow alignment of array
1726         elements to be greater than their size.
1727
1728 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
1729
1730         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
1731         host_xmake_file.
1732         (hppa*-*-linux*): Ditto.
1733         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
1734         * config/host-hpux.c: New.
1735         * config/x-hpux: New.
1736         * config/pa/x-hpux: Remove.
1737         * config/pa/x-linux: Remove.
1738         * config/pa/pa-host.c: Remove.
1739
1740 2005-10-07  Jeff Law  <law@redhat.com>
1741
1742         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
1743         determine whether or not to try and thread outgoing edges.
1744
1745 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
1746
1747         * config/rs6000/rs6000.md (eqsi_power): New.
1748         (neg_eq0si): Add TARGET_POWER to final condition.
1749         (neg_eqsi): Same.
1750
1751 2005-10-06  Richard Henderson  <rth@redhat.com>
1752
1753         * config/rs6000/rs6000.c: Revert last change.
1754
1755 2005-10-06  Richard Henderson  <rth@redhat.com>
1756
1757         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
1758         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
1759
1760 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
1761
1762         PR middle-end/22216
1763         PR middle-end/23651
1764         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
1765         out return_label and naked_return_label.
1766
1767 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
1768         
1769         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
1770         change.
1771
1772 2005-10-06  Richard Henderson  <rth@redhat.com>
1773
1774         PR tree-opt/22237
1775         * tree-inline.c (declare_return_variable): Handle modify_dest not
1776         being a DECL.
1777
1778 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
1779         
1780         Fix PR tree-optimization/22488
1781         * tree-ssa-structalias.c (check_for_overlaps): New function.
1782         (create_variable_info_for): Use it.
1783
1784 2005-10-06  Richard Henderson  <rth@redhat.com>
1785
1786         PR debug/24070
1787         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
1788         (dwarf2out_start_source_file): Print it.
1789
1790 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
1791
1792         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
1793
1794 2005-10-06  Richard Henderson  <rth@redhat.com>
1795
1796         PR 23706
1797         * mode-switching.c (optimize_mode_switching): Clear transp bit
1798         for block with incomming abnormal edges.
1799
1800         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
1801         (fpscr_set_from_mem): Use them.
1802         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
1803         (fpscr postinc splitters): Rewrite as peephole2+split.
1804
1805 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
1806
1807         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
1808         (eq<mode>_compare): Same.
1809
1810 2005-10-06  Richard Guenther  <rguenther@suse.de>
1811
1812         PR tree-optimization/24238
1813         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
1814
1815 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
1816
1817         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
1818         here.  Use AC_PATH_PROG for environment variables instead of
1819         test -x.
1820         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
1821         objdump also.
1822         * configure: Regenerated.
1823
1824 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
1825
1826         PR target/23783
1827         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
1828         then force it into a register.
1829         (call_value): Likewise.
1830
1831 2005-10-06  Richard Henderson  <rth@redhat.com>
1832
1833         PR 24049
1834         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
1835         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
1836         under pass_vectorize.
1837
1838 2005-10-05  Devang Patel  <dpatel@apple.com>
1839
1840         PR Debug/23205
1841         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
1842         handling constants. Check NAMESPACE_DECL context for constants.
1843         
1844 2005-10-05  Eric Christopher  <echristo@apple.com>
1845
1846         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
1847
1848 2005-10-05  Richard Henderson  <rth@redhat.com>
1849
1850         PR 23714
1851         * tree-cfg.c (mark_array_ref_addressable_1): New.
1852         (mark_array_ref_addressable): New.
1853         * tree-flow.h (mark_array_ref_addressable): Declare.
1854         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
1855
1856 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
1857
1858         PR middle-end/20606
1859         PR middle-end/24069
1860         * reload.c (subst_reloads): When adding a REG_LABEL to a
1861         jump instruction, also update JUMP_LABEL.
1862
1863 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
1864
1865         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
1866         * bb-reorder.c (copy_bb_p): Use it.
1867         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
1868
1869 2005-10-05  Richard Henderson  <rth@redhat.com>
1870
1871         PR target/23602
1872         * toplev.c (process_options): Warn about unsupported combinations
1873         of unwind tables and omit-frame-pointer.
1874         * config/i386/i386.c (override_options): Similarly.  Enable
1875         accumulate-outgoing-args if not explicitly disabled.
1876
1877 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
1878
1879         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
1880         Handle big endian vs. small endian.
1881         (vec_initv2sf): Handle big endian vs. small endian.
1882         (*vec_extractv2sf_1): Ditto.
1883
1884 2005-10-05  Dale Johannesen  <dalej@apple.com>
1885
1886         * convert.c (convert_to_real):  Don't convert
1887         (float)floor(double d) to floorf((float)d).
1888
1889 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
1890
1891         * config/arm/arm.md (insv): Use gen_int_mode in more places.
1892
1893 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
1894
1895         PR tree-optimization/18587
1896         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
1897         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
1898         build_vuses): Change to VEC type.
1899         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
1900         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
1901         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
1902         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
1903         (get_name_decl): New.  Return DECL_UID of base variable.
1904         (operand_build_cmp): New.  qsort comparison routine.
1905         (operand_build_sort_virtual): New.  Sort virtual build vector.
1906         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
1907         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
1908         (FINALIZE_BASE): Use get_name_decl.
1909         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
1910         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
1911         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
1912         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
1913         direct VEC_* manipulations.
1914         (build_ssa_operands): Call operand_build_sort_virtual.
1915         (copy_virtual_operand, create_ssa_artficial_load_stmt,
1916         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
1917         with direct VEC_* manipulations.
1918         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
1919         with direct VEC manipulations.
1920
1921 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
1922
1923         PR tree-optimization/21419
1924         PR tree-optimization/24146
1925         PR tree-optimization/24151
1926
1927         * c-typeck.c (readonly_error): Handle USE being lv_asm.
1928         (build_asm_expr): Call it if outputs are read-only.
1929         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
1930
1931 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
1932             Paolo Bonzini  <bonzini@gnu.org>
1933
1934         PR target/23809
1935
1936         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
1937         enable the instructions and not just the built-ins.
1938         * doc/invoke.texi (x86 Options): Likewise.
1939
1940 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
1941
1942         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
1943
1944         * doc/invoke.texi (Option Summary): Correct spelling
1945         of -mmacosx-version-min.
1946
1947 2005-10-04  Devang Patel  <dpatel@apple.com>
1948
1949         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
1950         real types.
1951
1952 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
1953
1954         * tree-vect-transform.c (vect_create_epilog_for_reduction):
1955         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
1956
1957 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
1958
1959         * config/s390/s390.md ("TDSI","DP"): New mode macros.
1960         ("TE","tg"): New mode attributes.
1961         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
1962         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
1963         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
1964         dword_mode and one for GPRmode.
1965
1966 2005-10-04  Ian Lance Taylor  <ian@airs.com>
1967
1968         PR preprocessor/13726
1969         * c-ppoutput.c (cb_include): Add comments parameter, and print out
1970         any comments passed in.
1971
1972 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1973
1974         * tree.c (annotate_with_file_line): Fix typo.
1975
1976 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1977
1978         PR ada/19382
1979         * builtins.c (fold_builtin_memcmp): When constructing the pointer
1980         type used to access data in the inlined length == 1 case, use
1981         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
1982         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
1983
1984 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
1985
1986         * config/i386/i386.h (TARGET_FISTTP): Enable also for
1987         TARGET_SSE3 and only for TARGET_80387.
1988         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
1989         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
1990         Do not depend on TARGET_80387.
1991
1992 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1993
1994         * tree.c (last_annotated_node): Change type to location_t*.
1995         (annotate_with_file_line): Reflect the change of
1996         last_annotated_node type.
1997
1998 2005-10-04  Richard Guenther  <rguenther@suse.de>
1999
2000         PR c/23576
2001         * c-decl.c (grokdeclarator): Don't write to fields
2002         of error_mark_node.
2003
2004 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
2005
2006         PR middle-end/23125
2007         * c-decl.c (finish_decl): Use set_user_assembler_name even for
2008         register variables.
2009         * varasm.c (make_decl_rtl): If a register variable does not
2010         have a set user assmbler name, error out.
2011         Decode the asmspec is now name+1 bypassing '*'.
2012
2013 2005-10-04  Steven Bosscher  <stevenb@suse.de>
2014
2015         PR tree-optimization/23049
2016         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
2017         of a COND_EXPR is folded before calling fold on the whole rhs of a
2018         conditional assignment.
2019         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
2020         document that a COND_EXPR may appear there.
2021
2022 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
2023
2024         PR 23445
2025         * tree-vrp.c (extract_range_from_assert): If the new numeric
2026         range created out of the assertion contradicts the existing
2027         numeric range of the ASSERT_EXPR variable, make the new range
2028         varying.
2029
2030 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2031
2032         * config/sh/sh.c (sh_register_move_cost): Add case for moving
2033         from T_REGS to FP register class.
2034
2035 2005-10-03  Richard Henderson  <rth@redhat.com>
2036
2037         PR 24135
2038         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
2039         before creating a new one.
2040
2041 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
2042
2043         * config/rs6000/t-aix43 (LDFLAGS): New.
2044         * config/rs6000/t-aix52 (LDFLAGS): New.
2045
2046 2005-10-03  Ian Lance Taylor  <ian@airs.com>
2047
2048         * gimplify.c (find_single_pointer_decl_1): New static function.
2049         (find_single_pointer_decl): New static function.
2050         (internal_get_tmp_var): For a formal variable, set restrict base
2051         information if appropriate.
2052         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
2053         return it.
2054         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
2055         (DECL_GET_RESTRICT_BASE): Define.
2056         (SET_DECL_RESTRICT_BASE): Define.
2057         (decl_restrict_base_lookup): Declare.
2058         (decl_restrict_base_insert): Declare.
2059         (struct tree_decl_with_vis): Add based_on_restrict_p field.
2060         * tree.c (restrict_base_for_decl): New static variable.
2061         (init_ttree): Initialize restrict_base_for_decl.
2062         (copy_node_stat): Copy restrict base information.
2063         (decl_restrict_base_lookup): New function.
2064         (decl_restrict_base_insert): New function.
2065         (print_restrict_base_statistics): New static function.
2066         (dump_tree_statistics): Call print_restrict_base_statistics.
2067
2068 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
2069
2070         PR 24142
2071         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
2072         case of anti-ranges.
2073
2074 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
2075
2076         PR c/18851
2077         * c-typeck.c (tagged_tu_seen): Rename to ...
2078         (tagged_tu_seen_cache): this and add val field.
2079         (comptypes): Move functional to comptypes_internal
2080         and free tagged_tu_seen.
2081         (comptypes_internal): New function and call comptypes_internal
2082         instead of comptypes. Speed up by sibcalling
2083         tagged_types_tu_compatible_p.
2084         (alloc_tagged_tu_seen): New function
2085         (free_all_tagged_tu_seen_up_to): New function.
2086         (tagged_types_tu_compatible_p): Return the val of the seen two
2087         types.
2088         Add that the two types are the same to tagged_tu_seen_base
2089         if they are and call comptypes_internal instead of comptypes.
2090         <case UNION_TYPE>: Speed up common type where the fields are
2091         in the same order.
2092         (function_types_compatible_p): Call comptypes_internal instead of
2093         comptypes.
2094         (type_lists_compatible_p): Likewise.
2095         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
2096
2097 2005-10-02  Matthias Klose  <doko@debian.org>
2098
2099         * doc/invoke.texi: Fix typo and speling error.
2100
2101 2005-10-01  Richard Henderson  <rth@redhat.com>
2102
2103         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
2104
2105 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
2106
2107         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
2108         using --start-group and --end-group.
2109
2110 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
2111
2112         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
2113         FIXME note regarding quirky semantics.
2114
2115 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
2116
2117         PR 24141
2118         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
2119         non-null range as a last resort.
2120
2121 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
2122             Diego Novillo  <dnovillo@redhat.com>
2123
2124         PR 23604
2125         * tree-vrp.c (extract_range_from_assert): For !=
2126         assertions, only build an anti-range if LIMIT is a
2127         single-valued range.
2128
2129 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
2130
2131         * arm.md (movqi): On thumb when optimizing, handle loading from
2132         memory by describing this as taking a subreg of a zero-extended load
2133         into an SImode register.
2134         (movhi): Likewise.
2135
2136 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
2137
2138         * reload1.c (merge_assigned_reloads): Do not change any
2139         RELOAD_FOR_OUTPUT_ADDRESS reloads.
2140
2141 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
2142
2143         * Makefile.in (LIPO_FOR_TARGET): Define.
2144         (STRIP_FOR_TARGET): Define.
2145
2146         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
2147         before creating new ones.  Do symlinks before creating the actual
2148         targets.
2149
2150         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
2151         to work out which multilibs are actually being built.
2152
2153 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
2154
2155         * tree-vect-transform.c, config/ms1/ms1.md,
2156         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
2157         Follow spelling conventions.
2158         * doc/invoke.texi, doc/md.texi: Fix typos.
2159
2160 2005-09-30  Andrew Macleod  <amacleod@redat.com>
2161
2162         PR tree-optimization/21430
2163         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
2164         use operands, and set stmt pointer if need be.
2165         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
2166         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
2167         present.
2168
2169 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2170
2171         PR middle-end/24053
2172         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
2173
2174 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
2175
2176         * optabs.c (expand_binop): Initialize first_pass_p.
2177
2178 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
2179
2180         PR middle-end/24109
2181         * c-decl.c (c_write_global_declarations_1): If any
2182         wrapup_global_declaration_2 call returned true, restart the loop.
2183
2184 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
2185
2186         Fix PR tree-optimization/24117
2187         * tree-ssa-structalias.c (find_func_aliases): Strip nops
2188         before considering whether to use anyoffset.
2189
2190 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
2191
2192         Revert this patch:
2193
2194         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
2195
2196         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2197         to order operands.
2198         (swap_commutative_operands_with_target): New.
2199
2200 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
2201
2202         PR c/21419
2203         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
2204         read-only.
2205
2206 2005-09-29  Steven Bosscher  <stevenb@suse.de>
2207
2208         PR tree-optimization/23911
2209         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
2210         and IMAGPART_EXPR too.
2211
2212 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
2213
2214         PR 17886
2215         * expmed.c (expand_shift): Move logic to reverse rotation
2216         direction when  rotating by constants ...
2217         * optabs.c (expand_binop): ... here.
2218         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
2219         (ix86_rotrdi3): New pattern.
2220         (rotldi3): Handle 32-bit mode.
2221         (ix86_rotldi3): New pattern.
2222
2223 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
2224
2225         PR target/24102
2226         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
2227         check for numbers that need no bit twiddle.
2228
2229 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
2230
2231         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
2232         multilib to be built.
2233
2234         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
2235         (stage1-start): Delete old libgcc and libunwind before moving
2236         anything into the stage directory.
2237         (stage2-start): Likewise.
2238         (stage3-start): Likewise.
2239         (stage4-start): Likewise.
2240         (stageprofile-start): Likewise.
2241         (stagefeedback-start): Likewise.
2242         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
2243         header in tm_file and CPU-specific t-darwin in tmake_file.
2244         (i[34567]86-*-darwin*): Don't change tm_file.
2245         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
2246         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
2247         shared library stub for target OS version.
2248         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
2249         (SHLIB_LINK): Don't make SHLIB_SOLINK.
2250         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
2251         (libgcc_s.%.dylib): New.
2252         (LIBGCC): Define.
2253         (install-darwin-libgcc-stubs): New.
2254         (INSTALL_LIBGCC): New append.
2255         * config/i386/darwin-libgcc.10.4.ver: New.
2256         * config/i386/darwin-libgcc.10.5.ver: New.
2257         * config/i386/t-darwin: New.
2258         * config/rs6000/darwin-libgcc.10.4.ver: New.
2259         * config/rs6000/darwin-libgcc.10.5.ver: New.
2260         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
2261         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
2262
2263 2005-09-28  Paul Brook  <paul@codesourcery.com>
2264
2265         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
2266         denormals.
2267
2268 2005-09-28  Richard Guenther  <rguenther@suse.de>
2269
2270         PR tree-optimization/23853
2271         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
2272         host_integerp to verify misalignment value.
2273
2274 2005-09-28  Richard Henderson  <rth@redhat.com>
2275
2276         * builtins.c (get_builtin_sync_mode): New.
2277         (expand_builtin_sync_operation): Pass in mode argument.
2278         (expand_builtin_compare_and_swap): Likewise.
2279         (expand_builtin_lock_test_and_set): Likewise.
2280         (expand_builtin_lock_release): Likewise.
2281         (expand_builtin): Update to match.
2282
2283 2005-09-28  Nick Clifton  <nickc@redhat.com>
2284
2285         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
2286         formatting.  Add check to PLUS case to ensure that the offset is
2287         within an acceptable range.
2288
2289         * config/v850/v850.md (casesi): Disable the generation of the
2290         switch pattern as it is not being handled properly at the moment.
2291
2292         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
2293         for when the high words are identical.
2294
2295 2005-09-27  Richard Henderson  <rth@redhat.com>
2296
2297         * pretty-print.c (pp_base_format): Fix typo for %>.
2298
2299 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
2300             Devang Patel  <dpatel@apple.com>
2301
2302         PR tree-optimization/23625
2303         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
2304         LABEL_EXPR, assertion check.
2305
2306 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
2307
2308         * optabs.c (no_conflict_move_test): Check if a result of a
2309         to-be-moved insn would be clobbered by an originally
2310         preceding insn.
2311
2312 2005-09-27  Jeff Law  <law@redhat.com>
2313
2314         * passes.c (init_optimization_passes): Replace copy propagation
2315         passes immediately after DOM with phi-only copy propagation
2316         pases.  Add phi-only copy propagation pass after first DOM pass.
2317         * tree-pass.h (pass_phi_only_copy_prop): Declare.
2318         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
2319         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
2320         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
2321         to init_copy_prop.  Callers updated.
2322         (do_phi_only_copy_prop): New function.
2323         (pass_phi_only_copy_prop): New pass descriptor.
2324
2325 2005-09-27  Nick Clifton  <nickc@redhat.com>
2326
2327         * libgcc2.c (__popcount_tab): Remove redundant prototype.
2328
2329 2005-09-26  Jason Merrill  <jason@redhat.com>
2330
2331         PR c++/13764
2332         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
2333
2334         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
2335
2336 2005-09-26  James E Wilson  <wilson@specifix.com>
2337
2338         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
2339         copyright.  Add gcc copyright plus libgcc exception.
2340         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
2341         copyright.
2342         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
2343
2344 2005-09-26  Jeff Law  <law@redhat.com>
2345
2346         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
2347         about when to iterate.
2348
2349 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
2350
2351         PR target/23847
2352         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
2353         for __complex__ double in -mcpu=G5 mode.
2354
2355 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
2356
2357         PR tree-optimization/23942
2358         * Makefile.in (SCEV_H): Depends on PARAMS_H.
2359         * tree-scalar-evolution.c: Include params.h.
2360         (t_bool): New enum.
2361         (follow_ssa_edge, follow_ssa_edge_in_rhs,
2362         follow_ssa_edge_in_condition_phi_branch,
2363         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
2364         Change return type to t_bool.  Use a parameter to limit the size of
2365         trees that are walked before stopping
2366         (analyze_evolution_in_loop): Initialize the limit to 0.
2367         (follow_ssa_edge): Give up by returning t_dont_know if the limit
2368         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2369
2370 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
2371
2372         PR middle-end/23831
2373         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
2374         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
2375
2376 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
2377
2378         * combine.c (make_extraction): Check for valid use of subreg.
2379
2380 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
2381
2382         PR target/24055
2383         * config/i386/i386.md ("*fistdi2_1"): New pattern.
2384         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
2385         ("fist<mode>2_with_temp"): Use only register operands.
2386
2387 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
2388
2389         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
2390         CALL_INSN_FUNCTION_USAGE.
2391
2392 2005-09-26  Richard Guenther  <rguenther@suse.de>
2393
2394         PR middle-end/15855
2395         * gcse.c: Include hashtab.h, define ldst entry hashtable.
2396         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
2397         (ldst_entry): Use the hashtable instead of list-walking.
2398         (find_rtx_in_ldst): Likewise.
2399         (free_ldst_entry): Free the hashtable.
2400         (compute_ld_motion_mems): Create the hashtable.
2401         (trim_ld_motion_mems): Remove entry from hashtable if
2402         removing it from list.
2403         (compute_store_table): Likewise^2.
2404         (store_motion): Free hashtable in case we did not see
2405         any stores.
2406
2407 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
2408
2409         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
2410         and arg1 if we are passing them to fold_build2.
2411
2412 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
2413
2414         PR 23828
2415         * config/i386/i386.c (ix86_function_regparm): Fix the test for
2416         a nested function.
2417
2418 2005-09-25  Richard Henderson  <rth@redhat.com>
2419
2420         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
2421         SYMBOL_REF_TLS_MODEL to be correct.
2422
2423 2005-09-24  Richard Henderson  <rth@redhat.com>
2424
2425         * ipa-type-escape.c (discover_unique_type): Remove dead code at
2426         end of function.  Reindent.
2427
2428 2005-09-24  Ian Lance Taylor  <ian@airs.com>
2429
2430         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
2431         NEGATE_EXPR/BIT_NOT_EXPR case.
2432
2433 2005-09-24  Richard Henderson  <rth@redhat.com>
2434
2435         * c-common.c (handle_mode_attribute): When not modifying in place,
2436         create subtypes for enumerations.
2437         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
2438         * gimplify.c (create_tmp_from_val): Likewise.
2439
2440 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
2441
2442         * config/i386/i386.md (*tls_global_dynamic_64,
2443         *tls_local_dynamic_base_64): Add missing mode to call.
2444         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
2445
2446 2005-09-24  Jan Hubicka  <jh@suse.cz>
2447
2448         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
2449         (cgraph_clone_node): Likewise.
2450         * cgraph.h (cgraph_clone_edge): Update prototype.
2451         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
2452         duplicated prototypes; add updating argument.
2453         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
2454         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
2455         updating profile.
2456         (cgraph_mark_inline_edge): Likewise.
2457         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
2458         (cgraph_flatten_node): Likewise.
2459         (cgraph_decide_recursive_inlining): Likewise.
2460         (cgraph_decide_inlining_of_small_function): Likewise.
2461         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2462
2463 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
2464             Pete Steinmetz <steinmtz@us.ibm.com>
2465
2466         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
2467         (rldic.): Set type to "compare".
2468         (rldicr.): Same.
2469         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
2470         mfjmpr for MFCTR/MFLR.
2471         (movdf_hardfloat64): Same.
2472         (movdf_softfloat64): Same.  Correct order of store and move types.
2473         (movti_string): Set type to store_ux/load_ux.
2474         (load_multiple): Set type to load_ux.
2475         (store_multiple): Set type to store_ux.
2476         (movmemsi): Set type to store_ux.
2477         (output_cbranch direct_return): Set type to jmpreg.
2478         (stmw): Set type to store_ux.
2479         (lmw): Set type to load_ux.
2480         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
2481         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
2482         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
2483         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
2484         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
2485         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
2486         (rios1-fpstore): Increase latency to 3.
2487         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
2488         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
2489
2490 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
2491             Andrew Pinski  <pinskia@physics.uc.edu>
2492
2493         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
2494         operand2 constraint to "b".
2495         (sync_<fetchop_name>di_internal): Same.
2496         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
2497         to "b".
2498         (sync_old_<fetchop_name>di_internal): Same.
2499         (sync_new_<fetchop_name>si_internal): Same.
2500         (sync_new_<fetchop_name>di_internal): Same.
2501
2502 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
2503
2504         PR middle-end/23991
2505         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
2506         case, define as macros.
2507
2508         PR rtl-optimization/23837
2509         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
2510         clobber / clobber match between dest and p->first.
2511
2512         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
2513         (no_conflict_move_test): Update comments.
2514
2515 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
2516
2517         * doc/install.texi: Update URL for Jacks.
2518         * doc/sourcebuild.texi: Likewise.
2519
2520 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
2521
2522         PR target/24007
2523         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
2524         registers when choosing register preferences.
2525         (movdf_hardfloat64): Same.
2526
2527 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
2528
2529         * expmed.c (expand_shift): Don't use the target of the rotate as
2530         target for the first expanded shift insn.
2531         * testsuite/gcc.dg/20050922-1.c: Testcase added.
2532
2533 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
2534
2535         PR tree-optimization/22438
2536         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
2537         preserved iv rhs rewriting specially.
2538
2539 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
2540
2541         * tree-data-ref.c (analyze_array_indexes): Only estimate when
2542         estimate_only  is true.
2543         * tree-flow.h (ref_contains_indirect_ref): New prototype.
2544         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
2545         tree-ssa-structalias.c
2546         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
2547         ref_contains_indirect_ref.
2548         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
2549
2550 2005-09-21  DJ Delorie  <dj@redhat.com>
2551
2552         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
2553         MASK_PTR_A0D0.
2554         (mn10300_return_in_memory): Support variable size types also.
2555         (mn10300_pass_by_reference): Likewise.
2556         (mn10300_function_value): New.
2557         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
2558         (FUNCTION_OUTGOING_VALUE): Likewise.
2559         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
2560         * doc/invoke.texi: Document it.
2561
2562 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
2563
2564         PR target/22585
2565         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
2566         force integer op1 into register for XFmode compares.
2567
2568 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
2569
2570         PR middle-end/23971
2571         * expmed.c (alg_code): Add alg_impossible.
2572         (alg_hash_entry): Add cost.
2573         (synth_mult): Record alg_impossible in the hash table if
2574         multiplication by a given integer is impossble within the
2575         limit.  Speed up using alg_impossible.
2576
2577 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
2578
2579         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
2580         argument.  Allow and set any offset if needs_anyoffset is passed
2581         in.
2582         (get_constraint_for): Add argument here too.
2583         Pass it down.
2584         (do_structure_copy): Pass NULL to get_constraint_for.
2585         (handle_ptr_arith): Ditto.
2586         (find_func_aliases): Ditto.
2587
2588 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
2589
2590         PR rtl-optimization/23898
2591         * output.h (get_attr_min_length): Declare.
2592         * final.c (get_attr_length_1): New function, broken out of:
2593         (get_attr_length).
2594         (get_attr_min_length): New function.
2595         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
2596         (duplicate_computed_gotos): Likewise.
2597         * genattr.c (insn_min_length): Generate declaration.
2598         * genattrtab.c (min_fn, min_attr_value): New functions.
2599         (make_length_attrs): Generate insn_min_length.
2600
2601 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
2602
2603         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
2604
2605 2005-09-20  Richard Henderson  <rth@redhat.com>
2606
2607         PR tree-optimization/24059
2608         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
2609         EXPAND_STACK_PARM.
2610
2611 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
2612
2613         * c.opt (fextended-identifiers): New.
2614         * c-opts.c (c_common_handle_option): Handle
2615         -fextended-identifiers.
2616         * doc/cpp.texi: Update documentation of extended identifiers.
2617         * doc/cppopts.texi (-fextended-identifiers): Document.
2618
2619 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
2620
2621         PR tree-optimization/23929
2622         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
2623         if expr is NULL.
2624
2625         PR tree-optimization/23818
2626         * tree-stdarg.c (execute_optimize_stdarg): Call
2627         calculate_dominance_info.
2628
2629 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
2630
2631         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
2632         (analyze_siv_subscript_cst_affine): Add weak SIV test.
2633         (compute_overlap_steps_for_affine_1_2): Use
2634         get_number_of_iters_for_loop.
2635         (analyze_subscript_affine_affine): Check whether difference is
2636         zero first.
2637         Use get_number_of_iters_for_loop.
2638         Check whether overlap occurs outside of bounds.
2639         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
2640
2641 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
2642
2643         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
2644         base register if possible.
2645
2646 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
2647
2648         PR tree-optimization/18463
2649         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
2650         converting it directly is not possible.
2651         (chrec_convert_aggressive): New function.
2652         * tree-chrec.h (chrec_convert_aggressive): Declare.
2653         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
2654         Fold chrec conversions aggressively if asked to.
2655         (instantiate_parameters): Modified because of changes in
2656         instantiate_parameters_1.
2657
2658 2005-09-19  Richard Henderson  <rth@redhat.com>
2659
2660         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
2661         (reduc_splus_v2df): New.
2662
2663 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
2664
2665         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
2666         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
2667
2668 2005-09-19  Richard Henderson  <rth@redhat.com>
2669
2670         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
2671         vcondu<SSEMODE12>.
2672
2673 2005-09-19  Richard Henderson  <rth@redhat.com>
2674
2675         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
2676         (ia64_expand_dot_prod_v8qi): New.
2677         * config/ia64/ia64-protos.h: Update.
2678         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
2679         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
2680         sdot_prodv8qi, sdot_prodv4hi): New.
2681         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
2682
2683 2005-09-19  Richard Henderson  <rth@redhat.com>
2684
2685         PR 23941
2686         * real.c (exact_real_truncate): Return false if the format cannot
2687         represent the number as a normal.
2688
2689         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
2690         for a memory source.
2691
2692 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
2693
2694         * tree-ssa-operands.c (swap_tree_operands): Export.
2695         * tree.h (swap_tree_operands): Declare.
2696         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
2697         Call swap_tree_operands.
2698
2699 2005-09-19  Richard Henderson  <rth@redhat.com>
2700
2701         * tree-flow.h (merge_alias_info): Declare.
2702         * tree-ssa-copy.c (merge_alias_info): Export.
2703         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
2704         (vect_create_data_ref_ptr): Use create_iv directly.
2705         (vectorizable_load): Use correct types for integer constants.
2706         (vect_generate_tmps_on_preheader): Likewise.
2707         (vect_gen_niters_for_prolog_loop): Likewise.
2708
2709 2005-09-19  Steven Bosscher  <stevenb@suse.de>
2710
2711         PR rtl-optimization/23943
2712         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
2713
2714 2005-09-18  Jan Hubicka  <jh@suse.cz>
2715
2716         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
2717
2718 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2719
2720         * varasm.c (output_constant): Do not abort on conversions to union
2721         types between different sizes.
2722
2723 2005-09-18  Richard Guenther  <rguenther@suse.de>
2724
2725         PR middle-end/23944
2726         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
2727         fallback.
2728
2729 2005-09-18  Paul Brook  <paul@codesourcery.com>
2730
2731         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
2732
2733 2005-09-17  Richard Henderson  <rth@redhat.com>
2734
2735         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
2736         * tree-ssa-loop.c (pass_vect_dce): Remove.
2737         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
2738         of pass_vectorize.
2739
2740 2005-09-17  Richard Henderson  <rth@redhat.com>
2741
2742         * tree-pass.h (pass_vect_dce): Declare.
2743         * passes.c (init_optimization_passes): Add it.
2744         * tree-flow.h (tree_ssa_dce): Declare.
2745         * tree-ssa-dce.c (tree_ssa_dce): Export.
2746         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
2747         (gate_tree_vectorize): ... here.
2748         (pass_vect_dce): New.
2749
2750 2005-09-17  Jan Hubicka  <jh@suse.cz>
2751
2752         * except.c (struct eh_status): Turn region_array into vec.
2753         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
2754         convert_from_eh_region_ranges, find_exception_handler_labels,
2755         current_function_has_exception_handlers, assign_filter_values,
2756         build_post_landing_pads, dw2_build_landing_pads,
2757         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
2758         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
2759         foreach_reachable_handler, can_throw_internal_1,
2760         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
2761         region_array.
2762         (duplicate_eh_region_1): Update region_array.
2763         (duplicate_eh_regions): Resize region_array and avoid recomputing.
2764
2765 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
2766
2767         PR middle-end/22067
2768         * expmed.c (expand_mult): Substitute simple register for op0 when
2769         computing max_cost.
2770
2771 2005-09-17  Richard Henderson  <rth@redhat.com>
2772
2773         * expr.c (emit_move_via_integer): Add force argument, pass it on
2774         to emit_move_change_mode.  Update callers.
2775         (emit_move_complex): Pass true to new force argument.
2776         * function.c (expand_function_end): Move expand_eh_return call
2777         earlier.  Merge sub-word complex values into a pseudo before
2778         copying to the return hard register.
2779
2780 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2781
2782         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
2783         between different sizes.
2784
2785 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
2786
2787         PR 23903
2788
2789         * passes.c (init_optimization_passes): Register dump files for
2790         IPA passes first.
2791
2792 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2793
2794         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
2795         * config/s390/s390.c (s390_overlap_p): New function.
2796         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
2797         peephole2, "*xc" peephole2): Added overlap check to the peephole2
2798         condition.
2799
2800 2005-09-16  Richard Guenther  <rguenther@suse.de>
2801
2802         * ipa-pure-const.c (static_execute): Free auxiliar information.
2803         * ipa-type-escape.c (discover_unique_type): Free temporary key.
2804         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
2805
2806 2005-09-15  DJ Delorie  <dj@redhat.com>
2807
2808         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
2809
2810 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
2811
2812         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2813         to order operands.
2814         (swap_commutative_operands_with_target): New.
2815
2816 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
2817
2818         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
2819         parameter.
2820         Update callers.
2821         (estimate_iters_using_array): New function.
2822         * tree-data-ref.h (estimate_iters_using_array): Prototype
2823         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
2824         Use estimate_iters_using_array instead of analyze_array.
2825
2826 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2827
2828         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
2829         as addressable.
2830
2831 2005-09-15  Michael Matz  <matz@suse.de>
2832
2833         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
2834
2835 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
2836
2837         PR tree-optimization/23835
2838         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
2839         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
2840
2841 2005-09-14  Richard Henderson  <rth@redhat.com>
2842
2843         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
2844         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
2845
2846 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
2847
2848         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
2849         in the ARRAY_TYPE case.
2850
2851 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2852
2853         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
2854
2855 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
2856
2857         PR middle-end/22480
2858         * tree-vect-transform.c (vectorizable_operation): Return false for
2859         scalar shift operations and for vector shift operations with
2860         non-invariant shift arguments.  Use scalar tree operand op1 as
2861         a shift operand when vector shift insn pattern uses scalar shift
2862         operand.
2863         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
2864
2865 2005-09-14  Olivier Hainque  <hainque@adacore.com>
2866
2867         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
2868         value if it has side-effects.
2869
2870 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
2871
2872         PR target/22068
2873         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
2874
2875 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
2876
2877         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
2878         passed as NAME as if it were label at start of function code.
2879
2880 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2881
2882         * config/sh/sh.md (*movv4sf_i): Add general register cases to
2883         the constraints.
2884
2885 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
2886
2887         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
2888         as early clobber.  Rewrite so the PIC register is not implicitly used.
2889
2890 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2891
2892         * tree.c (annotate_with_file_line): Compare line numbers before
2893         file names.
2894
2895 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
2896
2897         PR target/23816
2898         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
2899         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
2900
2901 2005-09-13  Ian Lance Taylor  <ian@airs.com>
2902
2903         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
2904         than a HOST_WIDEST_INT to gen_doloop_begin.
2905
2906 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
2907
2908         * tree-dfa.c (dump_variable): Guard against NULL annotations.
2909
2910 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
2911
2912         PR tree-optimize/23817
2913         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
2914
2915 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
2916
2917         PR target/23774
2918         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
2919         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
2920         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
2921         (restore_stack_nonlocal): Likewise.
2922         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
2923
2924 2005-09-12  Ian Lance Taylor  <ian@airs.com>
2925
2926         PR g++/7874
2927         * c.opt (ffriend-injection): New C++ option.
2928         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
2929         (C++ Dialect Options): Document -ffriend-injection.
2930
2931 2005-09-12  Josh Conner  <jconner@apple.com>
2932
2933         PR middle-end/23237
2934         * ipa-reference.c (static_execute): Don't mark variables in
2935         named sections TREE_READONLY.
2936
2937 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
2938
2939         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
2940         stack_tie.
2941
2942 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
2943
2944         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
2945         V_MUST_DEF instead of just the first_use_p.
2946         Don't mark the virtual variables for renaming on the statement which
2947         is being removed.
2948         (pass_dse): Remove TODO_update_ssa.
2949
2950 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
2951
2952         PR middle-end/23290
2953         * stor-layout.c (compute_record_mode): For records with a single
2954         field, actually check the field's mode size against the type size.
2955
2956         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
2957         registers for TARGET_SHMEDIA.
2958         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
2959         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
2960         of GENERAL_REGS and FP_REGS.
2961
2962 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2963
2964         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
2965
2966 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
2967
2968         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
2969         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
2970         are omitted.  Exclude stack_tie insn too.
2971
2972 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
2973
2974         PR rtl-optimization/23098
2975         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
2976         0.0f is easy.
2977         * config/rs6000/rs6000.md (movdf splitter): Use
2978         const_double_operand predicate for TARGET_POWERPC64.
2979         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
2980         SYMBOL_REF method to ABI_V4.
2981
2982         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
2983         replace_equiv_address.
2984         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
2985         rs6000_sr_alias_set and MEM_NOTRAP.
2986         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
2987
2988 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
2989
2990         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
2991         handle CALL_EXPR again.
2992
2993 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
2994
2995         * arm/predicates.md (alignable_memory_operand): Delete.
2996
2997 2005-09-10  Richard Henderson  <rth@redhat.com>
2998
2999         PR debug/23806
3000         * dbxout.c (dbxout_expand_expr): New.
3001         (dbxout_symbol): Use it.
3002
3003 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
3004
3005         * arm.c (arm_gen_rotated_half_load): Delete.
3006         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
3007         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
3008         (thumb_set_return_address): Likewise.
3009         (thumb_load_double_from_address): Use adjust_address.
3010         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
3011         (extendhsisi2_mem, movhi_bytes): Use change_address.
3012         (movhi): Use widen_memory_access.
3013         (reload_out_df): Use replace_equiv_address.
3014         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
3015
3016 2005-09-09  Richard Henderson  <rth@redhat.com>
3017
3018         PR debug/20998
3019         * dbxout.c: Include expr.h.
3020         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
3021         (dbxout_symbol): Handle DECL_VALUE_EXPR.
3022         * Makefile.in (dbxout.o): Add EXPR_H.
3023
3024 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
3025
3026         PR tree-optimization/23509
3027         * tree-cfg.c (replace_uses_by): Use replace_exp.
3028         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
3029         pointers have name_mem_tag or type_mem_tag set.
3030
3031 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
3032
3033         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
3034         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
3035         of wrongly accessing operands.
3036
3037 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
3038
3039         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
3040         * tree-chrec.c: Include tree-scalar-evolution.h.
3041         (chrec_convert): Instantiate the base and step before calling
3042         scev_probably_wraps_p that would fail on parametric evolutions.
3043         Collect all the fails into a single section failed_to_convert,
3044         print a diagnostic, and return chrec_dont_know instead of calling
3045         fold_convert.
3046         * tree-scalar-evolution.c (loop_closed_phi_def): New.
3047         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
3048         phi nodes.
3049         (scev_const_prop): Don't replace the definition of a loop closed ssa
3050         phi node by itself, or by another loop closed ssa phi node.
3051         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
3052         that base and step are defined.
3053
3054 2005-09-09  Richard Guenther  <rguenther@suse.de>
3055
3056         PR c++/23624
3057         * fold-const.c (fold_ternary): Check truth_value_p before
3058         calling invert_truthvalue.
3059
3060 2005-09-09  Nick Clifton  <nickc@redhat.com>
3061
3062         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
3063         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
3064         dimension of these arrays.
3065         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
3066         these arrays.
3067         * longlong.h: Only provide a prototype for the __clz_tab[] array
3068         if this header has not been included from libgcc2.h.
3069         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
3070         defining own types.
3071         Provide prototypes for exported functions.
3072         Use the __clz_tab[] and __popcount_tab[] arrays provided by
3073         libgcc2.c.
3074
3075 2005-09-08  Josh Conner  <jconner@apple.com>
3076
3077         PR c++/21135
3078         PR c++/23180
3079         * expr.c (expand_expr_addr_expr_1): Don't invoke
3080         expand_simple_binop for EXPAND_INITIALIZER.
3081
3082 2005-09-08  Richard Henderson  <rth@redhat.com>
3083
3084         PR debug/23190
3085         * toplev.c (wrapup_global_declaration_1): Split out ...
3086         (wrapup_global_declaration_2): ... from ...
3087         (wrapup_global_declarations): ... here.  Return bool.
3088         (check_global_declaration_1): Split out ...
3089         (check_global_declarations): from here.
3090         (emit_debug_global_declarations): New.
3091         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
3092         check_global_declaration_1, emit_debug_global_declarations): Declare.
3093         * c-decl.c (c_write_global_declarations_1): Don't create a vector
3094         of decls.  Call wrapup_global_declaration_1,
3095         wrapup_global_declaration_2, check_global_declaration_1 directly.
3096         (c_write_global_declarations_2): New.
3097         (ext_block): New.
3098         (c_write_global_declarations): Call c_write_global_declarations_2.
3099         * langhooks.c (write_global_declarations): Call
3100         emit_debug_global_declarations.
3101
3102         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
3103         remove decls that have DECL_RTL_SET_P.
3104         * passes.c (rest_of_decl_compilation): Invoke
3105         cgraph_varpool_finalize_decl for all but functions.
3106
3107 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3108
3109         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
3110         the result of a conversion if the new min and max cannot be compared.
3111
3112 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
3113
3114         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
3115         (override_options): Setting s390_sr_alias_set removed.
3116         (save_fpr, save_gprs): Set alias set to vararg or frame.
3117         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
3118         s390_sr_alias_set with get_frame_alias_set ().
3119         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
3120         get_varargs_alias_set ().
3121
3122 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
3123
3124         PR objc/20574
3125         PR objc/19324
3126         * c-parser.c (c_parser_objc_method_definition): If the next
3127         token is not "{", error out and don't start the function.
3128
3129 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
3130
3131         * tree-vrp.c (extract_range_from_expr): Move the check for non
3132         nullness after the check for gimple invariant.
3133
3134 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3135
3136         * tree.c (host_integerp, tree_low_cst): Correct function comment.
3137
3138 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3139
3140         PR target/23747
3141         * config/m32r.md (movmemsi_internal): Canonicalize order of
3142         operands in PLUS component of template.
3143
3144 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3145
3146         * reload1.c (fixup_eh_region_note): Remove assertion.
3147         (fixup_abnormal_edges): Reverted removal of call to
3148         find_many_sub_basic_blocks made on 2005-08-31.
3149
3150 2005-09-07  Richard Henderson  <rth@redhat.com>
3151
3152         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
3153         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
3154         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
3155         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
3156         rearrange for better packing.
3157         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
3158         (lookup_cfa_1): Remove inline marker.
3159         (cfa_equal_p): Split out of ...
3160         (def_cfa_1): ... here.  Use INVALID_REGNUM.
3161         (build_cfa_loc): Handle !cfa->indirect.
3162         (frame_pointer_cfa_offset): New.
3163         (dbx_reg_number): Assert register elimination performed; do
3164         leaf register remapping.
3165         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
3166         (eliminate_reg_to_offset): New.
3167         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
3168         for verifiably local stack frame addresses; re-base to CFA.
3169         (mem_loc_descriptor): Remove can_use_fbreg argument.
3170         (concat_loc_descriptor, loc_descriptor): Likewise.
3171         (containing_function_has_frame_base): Remove.
3172         (rtl_for_decl_location): Don't do register elimination or
3173         leaf register remapping here.
3174         (secname_for_decl): Split out from ..
3175         (add_location_or_const_value_attribute): ... here.
3176         (convert_cfa_to_loc_list): New.
3177         (compute_frame_pointer_to_cfa_displacement): New.
3178         (gen_subprogram_die): Use them.
3179         * tree.h (frame_base_decl): Remove.
3180         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
3181         (prologue_stack_adjust): Remove.
3182         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
3183         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
3184         (set_frame_base_location): Remove.
3185         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
3186         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
3187         (vt_add_function_parameters): Don't eliminate_regs.
3188         (vt_initialize): Don't create frame_base_decl.
3189
3190 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3191
3192         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
3193         version of GNU binutils for 4.x and later.
3194
3195 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
3196
3197         * ggc-page.c (ggc_push_context): Remove.
3198         (ggc_pop_context): Likewise.
3199         * ggc.h (ggc_push_context): Remove.
3200         (ggc_pop_context): Likewise.
3201
3202 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
3203
3204         PR target/8973
3205         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
3206         returning from an interrupt handler.
3207
3208 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
3209
3210         PR target/8972
3211         * config/arc/arc.c (output_shift): Add check for loop count when
3212         optimizing.
3213
3214 2005-09-06  Steven Bosscher  <stevenb@suse.de>
3215
3216         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
3217         form manually.
3218         (abs_replacement): Likewise.
3219         (pass_phiopt): Remove TODO_update_ssa.
3220
3221 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
3222
3223         PR c/23075
3224         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
3225         if "return with no value, in function returning non-void" warning
3226         has been issued.
3227         * tree-cfg.c (execute_warn_function_return): Don't look at
3228         RETURN_EXPRs with TREE_NO_WARNING set.
3229
3230         PR target/22362
3231         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
3232         for internal functions doesn't use registers used by global registers
3233         variables.  Use fewer register parameters if there are global register
3234         variables.
3235
3236 2005-09-06  Olivier Hainque  <hainque@adacore.com>
3237             Eric Botcazou  <ebotcazou@adacore.com>
3238
3239         PR middle-end/14997
3240         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
3241         when we would be extracting outside its bit span (bitpos+bitsize
3242         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
3243         Ada unchecked conversions.
3244
3245 2005-09-06  Steven Bosscher  <stevenb@suse.de>
3246
3247         * tree-ssa-pre.c (try_look_through_load): New function.
3248         (compute_avail): Use it to try to look through loads for some
3249         more useful expressions.
3250
3251 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
3252
3253         * simplify-rtx.c (simplify_binary_operation_1): Correct the
3254         condition for detecting cases like (a&a) and (a^a).
3255
3256 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
3257
3258         * common.opt: Add option ftree-vect-loop-version.
3259         * params.def: Add --param vect-max-version-checks.
3260         * doc/invoke.texi: Document ftree-vect-loop-version and
3261         --param vect-max-version-checks.
3262         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
3263         may_misalign_stmts and defines for accessors.
3264         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
3265         LOOP_VINFO_MAY_MISALIGN_STMTS.
3266         (destroy_loop_vec_info): VEC_free for
3267         LOOP_VINFO_MAY_MISALIGN_STMTS.
3268         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
3269         Update documentation.
3270         (vect_update_misalignment_for_peel): New.
3271         (vect_enhance_data_refs_alignment): Update to choose loop
3272         peeling or loop versioning if appropriate for the (potentially)
3273         unaligned data references in the loop.
3274         (vect_analyze_data_refs_alignment): Remove call to
3275         vect_enhance_data_refs_alignment so the checks can be done
3276         earlier.
3277         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
3278         and move up call to vect_analyze_data_refs_alignment.
3279         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
3280         (vect_transform_loop): Add call to loop_version.
3281
3282 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
3283
3284         PR rtl-optimization/23098
3285         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
3286         * simplify-rtx.c (constant_pool_reference_p): New function.
3287         * rtl.h (constant_pool_reference_p): New prototype.
3288         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
3289         constant_pool_reference_p in condition and
3290         avoid_constant_pool_reference in preparation statements.
3291
3292 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3293
3294         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
3295         STRICT_LOW_PART SETs.
3296
3297 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
3298
3299         PR middle-end/21460
3300         * except.c (sjlj_emit_function_enter): Find the function begin
3301         note even when it's not in first basic block.
3302
3303 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
3304
3305         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
3306         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
3307         * aclocal.m4: Regenerate.
3308
3309 2005-09-05  DJ Delorie  <dj@redhat.com>
3310
3311         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
3312         of macro.
3313
3314 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
3315
3316         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
3317         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
3318         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
3319         Follow spelling conventions.
3320         * doc/invoke.texi: Follow spelling conventions.
3321
3322 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
3323
3324         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
3325         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
3326         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
3327
3328 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
3329
3330         PR target/23683
3331         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
3332         (output_stack_adjust): Use gen_tmp_stack_mem.
3333         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
3334         (sh_set_return_address, sh_allocate_initial_value): Likewise.
3335         (sh_get_pr_initial_val): Likewise.
3336         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
3337         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
3338         * sh.md (divsi_inv_m0): Use gen_const_mem.
3339         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
3340         (movdf_i4+1): Use gen_tmp_stack_mem.
3341         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
3342         (fpu_switch+2): Likewise.
3343         (movv4sf_i, movv16sf_i): Use adjust_address.
3344         (symGOT_load): Set MEM_NOTRAP_P bit.
3345
3346 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3347
3348         PR target/23721
3349         * pa.c (emit_move_sequence): Fix typo in last change.
3350
3351 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
3352
3353         PR rtl-optimization/23454
3354         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
3355         is true.
3356
3357 2005-09-03  Richard Henderson  <rth@redhat.com>
3358             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3359
3360         PR middle-end/23671
3361         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
3362         gen_rtx_MEM.
3363
3364 2005-09-02  Nicolas Pitre <nico@cam.org>
3365
3366         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
3367         to bit_count to 32 bits.
3368
3369 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
3370
3371         PR c++/23167
3372         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
3373         generating synthetic loads from volatile lvalues.
3374
3375 005-09-02  Nick Clifton  <nickc@redhat.com>
3376
3377         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
3378         __ctzhi2, __clzhi2): New functions.
3379
3380 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
3381
3382         PR middle-end/23547
3383         * tree-nested.c (struct var_map_elt): Mark with GTY.
3384         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
3385         var_map_elt.
3386         (lookup_field_for_decl): Allocate new element in GC memory.
3387         (lookup_tramp_for_decl): Likewise.
3388         (convert_nl_goto_reference): Likewise
3389         (create_nesting_tree): Allocate info in GC memory. Likewise for
3390         info->var_map.
3391         (free_nesting_tree): Free with ggc_free instead of free.
3392         (root): New static variable.
3393         (lower_nested_functions): Remove root as local variable.  And zero out
3394         root at the end of the function.
3395
3396 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
3397
3398         PR rtl-optimization/20365
3399         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
3400         to short.  New member ix.
3401         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
3402         (simplify_plus_minus): Initialize ix members before calling qsort.
3403
3404 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
3405
3406         PR tree-optimization/23626
3407         * tree-cfg.c (replace_uses_by): Clean up eh info.
3408
3409 2005-09-01  DJ Delorie  <dj@redhat.com>
3410
3411         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
3412         fprintf.
3413
3414 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
3415
3416         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
3417         (rs6000_split_multireg_move): Use replace_equiv_address instead of
3418         gen_rtx_MEM.
3419
3420 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3421
3422         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
3423         do not issue warning for a variable definition following
3424         a declaration.
3425
3426 2005-09-01  Richard Henderson  <rth@redhat.com>
3427
3428         PR 23668
3429         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
3430         conversion to CONST_VECTOR.
3431
3432 2005-09-01  Richard Henderson  <rth@redhat.com>
3433
3434         PR 23676
3435         * reload1.c (reload_as_needed): Check !CALL_P before calling
3436         fixup_eh_region_note.
3437         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
3438
3439 2005-09-01  DJ Delorie  <dj@redhat.com>
3440
3441         * varasm.c (output_constant): Let the target resolve
3442         conversions of addresses to non-default pointer sizes.
3443
3444 2005-09-01  Nicolas Pitre <nico@cam.org>
3445
3446         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
3447         to alow matching ARM pre-indexed addressing mode.
3448         (arm_override_options): Remove now irrelevant comment.
3449
3450 2005-09-01  Phil Edwards  <phil@codesourcery.com>
3451
3452         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
3453         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
3454         * config/i386/vxworks.h:  Likewise.
3455         * config/i386/t-vxworksae:  New file, for VxWorks AE.
3456         * config/i386/vxworksae.h:  Likewise.
3457
3458 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
3459
3460         PR tree-optimization/23410
3461         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
3462         sequence is not wrapping during the first step.
3463
3464 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
3465
3466         PR debug/7241
3467         * dwarf2out.c (base_type_die): Compare char_type_node with
3468         TYPE_MAIN_VARIANT (type), not type.
3469
3470 2005-09-01  Richard Guenther  <rguenther@suse.de>
3471
3472         PR tree-optimization/15366
3473         * common.opt: Add -finline-functions-called-once.
3474         Put -fearly-inlining in alphabetically ordered place.
3475         * doc/invoke.texi: Document new option.
3476         * ipa-inline.c (cgraph_decide_inlining): Honour
3477         flag_inline_functions_called_once.
3478
3479 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
3480
3481         PR rtl-optimization/23478
3482         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
3483         (alloc_qty): Initialize it.
3484         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
3485         (combine_regs): Combine also n_throwing_calls_crossed fields.
3486         (find_free_reg): Don't attempt to caller-save pseudos crossing
3487         calls that might throw.
3488         * global.c (struct allocno): Add throwing_calls_crossed field.
3489         (global_alloc): Revert 2005-08-22 change.  Initialize
3490         throwing_calls_crossed.
3491         (find_reg): Don't attempt to caller-save pseudos crossing calls that
3492         might throw.
3493
3494 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
3495
3496         PR target/23649
3497         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
3498         (mask64_operand): Reinstate code prior to 2005-06-11 change.
3499         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
3500         (and64_2_operand): Tweak to use predicate.
3501         (and_operand): Adjust for mask_operand changes.
3502         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
3503         (print_operand): Likewise.
3504         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
3505         (mask64_1or2_operand): Delete.
3506         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
3507         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
3508         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
3509         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
3510         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
3511         (rotldi3_internal4): Likewise.
3512         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
3513         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
3514         (ashldi3_internal7): Likewise.
3515         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
3516         (ashldi3_internal, ashldi3_internal9 split): Likewise.
3517         (anddi3 split): Don't match mask64_operand.
3518         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
3519         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
3520         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
3521         't' splitter predicate.
3522         (movdi_internal64 + 2): Revert 2005-06-11 change.
3523
3524 2005-08-31  DJ Delorie  <dj@redhat.com>
3525
3526         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
3527         (m32c_asm_integer): Add support for 32 bit pointers.
3528
3529 2005-08-31  Richard Henderson  <rth@redhat.com>
3530
3531         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
3532         component-like references for setting MEM_NOTRAP_P.
3533
3534         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
3535         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
3536
3537 2005-08-31  Richard Henderson  <rth@redhat.com>
3538
3539         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
3540         into a pseudo before applying gen_lowpart.
3541
3542 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
3543
3544         * doc/install.texi (Specific): Update cctools version required
3545         for full functionality.
3546         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
3547         linkers as -macosx_version_min.
3548
3549 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
3550
3551         PR target/21255
3552         * sh.c (print_operand, %R and %S): Add handling of floating point
3553         registers, memory, constants and invalid operands.
3554
3555 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
3556
3557         * ipa-pure-const.c: Change dump name.
3558
3559 2005-08-31 Uros Bizjak <uros@kss-loka.si>
3560
3561         PR target/23570
3562         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
3563         to "reg_or_0_operand".
3564         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
3565
3566 2005-08-31  Dale Johannesen  <dalej@apple.com>
3567
3568         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
3569         loops that count down.
3570
3571 2005-08-31  Richard Henderson  <rth@redhat.com>
3572
3573         PR rtl-opt/23601
3574         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
3575         (fixup_eh_region_note): New.
3576         (reload_as_needed): Call it.
3577         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
3578         don't call find_many_sub_basic_blocks; call verify_flow_info.
3579         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
3580         (keep_stack_depressed): Likewise.
3581         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
3582
3583 2005-08-31  Richard Henderson  <rth@redhat.com>
3584
3585         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
3586         fp return matching.
3587
3588 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
3589
3590         * expr.c (expand_expr_real_1): Compare size of address
3591         mode to target's address mode size in deciding expansion of
3592         the constant address.
3593
3594 2005-08-31  Richard Guenther  <rguenther@suse.de>
3595
3596         PR middle-end/23477
3597         * expr.c (all_zeros_p): New function.
3598         (expand_expr_real_1): Handle the case of an all-zero
3599         non-addressable constructor separately.
3600
3601 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
3602
3603         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
3604         arguments, adjust all callers.
3605         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
3606
3607 2005-08-30  Richard Henderson  <rth@redhat.com>
3608
3609         PR target/23630
3610         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
3611         whenever the mode sizes match.
3612
3613 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
3614
3615         * calls.c (load_register_parameters): Fix comment typo.
3616         * expr.c (emit_push_insn): Comment formatting.
3617
3618 2005-08-30  Ian Lance Taylor  <ian@airs.com>
3619
3620         * config/i386/x-cygwin (host-cygwin): Change dependency from
3621         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
3622
3623 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
3624
3625         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
3626         parts of 'vals'.
3627
3628 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
3629
3630         PR middle-end/23408
3631         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
3632         call to ggc_collect.
3633
3634 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
3635
3636         PR bootstrap/21268
3637         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
3638         beginning.  Remove $(INCLUDES) from all the rules, if following
3639         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
3640
3641 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
3642
3643         PR middle-end/23484
3644         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
3645         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
3646         not constant, but maxlen is, don't set len to maxlen, rather
3647         set maxlen to len if len is a constant.
3648
3649 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
3650
3651         PR tree-optimization/23475
3652         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
3653         and counts.
3654
3655 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
3656
3657         Fix PR middle-end/22455
3658
3659         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
3660         Checksum only the parts of the tree that exist for the tree code.
3661
3662 2005-08-28  Dale Johannesen  <dalej@apple.com>
3663
3664         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
3665
3666 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
3667
3668         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
3669
3670 2005-08-28  Richard Henderson  <rth@redhat.com>
3671
3672         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
3673         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
3674         of char_type_node.
3675
3676 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
3677
3678         PR ada/23593
3679         * builtins.c (get_memory_rtx): Don't strip nops
3680         in between COMPONENT_REFs.
3681
3682 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
3683
3684         PR middle-end/23463
3685         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
3686         types.
3687         (gimplify_modify_expr): Check for zero sized types and gimplify the
3688         rhs and lhs as statements.
3689
3690 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
3691
3692         PR libgcj/23508
3693         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
3694         state for return address column of signal frames.
3695
3696 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
3697
3698         PR target/23539
3699         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
3700         bytes >= 2 not bytes == 2.
3701         (expand_block_move): Same.
3702
3703 2005-08-27  Richard Guenther  <rguenther@suse.de>
3704
3705         PR target/23575
3706         * config/i386/sse.md (sse2_movsd): Add missing closing
3707         braces.
3708
3709 2005-08-27  Paul Brook  <paul@codesourcery.com>
3710
3711         * genrecog.c (enum decision_type): Add DT_num_insns.
3712         (struct decision_test): Add u.num_insns.
3713         (add_to_sequence): Add DT_num_insns test.
3714         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
3715         (write_cond, debug_decision_2): Ditto.
3716         (change_state): Assume peep2_next_insn never fails.
3717         Remove "afterward" argument.
3718         (write afterward, write_tree): Update to match.
3719         * recog.c (peep2_current_count): New variable.
3720         (peep2_next_insn): Check it.
3721         (peephole2_optimize): Set peep2_current_count.
3722         * recog.h (peep2_current_count): Declare.
3723
3724 2005-08-26  Josh Conner  <jconner@apple.com>
3725
3726         PR middle-end/23584
3727         * ipa-pure-const.c (check_tree): Check for volatile-ness
3728         when considering a dereference.
3729
3730 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
3731
3732         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
3733
3734 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
3735
3736         PR rtl-optimization/23561
3737         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
3738         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
3739         at most LEN bytes long memory fits into the field.
3740         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
3741         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
3742         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
3743
3744 2005-08-26  Richard Henderson  <rth@redhat.com>
3745
3746         PR rtl-opt/23560
3747         * loop.c (biased_biv_may_wrap_p): New.
3748         (maybe_eliminate_biv_1): Use it to suppress non-equality
3749         comparison transformations.  Delete disabled code.
3750
3751 2005-08-26  Ian Lance Taylor  <ian@airs.com>
3752
3753         * combine.c (make_extraction): Avoid reference outside object.
3754
3755 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
3756
3757         * stor-layout.c (finalize_type_size): Restore behaviour for
3758         non-aggregate types to the status quo ante of the patch for
3759         pr 23467.  Document why it matters.
3760
3761 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
3762
3763         PR c/23506
3764         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
3765         array by one element, initialize the BT_LAST element with NULL.
3766
3767 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
3768
3769         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
3770         optimizing for size.
3771         (plus_eqsi): Same.
3772         (compare_plus_eqsi): Same.
3773         (plus_eqsi_compare): Same.
3774         (neg_eq0<mode>): Same.
3775         (neg_eq<mode>): Same.
3776
3777         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
3778         PROCESSOR_POWER4.
3779
3780 2005-08-26  Nick Clifton  <nickc@redhat.com>
3781
3782         * config/v850/v850.c (ep_memory_operand): Return FALSE if
3783         TARGET_EP is not defined.
3784         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
3785         TARGET_EP is enabled.
3786         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
3787         * config/v850/v850.md (save_all_interrupt): Only use the EP
3788         register if TARGET_EP is defined.
3789         (restore_all_interrupt): Likewise.
3790         * config/v850/lib1funcs.asm: Update functions so that the EP
3791         register is only used if __EP__ is defined.
3792
3793 2005-08-26  David Ung  <davidu@mips.com>
3794
3795         * config/mips/mips.c (mips_expand_prologue): Handle case when
3796         generating for MIPS16 and the outgoing argument area is more than
3797         SMALL_OPERAND. Use the frame pointer as temporary to generate the
3798         add instruction.
3799
3800 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
3801
3802         * config/crx/crx.md: Make doloop_end pattern usage controllable
3803         via mloop-nesting=<max-nesting> command line switch. Make sure
3804         the combiner cannot use doloop_end_<mode> in an illegal way.
3805         * config/crx/crx.c: Use regs up to r6 for argument passing.
3806         Refine crx_address_cost (non cst4 displacements are expensive).
3807         * config/crx/crx.opt: Add switch for mloop-nesting=.
3808
3809 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
3810
3811         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
3812         (UNSPEC_MVST): New constant.
3813
3814 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
3815
3816         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
3817         Reject operands containing eliminable registers.
3818         * testsuite/gcc.dg/20050825-1.c: New testcase.
3819
3820 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3821             Jan Hubicka  <jh@suse.cz>
3822
3823         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
3824
3825 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3826
3827         PR tree-optimization/23546
3828         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
3829         and REAL_CST nodes.
3830
3831 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
3832
3833         * params.def (PARAM_MIN_SPEC_PROB): New.
3834         * sched-rgn.c (MIN_PROBABILITY): Delete.
3835         (compute_trg_info): Convert to PARAM_VALUE.
3836         * doc/invoke.texi (param): Document min-spec-prob.
3837
3838 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
3839
3840         * config/darwin.h: define __PIC__
3841         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
3842         TARGET_OS_CPP_BUILTINS macro.
3843
3844 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3845
3846         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
3847         yesterday.
3848
3849 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
3850
3851         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
3852         to duplicate_block.
3853         * cfghooks.c (duplicate_block): Added position where to place
3854         new block as argument.
3855         * cfghooks.h (duplicate_block): Declaration changed.
3856         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
3857         duplicate_block.
3858         * cfglayout.h (copy_bbs): Declaration changed.
3859         * cfgloop.h (loop_version): Declaration changed.
3860         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
3861         position to copy_bbs.
3862         (loop_version): Pass position to duplicate_loop_to_header_edge.
3863         Add place_after argument and position new blocks according to
3864         it.
3865         * modulo-sched.c (sms_schedule): Pass place_after argument
3866         to loop_version.
3867         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
3868         * tree-cfg.c (split_edge_bb_loc): New function.
3869         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
3870         to determine position of new blocks.
3871         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
3872         to loop_version.
3873         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
3874         argument to duplicate_block.
3875         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
3876         Pass position to copy_bbs.
3877
3878 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
3879
3880         * fold-const.c (ptr_difference_const): Use
3881         cst_and_fits_in_hwi instead of host_integerp.
3882
3883 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3884
3885         * config/darwin.c (gen_pic_offset): New.
3886         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
3887         Use it.
3888
3889 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
3890
3891         PR tree-optimization/23486
3892         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
3893
3894 2005-08-23  Phil Edwards  <phil@codesourcery.com>
3895
3896         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
3897         remove use_collect2.
3898         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
3899
3900         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
3901         configuration files to override the default value.
3902
3903         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
3904         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
3905         * config/vx-common.h:  New file, split out from...
3906         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
3907         * config/vxworksae.h:  New file, for VxWorks AE.
3908         * config/vxworks.opt:  New file.
3909         * config/vxlib.c:  Update for VxWorks 6.
3910
3911         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
3912         other MULTILIB_* variables appropriately.
3913         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
3914         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
3915         * config/rs6000/vxworks.h:  Update for VxWorks 6.
3916         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
3917
3918 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
3919
3920         PR target/20799
3921         * config/darwin.c (machopic_select_section): Remove the hack to
3922         mark "::operator new" and "::operator delete" for coalescing
3923         even though they are not weak.
3924
3925 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
3926
3927         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
3928         * configure: Regenerate.
3929
3930 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
3931
3932         PR middle-end/23517
3933         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
3934         between vectors.
3935         * convert.c (convert_to_integer, convert_to_vector): Likewise.
3936         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
3937         Likewise.
3938
3939 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
3940
3941         * config/rs6000/predicates.md (equality_operator): New.
3942         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
3943         comparison with a large constant.
3944
3945 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
3946
3947         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
3948
3949 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
3950
3951         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
3952         registers is even, and we have a hardware double precision fp,
3953         align the buffer.
3954         (sh_gimplify_va_arg_expr): For floating point arguments, consider
3955         size of current argument when checking if argument was passed in
3956         registers.
3957
3958         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
3959
3960         PR middle-end/23467
3961         * stor-layout.c (finalize_type_size): Dont override
3962         existing alignment with a smaller alignment from the mode.
3963
3964 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
3965
3966         * lambda-code.c (lambda_vector_lexico_pos): Moved...
3967         * lambda.h (lambda_vector_lexico_pos): ... here.
3968         * tree-data-ref.c (build_classic_dist_vector): Return false when
3969         the distance vector is lexicographically negative.
3970
3971 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
3972
3973         PR tree-optimization/23511
3974         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
3975         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
3976
3977 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
3978
3979         PR tree-optimization/22043
3980         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
3981         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
3982         If ALLOW_FLEXARR, handle types ending with flexible array member.
3983         Pass false as second argument to recursive count_type_elements calls.
3984         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
3985         argument to count_type_elements call.
3986         * tree-sra.c (decide_block_copy): Likewise.
3987         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
3988         for a constant-sized object, set cleared as well.  Pass true as
3989         second argument to count_type_elements call.
3990
3991 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
3992
3993         PR target/21571
3994         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
3995         from legitimate_small_data_p, and make global.  Update use.
3996         Remove forward declaration.
3997         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
3998         Declare.
3999         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
4000
4001 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
4002
4003         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
4004         of scratch intermediates.
4005         (eq<mode>_compare): Same.
4006         (neg_eq0<mode>): New.
4007         (neg_eq<mode>): Convert to define_insn_and_split.
4008
4009 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
4010
4011         PR target/23070
4012         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
4013         stdarg functions, set/clear the fp marker even when no variable
4014         args are passed.
4015         * config/rs6000/sysv4.opt (mprototype): Describe.
4016
4017 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
4018
4019         PR rtl-optimization/23478
4020         * regs.h (reg_info): Add throw_calls_crossed.
4021         (REG_N_THROWING_CALLS_CROSSED): Define.
4022         * flow.c (allocate_reg_life_data): Initialize
4023         REG_N_THROWING_CALLS_CROSSED.
4024         (propagate_one_insn, attempt_auto_inc): Update
4025         REG_N_THROWING_CALLS_CROSSED.
4026         * global.c (global_alloc): Don't allocate pseudos across
4027         calls that may throw.
4028
4029 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
4030
4031         PR c/18715
4032         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
4033         value is inbetween the range if we did not find an exact match.
4034
4035 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
4036
4037         * doc/invoke.texi (Option Summary): Add ms1 options.
4038         * doc/extend.texi: Document interrupt handler attribute for ms1.
4039         * doc/md.texi: Document ms1 constraints.
4040         * config.gcc: Add ms1-*-elf.
4041         * config/ms1/ms1.h: New.
4042         * config/ms1/ms1.c: New.
4043         * config/ms1/ms1.md: New.
4044         * config/ms1/ms1-protos.h: New.
4045         * config/ms1/ABI.txt: New.
4046         * config/ms1/crti.asm: New.
4047         * config/ms1/crtn.asm: New.
4048         * config/ms1/lib2extra-funcs.c: New.
4049         * config/ms1/t-ms1: New.
4050         * config/ms1/ms1.opt: New.
4051
4052 2005-08-22 Ira Rosen <irar@il.ibm.com>
4053
4054         * config/rs6000/altivec.md (xorv4sf3): New.
4055         (negv4sf2, neg<mode>2): Likewise.
4056
4057 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
4058
4059         PR target/23485
4060         * config/ia64/ia64.md (divsi3): Check divide by zero.
4061         (udivsi3): Likewise.
4062         (divdi3): Likewise.
4063         (udivdi3): Likewise.
4064
4065 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
4066
4067         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
4068         up to elem_bitsize bits, not max_bitsize.
4069
4070 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
4071
4072         PR tree-optimization/23433
4073         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
4074         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
4075
4076 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
4077
4078         PR tree-optimization/23434
4079         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
4080         the iteration bound is not an INTEGER_CST.
4081
4082 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
4083
4084         * tree-vect-transform.c (get_initial_def_for_reduction): Set
4085         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
4086         NULL if need_epilog_adjust is false.
4087         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
4088         Case 3 always peels first itration, not just for PLUS case, and no need
4089         to use scalar_initial_def here. Create an epilog adjustment only if
4090         scalar_initial_def is not NULL.
4091
4092         (vectorizable_reduction): Remove assert.
4093
4094 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
4095
4096         PR target/23485
4097         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
4098         (__moddi3): Likewise.
4099         (__udivdi3): Likewise.
4100         (__umoddi3): Likewise.
4101         (__divsi3): Likewise.
4102         (__modsi3): Likewise.
4103         (__udivsi3): Likewise.
4104         (__umodsi3): Likewise.
4105
4106 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
4107
4108         * tree-pass.h (TDF_GRAPH): Define.
4109         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
4110         * passes.c (finish_optimization_passes): Only call
4111         finish_graph_dump_file if TDF_GRAPH is set.
4112         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
4113         NULL.  Set TDF_GRAPH bit.
4114         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
4115
4116 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
4117
4118         * arm.h (arm_stack_offsets): Add locals_base field.
4119         * arm.c (arm_get_frame_offsets): Compute it.
4120         (thumb_compute_initial_elimination offset): Make the Thumb frame
4121         pointer point to the base of the local variables.
4122         (thumb_expand_prologue): Update accordingly.
4123         (thumb_expand_epilogue): Likewise.
4124
4125         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
4126         mode of clobbered scratch to DImode.  Handle a case that's known to
4127         need this.
4128
4129 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
4130
4131         * config/rs6000/rs6000.md (gt0<mode>): Delete.
4132         (gt0<mode>_compare): Delete.
4133         (neg_gt0<mode>): Delete.
4134
4135 2005-08-19  Eric Christopher  <echristo@apple.com>
4136
4137         * optabs.h: Change CTI_ to COI_.
4138         * optabs.c: Ditto.
4139
4140 2005-08-19  James E Wilson  <wilson@specifix.com>
4141
4142         * builtins.c (expand_builtin_return_addr): Set
4143         current_function_accesses_prior_frames when count != 0.  Use
4144         frame_pointer_rtx when count == 0.
4145         * function.h (struct function): Add accesses_prior_frames field.
4146         (current_function_accesses_prior_frames): Define.
4147         * reload1.c (init_elim_table): Check
4148         current_function_accesses_prior_frames.
4149         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
4150
4151 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
4152
4153         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
4154         indicator.  Return true if the flowgraph changed during
4155         cleanup.
4156
4157 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
4158
4159         PR 23476
4160         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
4161         conditional expression before testing its value.
4162
4163 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
4164
4165         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
4166
4167 2005-08-19  Devang Patel  <dpatel@apple.com>
4168
4169         PR tree-optimization/23048
4170         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
4171         third parameter. Check whether latch is dominated by exit
4172         block or not.
4173         (if_convertible_loop_p): Supply exit block itself to
4174         if_convertible_bb_p.
4175
4176 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
4177
4178         PR target/23473
4179         * arm.md (arm_load_pic_register): Change argument to the mask of
4180         saved registers.  Call thumb_find_work_register if we need a
4181         scratch register on Thumb.
4182         (arm_expand_prologue): Pass empty register set to
4183         arm_load_pic_register.
4184         (thumb_expand_prologue): Pass live_regs_mask directly to
4185         arm_load_pic_register.
4186         * arm-protos.h (arm_load_pic_register): Update prototype.
4187
4188 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
4189
4190         * sh.c (find_sole_member): New function.
4191         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
4192         if the record's alignment is larger than the size of its only member.
4193
4194 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
4195
4196         PR target/23436
4197         * arm.c (thumb_legitimize_reload_address): New function.
4198         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
4199         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
4200
4201 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
4202
4203         * config/crx/crx.c: Implement crx_decompose_address. Reject
4204         symbolic displacements since CRX register relative adressing
4205         mode can't handle unsigned 32-bit values as displacements.
4206         * config/crx/crx.h: Simplify definitions, remove redundant
4207         parenthesis and obsolete macros.
4208         * config/crx/crx.opt: Add new switch for debugging addresses.
4209         * config/crx/crx-protos.h: Add new declarations for above.
4210
4211 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
4212
4213         PR middle-end/20624
4214         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
4215         looking past it.
4216
4217 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4218
4219         * collect2.c (dup2): Delete.
4220         * configure.ac: Don't check for dup2.
4221
4222         * config.in, configure: Regenerate.
4223
4224 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
4225
4226         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
4227         record with the type of its only member.
4228
4229 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
4230
4231         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
4232         define_insn_and_split.
4233         (plus_ltu<mode>_compare): Same.
4234         (gtu<mode>_compare): Same.
4235         (plus_gtu<mode>_compare): Same.
4236
4237 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
4238
4239         PR tree-optimization/22228
4240         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
4241         todo_flags_start.
4242         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
4243         are recorded in vect_vnames_to_rename for renaming.
4244         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
4245         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
4246         in vect_vnames_to_rename.
4247         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
4248         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
4249
4250 2005-08-18  Jan Hubicka  <jh@suse.cz>
4251
4252         PR c++/22034
4253         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
4254         info only for local statics, not for member variables.
4255
4256 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4257
4258         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
4259
4260 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4261
4262         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
4263
4264 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
4265
4266         PR middle-end/16045
4267         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
4268
4269 2005-08-17  James E Wilson  <wilson@specifix.com>
4270
4271         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
4272         array size check.
4273
4274 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
4275
4276         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
4277         (leu<mode>_compare): Same.
4278         (plus_leu<mode>): Same.
4279         (neg_leu<mode>): Same.
4280         (and_neg_leu<mode): Same.
4281         (ltu<mode>_compare): Same.
4282         (plus_ltu<mode>): Same.
4283         (geu<mode>): Same.
4284         (geu<mode>_compare): Same.
4285         (plus_geu<mode>): Same.
4286         (neg_geu<mode>): Same.
4287         (and_neg_geu<mode>): Same.
4288         (plus_gt<mode>): Same.
4289         (gtu<mode>_compare): Same.
4290         (plus_gtu<mode>): Same.
4291
4292 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
4293
4294         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
4295         Move call_table_data to end.  Delete spurious .text.
4296         (callt_save_all_interrupt): Fix comment typo.
4297
4298 2005-08-17  James E Wilson  <wilson@specifix.com>
4299             Kevin Winchester  <winchester@amirix.com>
4300
4301         PR target/21684
4302         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
4303
4304 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
4305
4306         PR target/23268
4307         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
4308         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
4309
4310 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
4311
4312         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
4313         record with the type of its only member if the modes don't match.
4314
4315         * varasm.c (decode_reg_name): Skip empty additional register names.
4316
4317 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
4318
4319         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
4320         lsm_tmp_name_length): New.
4321         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
4322         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
4323
4324 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4325             Andreas Krebbel  <krebbel1@de.ibm.com>
4326
4327         * config.gcc: Added z9-109 switch.
4328         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
4329         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
4330         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
4331         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
4332         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
4333         for "z9_109" cpu attribute.
4334         * config/s390/s390.c (z9_109_cost): New processor cost structure.
4335         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
4336         (s390_handle_arch_option): Added z9-109 switch.
4337         (override_options): Set respective cost function for z9-109.
4338         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
4339         (legitimate_reload_constant_p): Accept extended immediates.
4340         (print_operand): Three new output modifiers added: k, m and o.
4341         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
4342         (s390_output_mi_thunk): Use extended immediate when possible.
4343         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
4344         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
4345         (CONSTRAINT_LEN): Added length of O constraint.
4346         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
4347         * config/s390/s390.md ("cpu"): New value z9_109 added.
4348         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
4349         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
4350         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
4351         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
4352         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
4353         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
4354         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
4355         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
4356         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
4357         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
4358         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
4359         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
4360         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
4361         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
4362         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
4363         immediates.
4364         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
4365         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
4366         insns for TARGET_EXTIMM.
4367
4368 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4369
4370         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
4371
4372 2005-08-17  Nick Clifton  <nickc@redhat.com>
4373
4374         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
4375         Call default_encode_section_info.
4376
4377 2005-08-17  Steven Bosscher  <stevenb@suse.de>
4378
4379         PR tree-optimization/21574
4380         * tree-ssa-ccp.c (likely_value): If the right hand side is a
4381         constant, return CONSTANT.
4382         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
4383         (ccp_fold, visit_assignment): Likewise.
4384         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
4385
4386 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
4387
4388         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
4389         fold_buildN instead of buildN then fold_initializer or fold.
4390         (build_unary_op): Likewise.
4391         (build_binary_op): Likewise.
4392         * fold-const.c (fold_initializer): Remove.
4393         (fold_build1_initializer): New function.
4394         (fold_build2_initializer): New function.
4395         (fold_build3_initializer): New function.
4396         * tree.h (fold_initializer): Remove.
4397         (fold_build1_initializer): New function.
4398         (fold_build2_initializer): New function.
4399         (fold_build3_initializer): New function.
4400
4401 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
4402
4403         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
4404         (try_move_mult_to_index): Call fold_build2 instead of build2.
4405         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
4406         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
4407         fold_binary_to_constant.
4408         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
4409         fold (build.
4410         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
4411         check if A == gcd (A, B).  Remove TYPE argument.
4412         (analyze_offset) Use fold_build2 instead of fold (build.
4413         (create_data_ref): Likewise.
4414         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
4415         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
4416         then fold.
4417
4418 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
4419
4420         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
4421         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
4422
4423 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
4424
4425         PR tree-opt/23402
4426         * gimplify.c (zero_sized_type): New function.
4427         (gimplify_modify_expr_rhs): If we have a zero sized type,
4428         replace the statement with an empty statement.
4429
4430 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
4431
4432         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
4433         fxsave.
4434
4435 2005-08-16  Ian Lance Taylor  <ian@airs.com>
4436
4437         * doc/tm.texi (Label Output): Correct typo.
4438
4439 2005-08-16  Steven Bosscher  <stevenb@suse.de>
4440
4441         PR target/23376
4442         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
4443         force_operand will work later on using have_insn_for.
4444
4445 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4446
4447         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
4448
4449 2005-08-16  Ian Lance Taylor  <ian@airs.com>
4450
4451         PR c++/23337
4452         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
4453         vector type, don't try to construct it element by element.  Add an
4454         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
4455
4456 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4457
4458         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
4459
4460 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
4461
4462         * doc/invoke.texi (Precompiled Headers): Document some more options
4463         which are known to be safe.
4464
4465 2005-08-16  James E Wilson  <wilson@specifix.com>
4466
4467         PR tree-optimization/21105
4468         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
4469         TREE_OVERFLOW check.
4470
4471 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
4472
4473         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
4474         (neg_ltu<mode>): Same.
4475         (gtu<mode>): Same.
4476         (neg_gtu<mode>): Same.
4477
4478 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4479
4480         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
4481         (fold_builtin_isdigit): Use fold_buildN.
4482         (build_function_call_expr): Likewise.
4483         * c-typeck.c (c_finish_loop): Likewise.
4484
4485 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
4486             Richard Shann <rshann@superh.com>
4487
4488         PR middle-end/20396:
4489         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
4490
4491 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
4492
4493         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
4494
4495 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
4496
4497         PR target/23355
4498         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
4499         arm_compure_save_reg0_reg12_mask to determine when the PIC register
4500         must be saved.
4501
4502 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4503
4504         PR middle-end/23369
4505         * fold-const.c (build_range_check): Disable optimization for function
4506         pointer expressions on targets that require function pointer
4507         canonicalization.
4508
4509 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
4510
4511         * simplify-rtx.c (simplify_const_relational_operation): When
4512         extracting arguments of a COMPARE, recompute the mode as well.
4513
4514 2005-08-15  Ian Lance Taylor  <ian@airs.com>
4515
4516         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
4517
4518 2005-08-15  DJ Delorie  <dj@redhat.com>
4519
4520         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
4521         the stack.
4522         (movsi_splittable): Allow, but split, moves to the stack.
4523         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
4524         stack.
4525
4526 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4527
4528         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
4529         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
4530         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
4531
4532         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
4533         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
4534         Delete HOST_PTR_PRINTF.
4535
4536         * configure, config.in: Regenerate.
4537
4538 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
4539
4540         * config/rs6000/rs6000.md (QHSI): New mode macro.
4541         (wd): Extend mode attr for QImode and HImode
4542         (dbits): New mode attr.
4543         (zero_extend<mode>di2): Convert to mode macro.
4544
4545 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
4546
4547         PR target/21841
4548         * doc/invoke.texi (-mgnu-ld): Update description.
4549         (-mhp-ld): Ditto.
4550
4551 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
4552
4553         PR 23391
4554         * Makefile.in (tree-chrec.o): Depends on real.h.
4555         * tree-chrec.c: Include real.h.
4556         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
4557         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
4558         * tree-scalar-evolution.c (add_to_evolution_1,
4559         interpret_rhs_modify_expr): Ditto.
4560
4561 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
4562
4563         PR 23386
4564         * tree-data-ref.c (estimate_niter_from_size_of_data): When
4565         step is negative compute the estimation from init downwards to zero.
4566
4567 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
4568
4569         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
4570
4571 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
4572
4573         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
4574         constraint.
4575         (legitimate_reload_constant_p): Fix handling of lliXX operands.
4576         Accept double-word constants that can be split.
4577         * config/s390/s390.md ("movti"): Use 'P' constraint.
4578         ("*movdi_31", "*movdf_31"): Likewise.
4579
4580 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
4581
4582         Fix PR tree-optimization/22615
4583
4584         * tree-ssa-structalias.c (solution_set_add): Handle
4585         first_vi_for_offset returning NULL.
4586         (do_da_constraint): Ditto.
4587         (do_sd_constraint): Ditto.
4588         (do_ds_constraint): Ditto
4589         (find_func_aliases): Ditto.
4590         (build_constraint_graph): RHS is allowed be ANYTHING.
4591         (first_vi_for_offset): Return NULL if we couldn't find anything at
4592         the offset.
4593
4594 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
4595
4596         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
4597         over memory as first operand.
4598
4599 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
4600
4601         PR target/23360
4602         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
4603         available for setting it.
4604
4605 2005-08-14  Ira Rosen  <irar@il.ibm.com>
4606
4607         PR tree-optimization/23320
4608         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
4609         data-refs' types instead of base object nullness. Add check for
4610         pointer type data-refs before first location comparison. Remove
4611         assert.
4612
4613 2005-08-14  Andreas Schwab  <schwab@suse.de>
4614
4615         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
4616
4617 2005-08-13  James E Wilson  <wilson@specifix.com>
4618
4619         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
4620         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
4621         -fstack-protector-all, --param ssp-buffer-size): Document.
4622         (-Wvariadic-macros): Alphabetize.
4623         (-fsched-stalled-insns-dep): Add missing 'f'.
4624
4625         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
4626         macros.
4627
4628 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
4629
4630         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
4631         or indirect address operand.
4632         (EXTRA_ADDRESS_CONSTRAINT): New.
4633         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
4634
4635 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
4636
4637         PR tree-optimization/22236
4638         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
4639         successors and predecessors.
4640         * tree-chrec.c (chrec_convert): Before converting, check that
4641         sequences don't wrap.
4642         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
4643         (analyze_array): Extern.
4644         (find_data_references_in_loop): Remove call to
4645         compute_estimated_nb_iterations.
4646         * tree-data-ref.h (analyze_array): Declared.
4647         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
4648         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
4649         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
4650         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
4651         condition.
4652         * tree-ssa-loop-ivcanon.c: Fix documentation.
4653         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
4654         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
4655         (infer_loop_bounds_from_undefined): New.
4656         (estimate_numbers_of_iterations_loop): Use
4657         infer_loop_bounds_from_undefined.
4658         (used_in_pointer_arithmetic_p): New.
4659         (scev_probably_wraps_p): Pass an extra parameter.  Call
4660         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
4661         (convert_step): Fix documentation.
4662         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
4663         Use initial_condition_in_loop_num and evolution_part_in_loop_num
4664         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
4665         scev_probably_wraps_p.
4666
4667 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
4668
4669         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
4670         (s390_register_info): Ignore clobbered_regs information for fixed
4671         registers, and only fixed registers.
4672         (s390_init_frame_layout): Remove redundant call.
4673
4674 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
4675
4676         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
4677         description of -Wold-style-casts.
4678
4679 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4680             Jakub Jelinek  <jakub@redhat.com>
4681
4682         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
4683         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
4684         * config/s390/s390.c (print_operand): New output modifier 'G' added.
4685         (get_thread_pointer): Renamed to s390_get_thread_pointer.
4686         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
4687         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
4688         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
4689         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
4690         ("stack_protect_set", "stack_protect_test"): New expanders.
4691         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
4692         "stack_protect_testdi"): New insn definitions.
4693
4694 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4695
4696         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
4697
4698 2005-08-12  Paul Brook  <paul@codesourcery.com>
4699
4700         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
4701
4702 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4703
4704         * config/s390/predicates.md (setmem_operand): New predicate.
4705         (shift_count_operand): Accept ANDs with special constants as
4706         operand.
4707         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
4708         with special constants.
4709         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
4710         shift_count_operand with setmem_operand.
4711
4712 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4713
4714         * config/s390/s390.c (s390_extract_part, s390_single_part):
4715         Type cast added.
4716         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
4717         (s390_output_mi_thunk): Don't use lg on 31 bit.
4718         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
4719         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
4720
4721 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4722
4723         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
4724         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
4725         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
4726         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
4727         with one of the new macros.
4728
4729 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4730
4731         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
4732         Don't set save_return_addr_p.
4733         (s390_register_info): Make clobbered_regs not depending on
4734         save_return_addr_p.
4735
4736 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4737
4738         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
4739         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
4740
4741 2005-08-11  James E. Wilson  <wilson@specifix.com>
4742
4743         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
4744
4745 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
4746
4747         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
4748         locations gathered by var-tracking in single entry loc_list
4749         over loc_descriptor_from_tree.
4750
4751         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
4752         pass it down to loc_descriptor.
4753         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
4754         (containing_function_has_frame_base): Move earlier in the file.
4755         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
4756         instead of always assuming fbreg can't be used.
4757
4758 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
4759
4760         * config/rs6000/altivec.md: Change constraint "m" to "Z".
4761         * config/rs6000/predicates.md (indexed_or_indirect_operand):
4762         Accept address wrapped in AND for Altivec.
4763         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4764         Strip AND wrapping offset address for Altivec.
4765
4766 2005-08-11  Richard Henderson  <rth@redhat.com>
4767
4768         PR middle-end/23312
4769         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
4770         before using TYPE_IS_SIZETYPE.
4771
4772 2005-08-11  Richard Henderson  <rth@redhat.com>
4773
4774         PR target/22225
4775         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
4776         insn types not present on ev4.
4777         (alphaev5_insn_pipe): Similarly.
4778
4779 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
4780
4781         PR target/23250
4782         * arm.c (arm_override_options): If the user has selected callee-super-
4783         interworking, then enable normal interworking.
4784
4785 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4786
4787         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
4788         redefinition.
4789
4790 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
4791
4792         * doc/rtl.texi: Fix two typos.
4793
4794 2005-08-11  Richard Guenther  <rguenther@suse.de>
4795
4796         PR target/23289
4797         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
4798         cases where we call to/from functions returning void.
4799
4800 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
4801
4802         PR c++/23225
4803         * tree.c (build_pointer_type_for_mode): Robustify.
4804
4805 2005-08-10  James E Wilson  <wilson@specifix.com>
4806
4807         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
4808         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
4809
4810         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
4811         "cum->".
4812
4813 2005-08-10  Eric Christopher  <echristo@apple.com>
4814
4815         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
4816         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
4817         V2DFmode.
4818
4819 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
4820
4821         PR target/21887
4822         * config/darwin.c (machopic_indirect_data_reference): Use a new register
4823         for the high part when generating dynamic-no-pic code.
4824
4825 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
4826
4827         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
4828         (x86_64-*-linux*): Likewise.
4829
4830         * config/i386/crtfastmath.c: New file.
4831         * config/i386/t-crtfm: Likewise.
4832
4833         * config/i386/linux.h (ENDFILE_SPEC): New.
4834         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
4835
4836         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
4837         crtfastmath.o.
4838
4839 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
4840
4841         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
4842         (vec_shl, vec_shr): Document new operations.
4843         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
4844
4845 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
4846
4847         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
4848         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
4849         change predicate to indexed_or_indirect_address.
4850
4851 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
4852
4853         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
4854         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
4855         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
4856         and __aeabi_uwrite8.
4857         * config/arm/unaligned-funcs.c: New file.
4858         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
4859
4860 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
4861
4862         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
4863         Add dump.
4864         * cfglayout.c (pass_insn_locators_initialize): Add dump.
4865         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
4866         Add dump.
4867         * except.c (pass_convert_to_eh_region_ranges): Add dump.
4868         * final.c (pass_shorten_branches): Add dump.
4869         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
4870         (pass_life): Rename dump.
4871         (rest_of_handle_flow2): Remove initial verify_flow_info.
4872         * function.c (pass_instantiate_virtual_regs): Add dump.
4873         * integrate.c (pass_initial_value_sets): Add dump.
4874         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
4875         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
4876         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
4877         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
4878         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
4879         gate_rtl_unrool_and_peel_loops): New.
4880         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
4881         rtl_doloop): Do not look at flags.
4882         * mode-switching.c (pass_mode_switching): Add dump.
4883         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
4884         pass_split_before_regstack): Add dump.
4885         * regmove.c (pass_stack_adjustments): Add dump.
4886         * tree-optimize.c (pass_fixup_cfg): Add dump.
4887
4888 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4889
4890         PR 23309
4891         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
4892         deciding which instruction sequence to use.
4893
4894 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
4895
4896         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
4897         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
4898
4899 2005-08-09  Richard Guenther  <rguenther@suse.de>
4900
4901         * c-common.c (builtin_function_2): Remove.
4902         (def_builtin_1): New function.
4903         (c_common_nodes_and_builtins): Use def_builtin_1 to
4904         build builtin functions.
4905
4906 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
4907
4908         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
4909         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
4910         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
4911         Visual DSP.
4912
4913 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
4914
4915         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
4916         fold_binary instead of fold_build2 since we don't care about the
4917         resulting tree.
4918         (loop_niter_by_eval): Likewise.
4919         (compare_trees): Likewise.
4920         (proved_non_wrapping_p): Likewise.
4921
4922 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
4923
4924         PR c/23161
4925         PR c/23165
4926         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
4927         if the if is really empty.
4928
4929 2005-08-09  Steven Bosscher  <stevenb@suse.de>
4930
4931         PR tree-optimization/23234
4932         * tree-ssa-math-opts.c (place_reciprocal): New enum.
4933         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
4934         argument of the new enum.
4935         (execute_cse_reciprocals): Add reciprocals for function arguments
4936         on the unique successor edge of the entry block.  Update other calls
4937         to execute_cse_reciprocals_1.
4938
4939 2005-08-08  Richard Henderson  <rth@redhat.com>
4940
4941         PR 22439
4942         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
4943
4944 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
4945
4946         * expr.c (write_complex_part): Return after handling MEM.
4947
4948 2005-08-08  Josh Conner  <jconner@apple.com>
4949
4950         PR rtl-optimization/23241
4951         * combine.c (simplify_comparison): Fix error in determining
4952         whether to lift a subreg from comparison.
4953
4954 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
4955
4956         PR target/18506
4957         * config/rs6000/altivec.md (vec_init<mode>): New.
4958         (vec_set<mode>): New.
4959         (vec_extract<mode>): New.
4960         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
4961         (rs6000_expand_vector_set): New.
4962         (rs6000_expand_vector_extract): New.
4963         (rs6000_legitimate_offset_address_p): Offset addresses are valid
4964         for Altivec modes before reload.
4965         (altivec_expand_vec_init_builtin): New.
4966         (get_element_number): New.
4967         (altivec_expand_vec_set_builtin): New.
4968         (altivec_expand_vec_ext_builtin): New.
4969         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
4970         builtins.
4971         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
4972         builtins.
4973         * config/rs6000/rs6000.h (rs6000_builtins): Add
4974         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
4975         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
4976         * config/rs6000/rs6000-protos.h: Declare new functions.
4977
4978 2005-08-08  Jan Hubicka  <jh@suse.cz>
4979
4980         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
4981         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
4982         * i386.md (movdi*): Use pic_32bit_operand.
4983         * predicates.md (pic_32bit_operand): New.
4984
4985 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
4986
4987         PR c++/21166
4988         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
4989
4990 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
4991
4992         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
4993         (test_for_singularity): Use fold_build2.
4994
4995 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4996
4997         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
4998
4999 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
5000
5001         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
5002         (COMMON_ASM_OP) Define.
5003         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
5004         (ix86_encode_section_info): Likewise.
5005         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
5006         SUBTARGET_ENCODE_SECTION_INFO.
5007
5008 2005-08-06  Richard Henderson  <rth@redhat.com>
5009
5010         PR 21894
5011         * tree-nested.c (convert_local_reference): Save and restore val_only
5012         around component_ref and friends.  Clear walk_subtrees by default.
5013
5014 2005-08-06  Peter O'Gorman  <peter@pogma.com>
5015
5016         PR 21366
5017         * gcc.c (process_command): Check the argument to -b has a dash.
5018         * doc/invoke.texi: Update -b and -V docs.
5019
5020 2005-08-06  James E Wilson  <wilson@specifix.com>
5021
5022         * config/mips/cross64.h, config/mips/t-cross64: Delete.
5023
5024 2005-08-06  Michael Matz  <matz@suse.de>
5025
5026         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
5027         member only if only one insn is associated with the value.
5028
5029 2005-08-06  Nick Clifton  <nickc@redhat.com>
5030
5031         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
5032         New define.
5033         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
5034         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
5035         Check symbol flags instead of symbol name mangling.
5036         (xstormy16_asm_output_aligned_common): Likewise.  Also
5037         simplify code since the bss100_section cass is the only case
5038         where the below100 code will be triggered.
5039         (xstormy16_encode_section_info): Encode below100 attribute
5040         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
5041         the name.
5042         (xstormy16_strip_name_encoding): Delete - this function is no
5043         longer needed.
5044         (TARGET_STRIP_NAME_ENCODING): Undefine.
5045         * config/stormy16/stormy16-protos.h: Delete prototype for
5046         xstormy16_strip_name_encoding.
5047
5048 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
5049
5050         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
5051         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
5052         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
5053         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
5054         config/alpha/predicates.md, config/arc/arc.h,
5055         config/arm/arm.h, config/arm/ieee754-df.S,
5056         config/arm/ieee754-sf.S, config/bfin/bfin.c,
5057         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
5058         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
5059         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
5060         config/m68hc11/m68hc11.h, config/mips/mips.c,
5061         config/mips/mips.h, config/mips/openbsd.h,
5062         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
5063         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
5064         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
5065         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
5066         config/sparc/linux.h, config/sparc/linux64.h,
5067         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
5068         doc/extend.texi, doc/gcov.texi, doc/install.texi,
5069         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
5070         typos.  Follow spelling conventions.
5071
5072 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
5073
5074         PR c/23113
5075         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
5076         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
5077         specially.  Check for side effects only for COND_EXPR.
5078         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
5079         return with TREE_NO_WARNING.
5080
5081 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
5082
5083         PR rtl-optimization/23233
5084         * loop.c (combine_movables): Require the modes to be the same.
5085         (move_movables): Remove handling of cases where the replacement
5086         had a different mode to the original.
5087
5088 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
5089
5090         PR tree-optimization/23128
5091         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
5092         subtraction wrap, and set TREE_OVERFLOW if they do.
5093
5094 2005-08-05  Richard Henderson  <rth@redhat.com>
5095
5096         PR 21728
5097         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
5098         FORCED_LABEL labels.
5099
5100 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
5101
5102         PR middle-end/23135
5103         * reload.c (find_reloads_subreg_address): Pass down TYPE
5104         unchanged.  Change all callers except find_reloads_toplev.
5105
5106 2005-08-05  Michael Matz  <matz@suse.de>
5107
5108         * genattrtab.c (current_alternative_string): Remove.
5109         (SIMPLIFY_ALTERNATIVE): Ditto.
5110         (attr_alt_bit_p): Ditto.
5111         (alternative_name): Make const char *.
5112         (evaluate_eq_attr): Remove use of above things.
5113         (simplify_test_exp): Ditto.
5114         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
5115         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
5116
5117 2005-08-04  James E Wilson  <wilson@specifix.com>
5118
5119         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
5120         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
5121         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
5122         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
5123         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
5124
5125 2005-08-04  Richard Henderson  <rth@redhat.com>
5126
5127         PR 21529
5128         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
5129         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
5130         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
5131         if we'd have to instantiate too many members.
5132
5133 2005-08-04  Richard Henderson  <rth@redhat.com>
5134
5135         PR 21291
5136         * tree-outof-ssa.c (coalesce_asm_operands): New.
5137         (coalesce_ssa_name): Use it.  Split out ...
5138         (coalesce_phi_operands, coalesce_result_decls): ... these.
5139
5140 2005-08-04  Paul Brook  <paul@codesourcery.com>
5141
5142         * read-rtl.c (read_quoted_string): Break if EOF.
5143
5144 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
5145
5146         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
5147         (fold_build2): Likewise.
5148         (fold_build3): Likewise.
5149         (fold_build1_stat): New function prototype.
5150         (fold_build2_stat): Likewise.
5151         (fold_build3_stat): Likewise.
5152         * fold-const.c (fold_build1): Rename to ..
5153         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
5154         through to build1_stat.
5155         (fold_build2): Rename to ..
5156         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
5157         through to build2_stat.
5158         (fold_build3): Rename to ..
5159         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
5160         through to build3_stat.
5161
5162 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
5163             Ian Lance Taylor  <ian@airs.com>
5164
5165         * function.c (assign_stack_local_1): Do not correct stack slot
5166         address if allocation size is smaller than mode size.
5167
5168 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
5169
5170         PR 22037
5171         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
5172         (tree_merge_blocks): Propagate anything allowed by
5173         may_propagate_copy.
5174         Clarify documentation.
5175         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
5176         SSA form, schedule an update if necessary.
5177
5178 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
5179
5180         * doc/install.texi (Binaries): Remove broken link to
5181         Sinix/Reliant Unix binaries.
5182
5183 2005-08-03  Richard Henderson  <rth@redhat.com>
5184
5185         PR 23221
5186         * function.c (stack_protect_epilogue): Export.
5187         * tree.h (stack_protect_epilogue): Declare.
5188         * calls.c (expand_call): Call it.
5189
5190 2005-08-03  Eric Christopher  <echristo@apple.com>
5191
5192         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
5193         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
5194         spec.
5195
5196 2005-08-04  Jan Hubicka  <jh@suse.cz>
5197
5198         * profile.c (branch_prob): Split edges with goto locus on them
5199         to get proper line counts.
5200         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
5201
5202 2005-08-03  Paul Brook  <paul@codesourcery.com>
5203
5204         * function.c (assign_parms): Round current_function_args_size
5205         to PARM_BOUNDARY, not STACK_BOUNDARY.
5206
5207 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
5208
5209         * config/i386/i386.c (x86_elf_aligned_common)
5210         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
5211
5212 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
5213
5214         PR tree-optimization/23157
5215         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
5216         before emitting them.
5217
5218 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5219
5220         PR tree-optimization/19899
5221         * Makefile.in (tree-scalar-evolution.o): Add real.h.
5222         * tree-scalar-evolution.c: Include real.h.
5223         (add_to_evolution): Build constant -1 of correct type.
5224
5225 2005-08-03  Jan Hubicka  <jh@suse.cz>
5226
5227         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
5228         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
5229         profile updating for complette unrolling.
5230         * loop-unroll.c (peel_loop_completely): Use it.
5231         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
5232         (tree_unroll_loops_completely): Disable code growing unrolling of cold
5233         loops.
5234
5235 2005-08-03  Paul Brook  <paul@codesourcery.com>
5236
5237         * combine.c (can_change_dest_mode): New function.
5238         (try_combine, simplify_set): Use it.
5239
5240 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
5241
5242         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
5243         TFmode to BLKmode.
5244
5245 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
5246
5247         * doc/install.texi (Specific): Adjust link to openavr.org.
5248         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
5249         (Binaries): Adjust HP-UX Porting Center link.
5250         (Binaries): Adjust Free Software Foundation ordering link.
5251
5252 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
5253
5254         * convert.c (convert_to_integer): Use fold_build1 instead of
5255         build1 when converting an integer to an integer.
5256
5257 2005-08-02  Richard Henderson  <rth@redhat.com>
5258
5259         * combine.c (combine_instructions): Don't use reg_equal/equiv
5260         results if the mode doesn't match.
5261
5262 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
5263
5264         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
5265         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
5266
5267 2005-08-02  Richard Henderson  <rth@redhat.com>
5268
5269         PR 23196
5270         * explow.c (memory_address): Remove special-case for
5271         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
5272
5273 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
5274
5275         PR 23164
5276         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
5277         number of calls to cleanup_tree_cfg_1.
5278
5279 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
5280
5281         * doc/invoke.texi: document file extensions .F90 and .F95
5282
5283 2005-08-02  Richard Guenther  <rguenther@suse.de>
5284
5285         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
5286         positive if its first argument is positive.
5287
5288 2005-08-02  Richard Guenther  <rguenther@suse.de>
5289
5290         PR tree-optimization/23177
5291         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
5292         on TMR_TAG.
5293
5294 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
5295
5296         PR tree-optimization/23129
5297         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
5298         varying for divisions with anti-ranges.
5299
5300 2005-08-02  Jan Hubicka  <jh@suse.cz>
5301
5302         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
5303         * tree-ssa-threadupdate.c (thread_block): Add it here.
5304
5305 2005-08-01  James E Wilson  <wilson@specifix.com>
5306
5307         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
5308         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
5309         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
5310         New.
5311         * config/mips/predicates.md (const_call_insn_operand): Add check for
5312         SYMBOL_REF_LONG_CALL_P.
5313         * doc/extend.texi (long_call): Document the new attribute.
5314
5315 2005-08-01  Ian Lance Taylor  <ian@airs.com>
5316             Richard Henderson  <rth@redhat.com>
5317
5318         * Makefile.in (RTL_BASE_H): Add real.h.
5319         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
5320         instead of memcpy.
5321         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
5322         directly.
5323         * rtl.c (rtl_check_failed_code_mode): New.
5324         * rtl.h (struct rtx_def): Add u.rv.
5325         (XCMWINT, XCNMPRV): New.
5326         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
5327         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
5328
5329 2005-08-01  Richard Henderson  <rth@redhat.com>
5330
5331         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
5332         with auto-inc codes.
5333
5334         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
5335
5336 2005-08-01  Jan Hubicka  <jh@suse.cz>
5337
5338         * i386-protos.h (asm_preferred_eh_data_format): Declare.
5339         * i386.c: Include dwarf2.h
5340         (asm_preferred_eh_data_format): New.
5341         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
5342
5343 2005-08-01  Ian Lance Taylor  <ian@airs.com>
5344
5345         * config/host-linux.c (linux_gt_pch_get_address): Add new name
5346         randomize_va_space for virtual address randomization control.
5347
5348 2005-08-01  Steven Bosscher  <stevenb@suse.de>
5349
5350         * common.opt (flag_ipa_cp): Put in right place to maintain
5351         alphabetic sort.
5352
5353 2005-08-01  Jan Hubicka  <jh@suse.cz>
5354
5355         * profile.c (compute_value_histograms): Fix thinko.
5356         * value-prof.c: Include toplev.h
5357         (check_counter): New function.
5358         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
5359         tree_mod_subtract_transform): Add sanity check.
5360
5361 2005-08-01  Richard Guenther  <rguenther@suse.de>
5362
5363         PR tree-optimization/23133
5364         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
5365         current functions parameter decls to find defs to cse
5366         reciprocals of.
5367
5368 2005-08-01  Richard Guenther  <rguenther@suse.de>
5369
5370         PR tree-optimization/23109
5371         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
5372         If trapping math is in effect, use post-dominator information
5373         to check if we'd in any case reach a trapping point before
5374         doing the reciprocal insertion.
5375         (execute_cse_reciprocals): Compute post-dominators, if necessary.
5376         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
5377         expressions are invariant only if trapping math is not in effect.
5378
5379 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
5380
5381         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
5382         cgraph_function_versioning): New declarations.
5383         * cgraphunit.c: Add include to ipa-prop.h.
5384         (update_call_expr, cgraph_copy_node_for_versioning,
5385         cgraph_function_versioning): New functions.
5386         * integrate.c (copy_decl_for_inlining): Remove.
5387         * ipa-prop.h (ipa_replace_map): New struct.
5388         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
5389         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
5390         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
5391         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
5392         ipcp_iterate_stage, ipcp_method_scale_print,
5393         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
5394         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
5395         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
5396         ipcp_update_bb_counts, ipcp_update_profiling,
5397         ipcp_update_edges_counts): New functions.
5398         (ipcp_method_cval_init): Remove restriction regarding local methods.
5399         (ipcp_init_stage): Add ipcp_method_compute_scale.
5400         (ipcp_insert_stage): Add versioning.
5401         (ipcp_structures_print): Add ipcp_method_scale_print.
5402         (ipcp_driver): Dump profiling info.
5403         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
5404         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
5405         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
5406         (struct inline_data): Add versioning_p, ipa_info, new fields.
5407         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
5408         declare_return_variable): Replace calls to copy_decl_for_inlining with
5409         copy_decl_for_dup.
5410         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
5411         versioning support.
5412         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
5413         Add argument VERSIONING.
5414         (copy_arguments_for_versioning, copy_static_chain,
5415         function_versionable_p, tree_versionable_function_p,
5416         tree_function_versioning, replace_ref_tree): New functions.
5417         * tree-inline.h: Include varray.h.
5418         (tree_versionable_function_p,  tree_function_versioning,
5419         tree copy_decl_for_dup): New declarations.
5420
5421 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
5422
5423         * ipa-cp.c: New file. Contains IPCP specific functionality.
5424         * ipa-prop.h: New file. Contains structures/definitions that can be
5425         used by several interprocedural data flow optimizations (and also IPCP).
5426         * ipa-prop.c: New file.
5427         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
5428         * common.opt: Add ipa-cp flag.
5429         * timevar.def: Add IPCP optimization.
5430         * tree-optimize.c (init_tree_optimization_passes): Schedule
5431         pass_ipa_cp.
5432         * tree-pass.h (pass_ipa_cp): Declare.
5433
5434 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
5435
5436         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
5437         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
5438         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
5439         config/i386/i386.c, config/mips/mips.h,
5440         config/rs6000/rs6000.h, config/sh/sh.c,
5441         config/stormy16/stormy16.c: Fix comment typos.
5442
5443 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
5444
5445         PR c/22311
5446         * c-typeck.c (build_binary_op): Use common_type wrapper on
5447         shortened types.
5448         (common_type): Update comment.
5449
5450 2005-07-31  Steven Bosscher  <stevenb@suse.de>
5451
5452         PR target/23095
5453         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
5454         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
5455         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
5456
5457 2005-07-31  Jan Hubicka  <jh@suse.cz>
5458
5459         * pretty-print.h (pp_widest_integer): New macro.
5460         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
5461         counts.
5462
5463 2005-07-31  Jan Hubicka  <jh@suse.cz>
5464
5465         * output.h (enum section_category): Export from varasm.c
5466         (categorize_decl_for_section): Likewise.
5467         * varasm.c (enum section_category): Kill.
5468         (categorize_decl_for_section): Make global.
5469         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
5470         Declare.
5471         * i386.c (ix86_section_threshold): New static variable.
5472         (ix86_in_large_data_p, ix86_encode_section_info,
5473         x86_64_elf_unique_section,
5474         x86_64_elf_select_section): New functions.
5475         (TARGET_ENCODE_SECTION_INFO): Define
5476         (override_options): Enable medium model for PIC.
5477         (ix86_expand_prologue): Expand gen_set_got_rex64.
5478         (legitimate_constant_p): Handle new UNSPECs.
5479         (legitimate_pic_address_disp_p): Likewise.
5480         (legitimize_pic_address): Lower MEDIUM model addressing.
5481         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
5482         (enum cmodel): Add MEDIUM_PIC.
5483         (SYMBOL_REF_FAR_ADDR_P): New macro.
5484         (SYMBOL_FLAG_FAR_ADDR): New flag.
5485         * i386.md (movdi): Support medium model.
5486         (set_got_rex64): New pattern.
5487         * i386.opt (mlarge-data-threshold): New flag.
5488         * predicates.md (zext_operand/sext_operand): Deal with medium model.
5489         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
5490         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
5491         TARGET_ASM_UNIQUE_SECTION): New.
5492
5493         * invoke.texi (-mlarge_data_threshold): Document
5494
5495 2005-07-31  Jan Hubicka  <jh@suse.cz>
5496
5497         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
5498         (coalesce_vars): Likewise.
5499         * tree-ssa-live.c (coalesce_cost): New.
5500         (build_tree_conflict_graph): Use coalesce_cost.
5501         * tree-ssa-live.h (coalesce_cost): Declare.
5502
5503 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
5504
5505         * arm.md (all peepholes for post-increment operations): Delete.
5506         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
5507         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
5508         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
5509         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
5510         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
5511
5512 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
5513
5514         * fold-const.c (tree_expr_nonnegative_p): Always return true for
5515         non-integral types.
5516
5517 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
5518
5519         PR target/22582
5520         * doc/invoke.texi: Document -rdynamic.
5521
5522 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
5523
5524         PR c/23143
5525         * c-parser.c (c_parser_parms_list_declarator): Call
5526         mark_forward_parm_decls.
5527         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
5528         decls with visibility structure.
5529
5530 2005-07-30  Paul Brook  <paul@codesourcery.com>
5531
5532         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
5533
5534 2005-07-30  Paul Brook  <paul@codesourcery.com>
5535
5536         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
5537         prototype.
5538         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
5539         value for mode.
5540         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
5541
5542 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5543
5544         PR c/529
5545         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
5546         nested function declarators.
5547         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
5548         (grokparms): Call warn_if_shadowing for parameters used within the
5549         parameter list.
5550         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
5551         not used within the parameter list.
5552         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
5553
5554 2005-07-30  Jan Hubicka  <jh@suse.cz>
5555
5556         * expr.c (expand_expr_real_1): Do not load mem targets into register.
5557         * i386.c (ix86_fixup_binary_operands): Likewise.
5558         (ix86_expand_unary_operator): Likewise.
5559         (ix86_expand_fp_absneg_operator): Likewise.
5560         * optabs.c (expand_vec_cond_expr): Validate dest.
5561
5562 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5563
5564         PR c/21720
5565         * real.c (real_from_string): Also set last bit if there is a
5566         nonzero hex digit beyond GCC's internal precision after ".".
5567
5568 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
5569
5570         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
5571         define_constants.  Change duplicate values to unassigned numbers.
5572         Change UNSPEC_SUBS to UNSPEC_VSUBS.
5573         (*altivec_vspltsf): New.
5574         (altivec_vperm_v4sf): Delete.
5575         (altivec_vperm_<mode>): Use mode macro V.
5576         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
5577         (altivec_predicate_v4sf): Delete.
5578         (altivec_predicate_<mode>): Use mode macro V.
5579         (*altivec_lvesfx): New.
5580         (*altivec_stvesfx): New.
5581         (vec_realign_load_v4sf): Delete.
5582         (vec_realign_load_<mode>): Use mode macro V.
5583         * config/rs6000/rs6000.c (generate_set_vrsave): Use
5584         UNSPECV_SET_VRSAVE.
5585
5586 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
5587
5588         PR bootstrap/23131
5589         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
5590         string.
5591         * configure: Regenerated.
5592
5593 2005-07-29  Paul Brook  <paul@codesourcery.com>
5594
5595         * doc/install.texi: Add link to GFortran binaries wiki page.
5596
5597 2005-07-29  David Ung  <davidu@mips.com>
5598
5599         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
5600         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
5601         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
5602         * config/mips/mips.md (cpu): Add 5kf name.
5603         (includes): Includes 5k.md.
5604         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
5605         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
5606         -march flag.
5607
5608 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
5609
5610         PR 22550
5611         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
5612         (cleanup_tree_cfg): ... here.
5613         Call cleanup_tree_cfg_1 until there are no more cleanups to
5614         do.
5615
5616 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
5617
5618         * tree-vrp.c (compare_range_with_value): Return true or false
5619         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
5620         EQ_EXPR respectively.
5621
5622 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
5623
5624         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
5625         Fix comment typos.
5626
5627 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
5628
5629         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
5630         (tree_ssa_dominator_optimize): Increment it.
5631         (dump_dominator_optimization_stats): Print it.
5632
5633 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
5634             Steven Bosscher  <stevenb@suse.de>
5635
5636         PR rtl-optimization/23117
5637         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
5638         when head == tail.  Tidy comment.
5639
5640 2005-07-28  Richard Henderson  <rth@redhat.com>
5641
5642         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
5643         * cselib.c (rtx_equal_for_cselib_p): Likewise.
5644         * jump.c (rtx_renumbered_equal_p): Likewise.
5645         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
5646         CONST_INT and CONST_DOUBLE.
5647         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
5648         * reload.c (operands_match_p): Special case CONST_INT and
5649         CONST_DOUBLE; check mode earlier.
5650
5651 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5652
5653         PR c/22240
5654         * c-typeck.c (convert_for_assignment): Do not check
5655         DECL_IN_SYSTEM_HEADER on NULL fundecl.
5656
5657 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5658
5659         PR c/22192
5660         * c-typeck.c (composite_type): Prefer constant size arrays to
5661         VLAs.
5662
5663 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5664
5665         PR c/21720
5666         * real.c (real_from_string): Set last bit if there is a nonzero
5667         hex digit beyond GCC's internal precision.
5668
5669 2005-07-28  Richard Henderson  <rth@redhat.com>
5670
5671         PR rtl-opt/22619
5672         * cfgcleanup.c (try_forward_edges): Watch out for end of
5673         insn chain.
5674
5675 2005-07-28  James E Wilson  <wilson@specifixinc.com>
5676
5677         PR c/23106
5678         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
5679
5680 2005-07-28  Jan Hubicka  <jh@suse.cz>
5681
5682         * Makefile.in (rtl-profile.o): Kill all traces of it.
5683         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
5684         * coverage.h (rtl_coverage_counter_ref): Kill.
5685         * opts.c (flag_speculative_prefetching_set): Kill.
5686         (flag_loop_optimize_set): New.
5687         (common_handle_option): Disable loop optimizer when profiling;
5688         do not handle speculative prefetching.
5689         * passes.c (init_optimization_passes): Replace pass_profiling combo
5690         by branch_prob pass.
5691         * profile.c (compute_value_histograms): Update for simplified value
5692         profiles.
5693         (rtl_register_profile_hooks): Kill.
5694         (pass_profiling): Kill.
5695         (rest_of_handle_branch_prob): Do not profile.
5696         * toplev.c (process_options): Remove speculative prefetching.
5697         * toplev.h (flag_tree_based_profiling): Kill.
5698         * tree-profile.c (prepare_instrumented_value,
5699         tree_gen_interval_profiler, tree_gen_pow2_profiler,
5700         tree_gen_one_value_profiler, do_tree_profiling): Update for
5701         simplified datastructures.
5702         * value-prof.c: Add comment that speculative prefetching was dropped;
5703         update rest of file for simplified datastructures.
5704         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
5705         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
5706         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
5707         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
5708         rtl_mod_subtract, gen_speculative_prefetch,
5709         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
5710         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
5711         (gate_handle_value_profile_transformations,
5712         rest_of_handle_value_profile_transformations,
5713         pass_value_profile_transformations): Kill.
5714         * value-prof.h (histogram_value_t): Remove IL based unions.
5715         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
5716         rtl_profile_hooks): Remove hooks.
5717
5718         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
5719
5720         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
5721         (cgraph_clone_node): Likewise.
5722         * cgraph.h (cgraph_clone_edge): Update prototype.
5723         (cgraph_clone_node): Likewise.
5724         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
5725         cgraph_clone_node.
5726         (lookup_recursive_calls): Consider profile.
5727         (cgraph_decide_recursive_inlining): Fix updating; use new
5728         probability argument; use profile.
5729         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
5730         * tree-inline.c (copy_bb): Update clal of clone_edge.
5731         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
5732
5733         * invoke.texi (min-inline-recursive-probability): Document.
5734
5735 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
5736
5737         * doc/install.texi (Configuration): Update Valgrind homepage.
5738
5739 2005-07-28  Richard Henderson  <rth@redhat.com>
5740
5741         PR middle-end/21362
5742         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
5743         labels we want to delete.
5744         (cfg_layout_merge_blocks): Likewise.
5745
5746 2005-07-28  Richard Henderson  <rth@redhat.com>
5747
5748         PR target/17692
5749         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
5750         when expanding to nothing.
5751
5752 2005-07-28  Josh Conner  <jconner@apple.com>
5753
5754         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
5755         (cgraph_decide_inlining_of_small_functions): Likewise.
5756
5757 2005-07-28  Josh Conner  <jconner@apple.com>
5758
5759         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
5760         direction of badness if negative.
5761         (cgraph_default_inline_p): Add reason to parameters, and assign it
5762         a value.
5763         (cgraph_decide_inlining_of_small_functions): New parameter in call
5764         to cgraph_default_inline_p.
5765         (cgraph_decide_inlining_incrementally): Likewise.
5766         * cgraphunit.c (decide_is_function_needed): Likewise.
5767         * cgraph.h (cgraph_default_inline_p): Likewise.
5768
5769 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5770
5771         * builtins.c: Fix comment typo(s).
5772         * genautomata.c: Likewise.
5773         * gimplify.c: Likewise.
5774         * tree-dfa.c: Likewise.
5775         * tree-flow-inline.h: Likewise.
5776         * tree-into-ssa.c: Likewise.
5777         * tree-ssa-alias.c: Likewise.
5778         * tree-ssa-ccp.c: Likewise.
5779         * tree-ssa-copy.c: Likewise.
5780         * tree-ssa-dce.c: Likewise.
5781         * tree-ssa-dom.c: Likewise.
5782         * tree-ssa-operands.c: Likewise.
5783         * tree-tailcall.c: Likewise.
5784         * tree-vectorizer.c: Likewise.
5785         * tree-vrp.c: Likewise.
5786         * tree.c: Likewise.
5787
5788 2005-07-28  Jeff Law  <law@redhat.com>
5789
5790         * tree-vrp.c (test_for_singularity): Extracted from  ...
5791         (simplify_cond_using_ranges): Attempt to simplify a relational
5792         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
5793
5794 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
5795
5796         PR tree-optimization/22506
5797         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
5798         phis whose argument is constant.
5799
5800 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
5801
5802         PR rtl-optimization/18992
5803         Back out this patch:
5804           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5805           PR optimization/12142
5806           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
5807           uses of the register in the SET_SRC.  Remove unnecessary argument.
5808
5809         Replace it with this:
5810         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
5811         if flag_non_call_exceptions is set and the insn may trap, pass
5812         pc_rtx as dest for recursion.
5813         In SET_SRC part of SET case, if dest is already set, pass it down
5814         unchanged.
5815
5816 2005-07-28  Jan Hubicka  <jh@suse.cz>
5817
5818         * cfg.c (update_bb_profile_for_threading): Use RDIV.
5819         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
5820         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
5821         roundoff errors.
5822         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
5823         profile when available.
5824
5825 2005-07-28  Jan Beulich <jbeulich@novell.com>
5826
5827         * config/ia64/ia64.c (ia64_load_pair_ok): New.
5828         (ia64_print_operand): Describe and handle 'X'.
5829         (ia64_register_move_cost): Also handle FP_REGS.
5830         (ia64_preferred_reload_class): Likewise.
5831         (ia64_secondary_reload_class): Likewise.
5832         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
5833         it. Also check for ITANIUM_CLASS_FLDP.
5834         * config/ia64/ia64.h (FP_REGNO_P): New.
5835         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
5836         (reg_class): Add FP_REGS.
5837         (REG_CLASS_NAMES): Adjust for it.
5838         (REG_CLASS_CONTENTS): Likewise.
5839         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
5840         (REG_CLASS_FROM_LETTER): Handle 'x'.
5841         (CLASS_MAX_NREGS): Handle FP_REGS.
5842         (MEMORY_MOVE_COST): Likewise.
5843         * config/ia64/ia64.md (itanium_class): Add fldp.
5844         (type): Handle fldp.
5845         (movti_internal): More allowable operand combinations. Use ldfp8 when
5846         splitting unnecessary. Remove predicable attribute. Adjust
5847         itanium_class attribute.
5848         (smuldi3_highpart): Remove outdated comment.
5849         (mulditi3, umulditi3, rotlti3): New expanders.
5850         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
5851         (absti2): Disabled new insn for future reference.
5852         Respective new splitters.
5853         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
5854         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
5855         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
5856
5857 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
5858
5859         PR rtl-optimization/23047
5860         * simplify-rtx.c (simplify_const_relational_operation): Respect
5861         flag_wrapv for comparisons with ABS.
5862
5863 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
5864
5865         PR tree-optimization/22493
5866         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
5867         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
5868
5869 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
5870
5871         * config/frv/frv.opt (moptimize-membar): New.
5872
5873         * doc/invoke.texi: Document -moptimize-membar and its inverse.
5874
5875         * config/frv/frv.h: Remove machine_function definition.
5876
5877         * config/frv/frv.c (struct frv_io): New.
5878         (struct machine_function): Moved from frv.h.  Add has_membar_p.
5879         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
5880         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
5881         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
5882         (frv_optimize_membar_global, frv_optimize_membar): New functions.
5883         (frv_reorg): Call frv_optimize_membar when appropriate.
5884         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
5885         (frv_expand_builtin): Adjust calls accordingly.
5886         (frv_io_address_cookie): New function.
5887         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
5888         load or store rather than a special insn.  Add ccnstant address and
5889         io-type operands to the membar.
5890         (frv_ifcvt_modify_tests): Unsign regno.
5891         (frv_ifcvt_modify_tests): Same.
5892
5893         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
5894         UNSPEC_OPTIONAL_MEMBAR constant.
5895         (builtin_read_<mode>): Delete.
5896         (builtin_write_<mode>): Delete.
5897         ("optional_membar_<mode>"): Add operand.
5898
5899         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
5900         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
5901         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
5902         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
5903         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
5904         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
5905         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
5906         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
5907         * testsuite/gcc.target/frv/all-read-write-1.c: New.
5908
5909 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5910
5911         * df.c (df_uses_record): Handle SCRATCH.
5912
5913 2005-07-28  Steven Bosscher  <stevenb@suse.de>
5914
5915         PR debug/20161
5916         * passes.c (rest_of_decl_compilation): If decl is a type and
5917         we have encountered errors, don't emit debug information.
5918
5919 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
5920
5921         * params.def: Fixed comment.
5922
5923 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
5924
5925         PR target/19885
5926         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
5927         (TARGET_ASM_UNALIGNED_HI_OP): Add.
5928         (TARGET_ASM_UNALIGNED_SI_OP): Add.
5929
5930 2005-07-27  Steven Bosscher  <stevenb@suse.de>
5931
5932         PR c++/22003
5933         * varasm.c (assemble_start_function): Don't do anything that may
5934         require a CFG if the current function is a thunk.
5935
5936 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
5937
5938         * doc/install.texi (Prerequisites): Mention that perl is needed
5939         to do export control in libstdc++ targetting Darwin.
5940
5941 2005-07-27  Steven Bosscher  <stevenb@suse.de>
5942
5943         PR rtl-optimization/17808
5944         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
5945         (sched_insns_conditions_mutex_p): Split out from...
5946         (add_dependence): ...here.  But don't call it from here.
5947         (add_dependence_list): Check sched_insns_conditions_mutex_p
5948         before calling add_dependence.
5949         (add_dependence_list_and_free): Likewise.
5950         (fixup_sched_groups): Likewise.
5951         (sched_analyze_1): Likewise.
5952         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
5953         (sched_analyze): Likewise.
5954         (sched_analyze_insn): Likewise.
5955         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5956         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
5957         dependencies on all COND_EXEC insns to jumps ending basic blocks
5958         when doing intrablock scheduling.
5959         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
5960
5961 2005-07-27  Jeff Law  <law@redhat.com>
5962
5963         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
5964         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
5965         equivalency sets, correctly handle the case were vr0 has an
5966         equivalency set, but vr1 does not.
5967
5968 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
5969
5970         PR tree-optimization/23073
5971         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
5972         vect_print_dump_info before fprintf.
5973
5974 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
5975
5976         PR tree-optimize/22348
5977         * tree-ssa-loop-niter.c (number_of_iterations_cond):
5978         Fold the partial computation.
5979
5980 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
5981
5982         PR tree-optimization/22325
5983         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
5984         Declare.
5985         * tree-scalar-evolution.c (scev_const_prop): Add generic final
5986         value replacement.
5987         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
5988         (force_var_cost): ... this function.
5989         (compute_phi_arg_on_exit): Export.
5990
5991 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
5992
5993         PR tree-optimization/20773
5994         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
5995         edge.
5996
5997 2005-07-27  Richard Guenther  <rguenther@suse.de>
5998
5999         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
6000         Avoid pushing again if current struct contains only
6001         fields we decomposed.
6002
6003 2005-07-27  Jan Hubicka  <jh@suse.cz>
6004
6005         PR tree-optimization/22574
6006         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
6007         not available.
6008
6009         * tree-tailcall.c (decrease_profile): New function.
6010         (eliminate_tail_call): Use it.
6011
6012         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
6013         visibility flags correctly in whole program mode.
6014
6015 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
6016
6017         PR rtl-optimization/22472
6018         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
6019
6020 2005-07-26  Steven Bosscher  <stevenb@suse.de>
6021
6022         PR tree-optimization/22504
6023         * tree-complex.c (expand_complex_addition): Use 'code' instead
6024         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
6025
6026 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
6027
6028         * config.gcc (cpu_type): Add frv case.
6029         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
6030         (supported_defaults): Add fr550 case.
6031
6032 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
6033
6034         PR 22591
6035         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
6036         whether a pointer of type T * may point to objects of type T *.
6037
6038 2005-07-26  DJ Delorie  <dj@redhat.com>
6039
6040         * configure: Regenerate.
6041
6042 2005-07-26  Dale Johannesen  <dalej@apple.com>
6043
6044         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
6045
6046 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
6047
6048         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
6049         Clarify use of "build" in name.
6050
6051 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
6052
6053         * doc/extend.texi (Raw read/write Functions): New section.
6054         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
6055         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
6056         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
6057         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
6058         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
6059         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
6060         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
6061         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
6062         * config/frv/frv.c: Add bdesc_loads global.
6063         Add bdesc_stores global.
6064         (frv_init_builtins): Add support for __builtin_{read/write}*.
6065         (frv_volatile_memref): New.
6066         (frv_expand_load_builtin): New.
6067         (frv_expand_store_builtin): New.
6068         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
6069         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
6070         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
6071         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
6072         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
6073         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
6074         (builtin_read_<mode>): New.
6075         (builtin_write_<mode>): New.
6076         (builtin_write64): New.
6077         (optional_membar_<mode>): New.
6078
6079 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
6080
6081         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
6082         (rather than units) against HOST_BITS_PER_WIDE_INT.
6083
6084 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
6085
6086         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
6087         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
6088         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
6089         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
6090         FSF address.
6091
6092         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
6093         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
6094         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
6095         comment typos.
6096         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
6097
6098 2005-07-26  Richard Guenther  <rguenther@suse.de>
6099
6100         PR tree-optimization/22486
6101         * fold-const.c (fold_unary): Fold away useless component
6102         references of the form (T *)&T.x, if the address
6103         doesn't change.
6104
6105 2005-07-25  James E Wilson  <wilson@specifixinc.com>
6106
6107         * dwarf2out.c (add_call_src_coords_attributes): New.
6108         (gen_inlined_subroutine_die): Call it.
6109         (maybe_emit_file, init_file_table): Add comments.
6110         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
6111         maybe_emit_file.
6112         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
6113         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
6114         * tree.h (BLOCK_SOURCE_LOCATION): New.
6115         (struct tree_block): New field locus.
6116
6117 2005-07-26  Andreas Schwab  <schwab@suse.de>
6118
6119         PR rtl-optimization/23043
6120         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
6121         when allocating a struct unoccr.
6122
6123 2005-07-25  Richard Henderson  <rth@redhat.com>
6124
6125         PR 22626
6126         * tree-complex.c (gate_no_optimization): True if errors.
6127         * Makefile.in (tree-complex.o): Update dependencies.
6128
6129 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
6130
6131         * config/frv/predicates.md (integer_register_operand): Use
6132         GPR_AP_OR_PSEUDO_P.
6133
6134 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
6135
6136         PR tree-opt/22484
6137         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
6138         after fold.
6139         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
6140
6141 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
6142
6143         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
6144         types when flag_unsafe_math_optimizations is true.
6145
6146 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
6147
6148         * gcc.c (option_map): Add --sysroot.
6149         (process_command): Handle --sysroot.
6150         (display_help): Document it.
6151         * doc/cppopts.tex (-isysroot): Document.
6152         * doc/invoke.texi (--sysroot): Document.
6153         * doc/install.texi (--with-build-sysroot): Document.
6154
6155         * Makefile.in (inhibit_libc): New variable.
6156         (INHIBIT_LIBC_CFLAGS): Likewise.
6157         (LIBGCC2_CFLAGS): Include
6158         $(INHIBIT_LIBC_CFLAGS).
6159         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
6160         ($(T)crtbegin.o): Do not use @inhibit_libc@.
6161         ($(T)crtend.o): Likewise.
6162         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
6163         ($(T)crtendS.o): Likewise.
6164         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
6165         ($(T)crtendT.o): Likewise.
6166         (stmp-fixinc): Do not complain about missing headers if
6167         inhibit_libc.
6168         * configure.ac (inhibit_libc): Set it to true/false.
6169         (--with-build-sysroot): New option.  Use it to set
6170         SYSTEM_HEADER_DIR.
6171         * configure: Regenerated.
6172
6173 2005-07-25  Manfred Hollstein  <mh@suse.com>
6174
6175         * calls.c (store_one_arg): Fix unsigned comparison warning.
6176
6177 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
6178
6179         PR other/22337
6180         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
6181         (ggc_print_statistics): Initialize variable before use.
6182
6183 2005-07-25  Richard Guenther  <rguenther@suse.de>
6184
6185         * tree-dfa.c (mark_new_vars_to_rename): Protect against
6186         calling with a PHI_NODE argument.
6187
6188         * tree-flow-inline.h (overlap_subvar): Protect against
6189         possible overflow.
6190
6191 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
6192
6193         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
6194         * configure: Regenerate.
6195
6196 2005-07-25  Ira Rosen  <irar@il.ibm.com>
6197
6198         * expr.c (highest_pow2_factor): Make extern.
6199         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
6200         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
6201         record_array_differ_p, array_ptr_differ_p): Likewise.
6202         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
6203         additional cases. Call the above functions.
6204         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
6205         base_object_differ_p when there are two base objects. Otherwise, compare
6206         base address and offset. Call may_alias_p.
6207         (dump_data_reference): Use a correct field name.
6208         (analyze_array): Make static. Initialize new data-ref fields.
6209         (analyze_indirect_ref): New function.
6210         (init_data_ref): Initialize new data-ref fields.
6211         (strip_conversion): Moved from tree-vect-analyze.c.
6212         (analyze_offset_expr, get_ptr_offset, address_analysis,
6213         object_analysis): Likewise.
6214         (analyze_offset): New function.
6215         (create_data_ref): Likewise.
6216         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
6217         dimensions for ARRAY_REFs only.
6218         (build_classic_dist_vector): Make static.
6219         (access_functions_are_affine_or_constant_p): Call macro to get the
6220         address of access functions.
6221         (compute_all_dependences): Add new parameter
6222         compute_self_and_read_read_dependences. Compute self and read-read
6223         dependences if it is true.
6224         (find_data_references_in_loop): Call create_data_ref. Initialize new
6225         data-ref fields.
6226         (compute_data_dependences_for_loop): Add new parameter
6227         compute_self_and_read_read_dependences. Remove parameter nb_loops,
6228         compute nb_loops. Call compute_all_dependences,
6229         build_classic_dist_vector and build_classic_dir_vector with correct
6230         parameters.
6231         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
6232         with correct parameters. Compare dimensions for ARRAY_REFs only.
6233         (free_data_refs): Call macro to free access functions.
6234         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
6235         fields from stmt_vinfo.
6236         (struct base_object_info): New structure.
6237         (struct data_reference): Move fields to base_object_info. Add fields
6238         first_location and object_info for above structures. Move fields from
6239         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
6240         aligned_to.  Add macros to access the new fields.
6241         Update functions declarations.
6242         * tree-flow.h (is_aliased_with): Declare.
6243         * tree-loop-linear.c (linear_transform_loops): Call
6244         compute_data_dependences_for_loop with correct parameters.
6245         * tree-ssa-alias.c (is_aliased_with): New function.
6246         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
6247         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
6248         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
6249         vect_base_addr_differ_p, compute_subscript_distance and
6250         build_classic_dist_vector. Add printings. Check absolute value of
6251         distance.
6252         (vect_analyze_data_ref_dependences): Go through ddrs instead of
6253         data-refs.
6254         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
6255         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
6256         to bytes. Add printing.
6257         (vect_compute_data_refs_alignment): Go through loads and stores in one
6258         loop.
6259         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
6260         vect_analyze_data_ref_access): Likewise.
6261         (vect_analyze_pointer_ref_access): Remove.
6262         (vect_address_analysis, vect_object_analysis): Likewise.
6263         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
6264         and analyze data-refs in the loop.
6265         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
6266         fields of data-ref instead of stmt. Add init to the offset from the
6267         base.
6268         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
6269         (vect_update_init_of_dr): Likewise.
6270         (vect_update_inits_of_drs): Go through loads and stores in one loop.
6271         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
6272         removed fields.
6273         (new_loop_vec_info): Initialize new fields.
6274         (destroy_loop_vec_info): Free new fields.
6275         (vect_strip_conversion): Remove.
6276         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
6277         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
6278         datarefs. Add new field ddrs.
6279         Add macros for the new fields access.
6280         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
6281         base_aligned_p, misalignment, memtag, ptr_info and subvars.
6282         Remove their macros.
6283         * tree.h (highest_pow2_factor): Declare.
6284
6285 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
6286
6287         * calls.c (store_one_arg): Check for sibling call MEM arguments
6288         from already clobbered incoming argument area.
6289
6290 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6291
6292         * c-common.c (check_missing_format_attribute): New.
6293         * c-common.h (check_missing_format_attribute): Likewise.
6294         * c-typeck.c (convert_for_assignment): Use it.
6295
6296 2005-07-24  Andreas Schwab  <schwab@suse.de>
6297
6298         * config/m68k/m68k.md ("extendqidi2"): When source is an address
6299         register use a word move.  Correct operand of ext.w in 68000 code.
6300
6301 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
6302
6303         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
6304         variables as declarations, rather than definitions.
6305
6306 2005-07-24  Ira Rosen  <irar@il.ibm.com>
6307
6308         PR tree-optimization/22526
6309         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
6310         of the zero node.
6311
6312 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6313
6314         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
6315         that C99 reserve for future use. Use it to define clog10,
6316         clog10f and clog10l.
6317
6318 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6319
6320         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
6321         * configure.ac: Check for -Wmissing-format-attribute.
6322
6323         * configure: Regenerate.
6324
6325 2005-07-23  Richard Henderson  <rth@redhat.com>
6326
6327         PR tree-optimization/22623
6328         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
6329
6330 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
6331
6332         PR target/22577
6333         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
6334
6335 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6336
6337         * Makefile.in (C_TREE_H): Update dependencies.
6338         * c-tree.h: Include toplev.h.
6339         * diagnostic.h (diagnostic_set_info): Add format attribute.
6340         * rtl-error.c (diagnostic_for_asm): Likewise.
6341
6342 2005-07-23  Chao-ying Fu  <fu@mips.com>
6343
6344         * config/mips/mips-dsp.md: New file.
6345         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
6346         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
6347         functions.
6348         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
6349         MIPS_BUILTIN_BPOSGE32.
6350         (mips_expand_builtin_direct): Add one parameter to indicate that
6351         builtin functions need to return a value.
6352         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
6353         functions.
6354         (mips_regno_to_class): Add classes for 12 new DSP registers.
6355         (mips_subword): Change to check four HI registers.
6356         (mips_output_move): Output move to and from 6 new DSP accumulators.
6357         (override_options): Make sure -mdsp and -mips16 are not used together.
6358         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
6359         for machine modes.
6360         (mips_conditional_register_usage): Disable 6 new DSP accumulators
6361         when !TARGET_DSP.
6362         (print_operand): Add 'q' for printing DSP accumulators.
6363         (mips_cannot_change_mode_class): Check ACC_REGS.
6364         (mips_secondary_reload_class): Check ACC_REGS.
6365         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
6366         (mips_register_move_cost): Check ACC_REGS.
6367         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
6368         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
6369         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
6370         (dsp_bdesc): New array.
6371         (bdesc_arrays): Add DSP builtin function table.
6372         (mips_prepare_builtin_arg): Check predicate again after
6373         copy_to_mode_reg.
6374         (mips_expand_builtin): Add one more parameter to
6375         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
6376         MIPS_BUILTIN_BPOSGE32.
6377         (mips_init_builtins): Initialize new function types.
6378         (mips_expand_builtin_direct): Check if builtin functions need to
6379         return a value and pass operands properly.
6380         (mips_expand_builtin_bposge): New function.
6381         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
6382         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
6383         (FIRST_PSEUDO_REGISTER): Increase to 188.
6384         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
6385         Update for 12 new DSP registers.
6386         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
6387         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
6388         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
6389         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
6390         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
6391         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
6392         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
6393         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
6394         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
6395         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
6396         (REGISTER_NAMES): Add names for 12 new DSP registers.
6397         * config/mips/mips.md: Include mips-dsp.md.
6398         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
6399         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
6400         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
6401         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
6402         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
6403         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
6404         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
6405         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
6406         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
6407         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
6408         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
6409         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
6410         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
6411         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
6412         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
6413         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
6414         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
6415         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
6416         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
6417         (UNSPEC_RDDSP): New constants.
6418         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
6419         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
6420         A<-d alternative.
6421         * config/mips/mips.opt (-mdsp): New option.
6422         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
6423         (reg_imm10_operand): New predicates.
6424         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
6425         * doc/invoke.texi (-mdsp): Document new option.
6426
6427 2005-07-22  DJ Delorie  <dj@redhat.com>
6428
6429         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
6430         to warning calls.
6431         * tree-inline.c (inlinable_function_p): Likewise.
6432
6433 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
6434
6435         PR debug/21828
6436         * toplev.c (check_global_declarations): Do not mark undefined
6437         variables as DECL_IGNORED_P.
6438         * varasm.c (first_global_object_name): GTY it.
6439         (weak_global_object_name): Likewise.
6440         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
6441         a string to go into {weak,first}_global_object_name.
6442
6443 2005-07-22  DJ Delorie  <dj@redhat.com>
6444
6445         * c-format.c (check_function_format): Change warning control
6446         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
6447
6448 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
6449
6450         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
6451         &PTR->FLD a dereference of PTR.
6452         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
6453         a potential dereference of PTR.
6454
6455 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
6456
6457         PR rtl-optimization/20370
6458         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
6459         call allocate_reg_info if necessary.
6460
6461         PR rtl-optimization/21848
6462         * calls.c (emit_library_call_value_1): For const functions, add
6463         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
6464
6465         PR rtl-optimization/22445
6466         * cselib.c (target.h): Include.
6467         (rtx_equal_for_cselib_p): Allow commutative matches.
6468         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
6469         Remove MODE parameter.  Changed all callers.
6470
6471         PR rtl-optimization/22258
6472         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
6473         New functions.
6474         (try_combine): Use likely_spilled_retval_p.
6475
6476 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
6477
6478         * config.gcc: Add crx-elf support.
6479
6480         * doc/contrib.texi: Mention crx.
6481         * doc/extend.texi: Document crx extensions.
6482         * doc/install.texi: Document crx install.
6483         * doc/invoke.texi: Document crx options.
6484         * doc/md.texi: Document crx constraints.
6485
6486         * config/crx/crx-protos.h: New file.
6487         * config/crx/crx.c: New file.
6488         * config/crx/crx.h: New file.
6489         * config/crx/crx.md: New file.
6490         * config/crx/crx.opt: New file.
6491         * config/crx/t-crx: New file.
6492
6493 2005-07-22  Manfred Hollstein  <mh@suse.com>
6494
6495         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
6496         warnings.
6497         (int_add_graph_edge): Likewise.
6498         (collapse_nodes): Likewise.
6499         (process_unification_queue): Likewise.
6500
6501 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6502             Laurent GUERBY  <laurent@guerby.net>
6503
6504         PR tree-optimization/22336
6505         * function.c (record_block_change): Check for
6506         cfun->ib_boundaries_block.
6507
6508 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
6509
6510         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
6511         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
6512
6513 2005-07-21  DJ Delorie  <dj@redhat.com>
6514
6515         * toplev.c (warn_deprecated_use): Add warning control to warning
6516         call.
6517         * c-typeck.c (parser_build_binary_op): Likewise.
6518         (c_finish_if_stmt): Likewise.
6519         * c-common.c (check_function_sentinel): Likewise.
6520         (check_nonnull_arg): Likewise.
6521
6522 2005-07-21  Richard Henderson  <rth@redhat.com>
6523
6524         PR tree-opt/22504
6525         * tree-complex.c (complex_ssa_name_components): New.
6526         (cvc_lookup): Allow entry not found.
6527         (create_components): Remove.
6528         (create_one_component_var, get_component_var): New.
6529         (get_component_ssa_name, set_component_ssa_name): New.
6530         (extract_component): Use get_component_ssa_name.
6531         (update_complex_components): Use set_component_ssa_name.
6532         (update_complex_components_on_edge): Likewise.
6533         (update_phi_components): Create new PHI nodes directly, instead
6534         of adding insns to edges.
6535         (tree_lower_complex): Allocate and free complex_variable_components
6536         and complex_ssa_name_components here.
6537
6538 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
6539
6540         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
6541         revert to returning false.
6542
6543 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
6544
6545         PR target/21149
6546         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
6547
6548 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
6549
6550         PR target/22576
6551         * config/i386/i386.md (cmpxf): Change operand constraints
6552         to "nonmemory_operand".
6553
6554 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
6555
6556         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
6557
6558 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
6559
6560         PR middle-end/21180
6561         * fold-const.c (fold_build1): Add checksum for the operands.
6562         (fold_build2): Likewise.
6563         (fold_build3): Likewise.
6564
6565 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
6566
6567         PR middle-end/19055
6568         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
6569
6570 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
6571
6572         * common.opt (-fforward-propagate): Committed by mistake,
6573         removed.
6574
6575 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6576
6577         * reg-stack.c: Fix comment typo(s).
6578         * tree-ssa-operands.c: Likewise.
6579         * tree-vectorizer: Likewise.
6580
6581 2005-07-21  Nick Clifton  <nickc@redhat.com>
6582
6583         * config/sh/symbian.c: Replace C++ style line comments with C
6584         style line comments.
6585         (symbian_add_attribute): Do not use a ? operator on the LHS of
6586         an assignment.
6587         (sh_symbian_handle_dll_attribute): Change the type of the
6588         method vector to "VEC(tree,gc)*" and use vector accessor
6589         macros to walk over the elements.
6590         (symbian_export_vtable_and_rtti_p): Likewise.
6591         (symbian_class_needs_attribute_p): Likewise.
6592
6593 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
6594
6595         PR target/22085
6596         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
6597         initialize targetm.resolve_overloaded_builtin here.
6598         (altivec_expand_overloaded_builtin): Make it non-static.
6599         * config/rs6000/rs6000-protos.h
6600         (altivec_expand_overloaded_builtin): New prototype.
6601         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
6602         targetm.resolve_overloaded_builtin here.
6603         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
6604
6605 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
6606             Zdenek Dvorak  <dvorakz@suse.cz>
6607
6608         PR tree-optimization/19210
6609         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
6610         New.
6611         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
6612         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
6613         rely on unproven assumptions.
6614         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
6615         * tree-flow.h (number_of_iterations_exit): Add final parameter.
6616         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
6617         to number_of_iterations_exit.
6618         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
6619         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
6620         * tree-ssa-loop-niter.c (find_loop_niter,
6621         estimate_numbers_of_iterations_loop): Likewise.
6622         (number_of_iterations_exit): Honor the new options.
6623         * doc/invoke.texi (Wunsafe-loop-optimizations,
6624         funsafe-loop-optimizations): Document them.
6625
6626 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
6627
6628         PR rtl-optimization/22167
6629         * gcse.c (hoist_code): Fix hoist_exprs[] check.
6630
6631 2005-07-20  Adam Nemet  <anemet@lnxw.com>
6632
6633         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
6634         __do_global_dtors_aux longcall.
6635
6636 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
6637
6638         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
6639         (old_special_pred_table): Don't reference
6640         SPECIAL_MODE_PREDICATES.
6641         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
6642         * config/arc/arc.h: Don't mention PREDICATE_CODES.
6643         * config/sh/predicates.h: Don't mention
6644         SPECIAL_MODE_PREDICATES.
6645         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
6646         Remove.
6647
6648 2005-07-20  DJ Delorie  <dj@redhat.com>
6649
6650         * config.gcc: Add m32c-elf support.
6651
6652         * doc/contrib.texi: Mention m32c.
6653         * doc/extend.texi: Document m32c extensions.
6654         * doc/install.texi: Mention m32c.
6655         * doc/invoke.texi: Document m32c options.
6656         * doc/md.texi: Document m32c constraints.
6657
6658         * config/m32c/addsub.md: New file.
6659         * config/m32c/bitops.md: New file.
6660         * config/m32c/cond.md: New file.
6661         * config/m32c/jump.md: New file.
6662         * config/m32c/m32c-lib1.S: New file.
6663         * config/m32c/m32c-lib2.c: New file.
6664         * config/m32c/m32c-modes.def: New file.
6665         * config/m32c/m32c-pragma.c: New file.
6666         * config/m32c/m32c-protos.h: New file.
6667         * config/m32c/m32c.abi: New file.
6668         * config/m32c/m32c.c: New file.
6669         * config/m32c/m32c.h: New file.
6670         * config/m32c/m32c.md: New file.
6671         * config/m32c/m32c.opt: New file.
6672         * config/m32c/minmax.md: New file.
6673         * config/m32c/mov.md: New file.
6674         * config/m32c/muldiv.md: New file.
6675         * config/m32c/predicates.md: New file.
6676         * config/m32c/prologue.md: New file.
6677         * config/m32c/shift.md: New file.
6678         * config/m32c/t-m32c: New file.
6679
6680 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6681
6682         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
6683         (stack_protect_set, stack_protect_test): New expanders.
6684         (stack_protect_set_si, stack_protect_set_si_media,
6685         stack_protect_set_di_media, stack_protect_test_si,
6686         stack_protect_test_si_media, stack_protect_test_di_media):
6687         New insns.
6688
6689 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
6690
6691         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
6692
6693 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
6694
6695         * tree.h (tree_expr_nonzero_p): Export.
6696         * fold-const.c (tree_expr_nonzero_p): Likewise.
6697         Return true for CALL_EXPRs that are alloca calls.
6698         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
6699         against zero.
6700         * tree-flow.h (expr_computes_nonzero): Remove.
6701         * tree-vrp.c (expr_computes_nonzero): Remove.
6702         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
6703         (extract_range_from_unary_expr): Likewise.
6704         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
6705         tree_expr_nonzero_p.
6706
6707 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
6708
6709         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
6710         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
6711         extra arg "picreg" and use it instead of pic_offset_table_rtx.
6712         All callers changed.
6713         (frame_related_constant_load): New arg "related" which controls
6714         setting of RTX_FRAME_RELATED_P.  All callers changed.
6715         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
6716         (bfin_expand_prologue): Add stack limit checking.
6717         * config/bfin/bfin.md (trapifcc): New pattern.
6718
6719         * config/bfin/bfin.c: Include "langhooks.h".
6720         (def_builtin): Go through lang_hooks to call builtin_function.
6721
6722         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
6723         * config/bfin/predicates.md (symbol_ref_operand): New.
6724         (call_insn_operand): Delete.  All callers changed to use
6725         register_no_elim_operand.
6726         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
6727         call_cookie field.
6728         (function_arg): Use it to generate the call's operand 2.
6729         (bfin_longcall_p): New function.
6730         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
6731         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
6732         determine if the address needs to be in a REG.
6733         (bfin_handle_longcall_attribute): New function.
6734         (bfin_attribute_table): Add "longcall" and "shortcall".
6735         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
6736         (CUMULATIVE_ARGS): New member call_cookie.
6737         (PREDICATE_CODES): Add symbol_ref_operand.
6738         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
6739         extra USE to the pattern.
6740         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
6741         New patterns, split off call_insn, sibcall_insn, call_value_insn and
6742         sibcall_value_insn; now the new patterns handle direct calls and the
6743         old ones indirect calls.
6744         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
6745
6746 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
6747
6748         * doc/trouble.texi: Update section on handling of empty loops.
6749
6750 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
6751
6752         * config.gcc: Remove support for sparc-*-openbsd*,
6753         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
6754         ns32k-*-netbsd*.
6755         * config.host: Remove support for i860-*-sysv4* as a host.
6756         * config/i860/*, config/ip2k/*, config/ns32k/*,
6757         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
6758         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
6759         mention obsolete ports.
6760
6761 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6762
6763         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
6764         soft frame pointer.
6765         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
6766         of frame_pointer_rtx.
6767         (sh_expand_epilogue): Likewise.
6768         (sh_set_return_address): Likewise.
6769         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
6770         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
6771         offsets from FRAME_POINTER_REGNUM.
6772         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
6773         (sh_register_names): Add initializer for sfp.
6774         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
6775         (VALID_REGISTER_P): Likewise.
6776         (FIRST_PSEUDO_REGISTER): Update.
6777         (DWARF_FRAME_REGISTERS): Define.
6778         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
6779         (HARD_FRAME_POINTER_REGNUM): Define.
6780         (FRAME_POINTER_REGNUM): Redefine.
6781         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
6782         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
6783         from FRAME_POINTER_REGNUM.
6784         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
6785         FRAME_POINTER_REGNUM.
6786         (REG_CLASS_CONTENTS): Add sfp.
6787         (REG_ALLOC_ORDER): Likewise.
6788         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
6789         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
6790         of frame_pointer_rtx.
6791         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
6792
6793 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
6794
6795         * fold-const.c (tree_expr_nonnegative_p): Only return true for
6796         ABS_EXPR when flag_wrapv is false because of INT_MIN.
6797         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
6798         of an ABS_EXPR.
6799         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
6800         ABS_EXPR<x>.
6801
6802 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
6803
6804         Make CONSTRUCTOR use VEC to store initializers.
6805         * c-common.c (complete_array_type): Update to cope with VEC in
6806         CONSTRUCTOR_ELTS.
6807         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
6808         (pp_c_constructor_elts): New function.
6809         * c-pretty-print.h (pp_c_constructor_elts): Declare.
6810         * c-typeck.c (build_function_call, build_c_cast, digest_init,
6811         struct constructor_stack, struct initializer_stack,
6812         constructor_elements, push_init_level, pop_init_level,
6813         add_pending_init, find_init_member, output_init_element): Update to
6814         cope with VEC in CONSTRUCTOR_ELTS.
6815         * coverage.c (build_fn_info_value, build_ctr_info_value,
6816         build_gcov_info): Likewise.
6817         * expr.c (categorize_ctor_elements_1, store_constructor,
6818         expand_expr_real_1): Likewise.
6819         * fold-const.c (fold_ternary): Likewise.
6820         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
6821         gimplify_init_constructor, gimplify_expr): Likewise.
6822         * tree-dump.c (dequeue_and_dump): Likewise.
6823         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
6824         node.
6825         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
6826         CONSTRUCTOR_ELTS.
6827         * tree-sra.c (generate_element_init_1): Likewise.
6828         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
6829         * tree-ssa-operands.c (get_expr_operands): Likewise.
6830         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
6831         * tree-vect-transform.c (vect_get_vec_def_for_operand):
6832         (get_initial_def_for_reduction): Likewise.
6833         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
6834         value handle in annotations.
6835         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
6836         tree_node_structure): Add support for constr_kind.
6837         (build_vector_from_ctor, build_constructor_single,
6838         build_constructor_from_list): New functions.
6839         (build_constructor): Update to take a VEC instead of a TREE_LIST.
6840         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
6841         Update to cope with VEC in CONSTRUCTOR_ELTS.
6842         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
6843         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
6844         CONSTRUCTOR_APPEND_ELT): New macros.
6845         (struct constructor_elt, struct tree_constructor): New data types.
6846         (union tree_node): Add tree_constructor field.
6847         * treestruct.def: Define TS_CONSTRUCTOR.
6848         * varasm.c (const_hash_1, compare_constant, copy_constant,
6849         compute_reloc_for_constant, output_addressed_constants,
6850         initializer_constant_valid_p, output_constant,
6851         array_size_for_constructor, output_constructor): Update to cope with
6852         VEC in CONSTRUCTOR_ELTS.
6853         * vec.h (VEC_empty, VEC_copy): New macros.
6854
6855 2005-07-19  Devang Patel  <dpatel@apple.com>
6856
6857         * dbxout.c (dbxout_type): Check Objective-C++ lang.
6858
6859 2005-07-19  Richard Henderson  <rth@redhat.com>
6860
6861         PR tree-opt/22278
6862         * gimplify.c (gimplify_expr): Use main variant type for the temp
6863         destination for a discarded volatile read.
6864         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
6865         casts between non-void types that change volatility.
6866
6867 2005-07-15  DJ Delorie  <dj@redhat.com>
6868
6869         * toplev.h: Add comment about the first parameter for warning().
6870         * errors.h: Likewise.
6871
6872         * c.opt (Wpragmas): New.
6873         * doc/invoke.texi: Document it.
6874
6875         * function.c (do_warn_unused_parameter): Add warning control to
6876         warning call.
6877         * c-decl.c (warn_if_shadowing): Likewise.
6878         * c-lex.c (cb_def_pragma): Likewise.
6879         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
6880         (pop_alignment): Likewise.
6881         (handle_pragma_pack): Likewise.
6882         (apply_pragma_weak): Likewise.
6883         (handle_pragma_weak): Likewise.
6884         (handle_pragma_redefine_extname): Likewise.
6885         (add_to_renaming_pragma_list): Likewise.
6886         (handle_pragma_extern_prefix): Likewise.
6887         (maybe_apply_renaming_pragma): Likewise.
6888         (handle_pragma_visibility): Likewise.
6889
6890         * config/c4x/c4x-c.c (BAD): Likewise.
6891         (c4x_parse_pragma): Likewise.
6892         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
6893         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
6894         (rs6000_pragma_longcall): Likewise.
6895         * config/v850/v850-c.c (pop_data_area): Likewise.
6896         (ghs_pragma_section): Likewise.
6897         (ghs_pragma_section): Likewise.
6898         (ghs_pragma_interrupt): Likewise.
6899         (ghs_pragma_starttda): Likewise.
6900         (ghs_pragma_startsda): Likewise.
6901         (ghs_pragma_startzda): Likewise.
6902         (ghs_pragma_endtda): Likewise.
6903         (ghs_pragma_endsda): Likewise.
6904         (ghs_pragma_endzda): Likewise.
6905
6906 2005-07-19  Danny Berlin <dberlin@dberlin.org>
6907             Kenneth Zadeck <zadeck@naturalbridge.com>
6908
6909         * Makefile.in: Removed tree-promote-statics.c
6910         * tree-promote-statics.c: Removed.
6911         * common.opt: Removed flag-promote-statics.
6912         * opts.c: Ditto.
6913         * passes.c: Removed tree-promote-statics pass.
6914         * tree-pass.h: Ditto.
6915         * timevar.def: Removed TV_PROMOTE_STATICS.
6916
6917
6918 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
6919
6920         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
6921         and *-*-freebsd9.
6922         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
6923
6924 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6925
6926         PR c/22476
6927         * c-common.c (check_function_arguments): Call
6928         'check_function_format' if either -Wformat or
6929         -Wmissing-format-attribute are specified.
6930         * c-format.c (check_function_format): Check -Wformat before
6931         calling 'check_format_info'.
6932         * c-opts.c (c_common_post_options): Don't warn for
6933         -Wmissing-format-attribute without -Wformat.
6934         * c-typeck.c (convert_for_assignment): Detect additional cases for
6935         -Wmissing-format-attribute.
6936         * doc/invoke.texi (-Wmissing-format-attribute): Document new
6937         behavior.
6938
6939 2005-07-19  Richard Guenther  <rguenther@suse.de>
6940
6941         * config/i386/i386.md (lrint<mode>2): Use temporary
6942         instead of clobbering non-existent memory.
6943
6944 2005-07-19  Nick Clifton  <nickc@redhat.com>
6945
6946         * config/avr/avr.c (legitimate_address_p): Fix debugging print
6947         statement to avoid displaying ASCII control characters.
6948
6949 2005-07-19  Ben Elliston  <bje@au.ibm.com>
6950
6951         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
6952         * cfganal.c (find_edge_index): Ditto.
6953         * combine.c (combine_instructions): Ditto.
6954         * ddg.c (create_scc): Ditto.
6955         (find_successors): Ditto.
6956         (find_predecessors): Ditto.
6957         (find_nodes_on_paths): Ditto.
6958         (longest_simple_path): Ditto.
6959         * flow.c (update_life_info): Ditto.
6960         (count_or_remove_death_notes): Ditto.
6961         (clear_log_links): Ditto.
6962         * modulo-sched.c (generate_reg_moves): Ditto.
6963         (find_max_asap): Ditto.
6964         (find_max_hv_min_mob): Ditto.
6965         (find_max_dv_min_mob): Ditto.
6966         * sbitmap.c (sbitmap_first_set_bit): Ditto.
6967         * sched-rgn.c (extract_edgelst): Ditto.
6968         * tree-into-ssa.c (prepare_names_to_update): Ditto.
6969         (dump_update_ssa): Ditto.
6970         (ssa_names_to_replace) Ditto.
6971         (switch_virtuals_to_full_rewrite): Ditto.
6972         (update_ssa): Ditto.
6973         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
6974
6975 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
6976
6977         Fix PR tree-optimization/22483
6978
6979         * tree-complex.c (create_components): Use
6980         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
6981         * tree-flow-inline.h (fill_referenced_var_vec): New function.
6982         * tree-flow.h (safe_referenced_var_iterator): New structure.
6983         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
6984         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
6985         safe_referenced_var iterator.
6986         (add_type_alias): Ditto.
6987
6988 2005-07-19  Steven Bosscher  <stevenb@suse.de>
6989
6990         * loop-init.c (rest_of_handle_loop2): Remove.
6991         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
6992         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
6993         (pass_rtl_loop_init, pass_rtl_loop_done,
6994         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
6995         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
6996         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
6997         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
6998         pass_tree_loop_done, and pass_tree_unswitch.
6999         (gate_loop): Rename to gate_tree_loop.
7000         * passes.c (init_optimization_passes): Update for renamed tree
7001         loop passes.  Add the new loop2 passes as subpasses of loop2.
7002         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
7003         Update for the renamed tree loop passes.
7004
7005 2005-07-18  Ian Lance Taylor  <ian@airs.com>
7006
7007         PR middle-end/22057
7008         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
7009         blocks when optimizing.
7010
7011 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
7012
7013         * common.opt (frename-registers): Initialize to 2.
7014         (fweb): Ditto.
7015         (fgcse-after-reload): Ditto.
7016         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
7017         (process_options): Only change flag_web, flag_rename_registers,
7018         and flag_rerun_cse_after_loop if not explicitly set by user.
7019
7020 2005-07-18  Jan Beulich  <jbeulich@novell.com>
7021
7022         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
7023         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
7024         in 64-bit mode the same as DImode in 32-bit mode.
7025         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
7026         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
7027         mode. Add new mode parameter.
7028         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
7029         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
7030         x86_64_shift_adj): New expanders.
7031         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
7032         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
7033         insns.
7034         Respective new splitters. Use renamed shift splitter helpers in 32-bit
7035         DImode shift splitters.
7036         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
7037         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
7038         mode parameter.
7039
7040 2005-07-18  Jan Beulich  <jbeulich@novell.com>
7041
7042         * i386.md (movdi_extzv_1): New.
7043         (zero_extendhidi2): Combine alternatives and never force use of
7044         REX64 prefix.
7045         (zero_extendqidi2): Likewise. Don't restrict input selection.
7046
7047 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
7048
7049         Fix PR tree-optimization/22531
7050         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
7051          moment.
7052
7053 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
7054
7055         * tree-promote-statics.c (pass_promote_statics): Change dump file
7056          name.
7057
7058 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
7059
7060         * tree-optimize.c (init_tree_optimization_passes): Add
7061         pass_eliminate_useless_stores pass.
7062         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
7063         * tree-ssa-pre.c (is_copy_stmt): New function.
7064         (follow_copies_till_vuse): Ditto.
7065         (do_eustores): Ditto.
7066         (gate_eustores): Ditto.
7067
7068 2005-07-16  Richard Henderson  <rth@redhat.com>
7069
7070         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
7071
7072 2005-07-16 Danny Berlin <dberlin@dberlin.org>
7073            Kenneth Zadeck <zadeck@naturalbridge.com>
7074
7075         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
7076         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
7077         ipa-type-escape.h, tree-promote-statics.c
7078         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
7079         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
7080         tree-promote-statics.c: new files.
7081         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
7082         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
7083         int nonlocal_set_p, mark_constant_function): Deleted.
7084         (rest_of_handle_cfg): Removed call to mark_constant_function.
7085         (nonoverlapping_component_refs_p): Added calls to support
7086         type based aliasing.
7087         * tree-ssa-alias.c (may_alias_p,
7088         compute_flow_insensitive_aliasing): Ditto.
7089         * calls.c (flags_from_decl_or_type): Removed reference to
7090         cgraph_rtl_info.
7091         * c-typeck.c (convert_arguments): Make builtins tolerant of having
7092         too many arguments.  This is necessary for Spec 2000.
7093         * cgraph.h (const_function, pure_function): Removed.
7094         * common.opt: Added "fipa-pure-const", "fipa-reference",
7095         "fipa-type-escape", and "ftree-promote-static".
7096         * opts.c: Ditto.
7097         * passes.c: Added ipa and tree-promote-statics passes.
7098         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
7099         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
7100         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
7101         * tree-flow.h: Added exposed sra calls and addition of
7102         reference_vars_info field for FUNCTION_DECLS.
7103         * tree-pass.h: Added passes.
7104         * tree-sra.c: (sra_init_cache): New function.
7105         (sra_insert_before, sra_insert_after) Made public.
7106         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
7107         and made public.
7108         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
7109         aliasing. (may_alias_p): Added code to use type escape analysis to
7110         improve alias sets.
7111         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
7112         code to prune clobbers of static variables based on information
7113         produced in ipa-reference pass.  Changed call clobbering so that
7114         statics are not marked as clobbered if the call does not clobber
7115         them.
7116
7117 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
7118
7119         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
7120         too.
7121
7122 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
7123
7124         * doc/install.texi (*-*-solaris2*): Document recommended version
7125         of GNU binutils and mention GNU linker problem on Solaris 10.
7126
7127 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
7128
7129         PR c/22421
7130         * c-decl.c (c_build_bitfield_integer_type): New function.
7131         (finish_struct): Call it.
7132         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
7133
7134 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7135
7136         * c-typeck.c (digest_init): Call 'convert_for_assignment'
7137         before returning.
7138
7139 2005-07-16  Jan Hubicka  <jh@suse.cz>
7140
7141         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
7142         (scale_bbs_frequencies_int): Watch roundoff errors.
7143         * predict.c (return_prediction): Initialize return_stmt.
7144
7145 2005-07-16  Jan Hubicka  <jh@suse.cz>
7146
7147         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
7148         after RTL profiling.
7149
7150 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
7151
7152         PR middle-end/22398
7153         * fold-const.c (build_range_check): Convert high/low to etype
7154         if we are only comparing against exp.
7155
7156 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
7157
7158         Fix PR tree-optimization/22376
7159         * tree-ssa-structalias.c (build_constraint_graph): We really meant
7160         special var here.
7161         (need_to_solve): New function.
7162         (compute_points_to_sets): Use it.
7163
7164 2005-07-15  Jan Hubicka  <jh@suse.cz>
7165
7166         * cfg.c (update_bb_profile_for_threading): More diagnostic.
7167         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
7168
7169 2005-07-15  Richard Guenther  <rguenther@suse.de>
7170
7171         * c-common.c (handle_flatten_attribute): New function.
7172         Add flatten function attribute.
7173         * doc/extend.texi: Document flatten function attribute.
7174         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
7175         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
7176         New functions.
7177         (cgraph_decide_inlining): Handle functions with flatten
7178         attribute.
7179
7180 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
7181
7182         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
7183         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
7184         UNSPEC_XCHG, UNSPEC_AND): New.
7185         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
7186         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
7187         * config/rs6000/sync.md (FETCHOP): New code macro.
7188         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
7189         New code attrs.
7190         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
7191         (sync_compare_and_swap<mode>): Same.
7192         (sync_lock_test_and_set<mode>): Same.
7193         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
7194         for QImode and HImode, and not PPC405.
7195         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
7196         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
7197         (sync_<fetchop>{si,di}_internal): New.
7198         (sync_nand{si,di}_internal): New.
7199         (sync_old_<fetchop>{si,di}_internal): New.
7200         (sync_old_nand{si,di}_internal): New
7201         (sync_new_<fetchop>{si,di}_internal): New.
7202         (sync_new_nand{si,di}_internal): New.
7203         (atomic_and{si,di}): New.
7204         (sync_new_nand{si,di}_internal): New.
7205         (atomic_and{si,di}): New.
7206         (sync_add<mode>_internal): Delete.
7207         (sync_addshort_internal): Use unspec instead of unspec_volatile.
7208         (sync_sub<mode>_internal): Delte.
7209         (sync_subshort_internal): New.
7210         (sync_andsi_internal): Use unspec instead of unspec_volatile.
7211         (sync_anddi_internal): Delete.
7212         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
7213         (sync_booldi_internal): Delete.
7214         (sync_boolc<mode>_internal): Delete.
7215         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
7216         (sync_boolc<mode>_internal2): Delete.
7217         (sync_boolcc<mode>_internal): Delete.
7218         (isync, lwsync): Use unspec instead of unspec_volatile.
7219         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
7220         Revert UNSPEC_VOLATILE.
7221         (rs6000_split_atomic_op): New.
7222         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
7223
7224 2005-07-14  Eric Christopher  <echristo@redhat.com>
7225
7226         * config/mips/mips.c (mips_canonicalize_comparison): Cast
7227         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
7228
7229 2005-07-14  Eric Christopher  <echristo@redhat.com>
7230
7231         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
7232
7233 2005-07-14  Steven Bosscher  <stevenb@suse.de>
7234
7235         PR tree-optimization/22230
7236         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
7237         the computation of the four cross productions for "range op range".
7238
7239 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
7240             Ulrich Weigand  <uweigand@de.ibm.com>
7241
7242         PR target/20126
7243         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
7244         in some insn.
7245
7246 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
7247
7248         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
7249
7250 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
7251
7252         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
7253
7254 2005-07-14  Richard Guenther  <rguenther@suse.de>
7255
7256         PR middle-end/22347
7257         * config/i386/i386-protos.h (ix86_function_value): Change
7258         prototype to match new target hook.
7259         * config/i386/i386.c (ix86_value_regno): Change prototype
7260         to take extra type argument.
7261         (TARGET_FUNCTION_VALUE): Define.
7262         (ix86_function_ok_for_sibcall): Pass extra argument to
7263         ix86_value_regno, check return slot rtx for exact match.
7264         (ix86_function_value): Take extra parameter.  Dispatch to
7265         ix86_value_regno with fndecl/fntype as provided.
7266         (ix86_value_regno): Handle extra type argument.
7267         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
7268
7269         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
7270         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
7271         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
7272         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
7273         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
7274
7275 2005-07-14  Richard Guenther  <rguenther@suse.de>
7276
7277         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
7278         * calls.c (expand_call): Pass fntype to hard_function_value.
7279         (emit_library_call_value_1): Likewise.
7280         * explow.c: Include target.h.
7281         (hard_function_value): Take extra argument, the fntype.
7282         Use new target hook for function_value.
7283         * expr.h (hard_function_value): Change prototype.
7284         * function.c (aggregate_value_p): Pass 0 as fntype to
7285         hard_function_value.
7286         (assign_parms): Use new target hook for function_value.
7287         Pass 0 as fntype to hard_function_value.
7288         (expand_function_end): Likewise.
7289         * reg-stack.c: Include target.h.
7290         (stack_result): Use new target hook for function_value.
7291         * target-def.h: New target hook function_value.
7292         * target.h: Likewise.
7293         * targhooks.c (default_function_value): New function.
7294         * targhooks.h (default_function_value): Declare.
7295
7296 2005-07-13  Ian Lance Taylor  <ian@airs.com>
7297
7298         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
7299
7300 2005-07-14  Jan Hubicka  <jh@suse.cz>
7301
7302         * tree-dfa.c (dump_variable): Use default_def function.
7303         * tree-ssa-alias.c (dump_points_to_info): Likewise.
7304         * tree-ssa.c (verify_use): Likewise.
7305         * tree-ssanames.c (release_ssa_name): Likewise.
7306         * tree-tailcall.c (eliminate_tail_call): Likewise.
7307         (tree_optimize_tail_calls_1): Likewise.
7308         * tree-vrp.c (get_value_range): Likewise.
7309
7310 2005-07-14  Ben Elliston  <bje@au.ibm.com>
7311
7312         * gcc.c (main): Compare language[0] with '*' when iterating over
7313         the infiles.
7314
7315 2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
7316
7317         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
7318         "s390_emit_compare".  Add handling of CCZ1mode.
7319         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
7320         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
7321         checking.
7322         (s390_branch_condition_mask): Add CCZ1mode handling.
7323         * config/s390/s390.md: ("seq", "*seq"): New pattern.
7324         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
7325         Use CCZ1mode instead of CCZmode.
7326         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
7327
7328 2006-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
7329
7330         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
7331         pattern.
7332         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
7333
7334 2005-07-13  Eric Christopher  <echristo@redhat.com>
7335
7336         * config/mips/mips.c (mips_canonicalize_comparison): New.
7337         (mips_emit_int_relational): Use.
7338
7339 2005-07-13  Eric Christopher  <echristo@redhat.com>
7340
7341         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
7342         static extra parts.
7343         * config/s390/s390.md: Include tpf.md. Move tpf specific
7344         patterns...
7345         * config/s390/tpf.md: To here.
7346         * config/s390/s390.opt: Move tpf specific options...
7347         * config/s390/tpf.opt: to here. Add mmain option.
7348         * config/s390/tpf-unwind.h: Remove unnecessary defines.
7349         * config/s390/tpf.h: Rewrite.
7350
7351 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
7352
7353         * doc/tm.texi: Remove @xref{Cross-profiling}.
7354
7355 2005-07-13  Jeff Law  <law@redhat.com>
7356
7357         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
7358         expressions, test their _DECL operands for pointer equality rather
7359         than using operand_equal_p.
7360
7361 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
7362
7363         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
7364         (TARGET_POSIX_IO): This.
7365         * config/darwin.h: Likewise.
7366         * config/freebsd.h: Likewise.
7367         * config/linux.h: Likewise.
7368         * config/lynx.h: Likewise.
7369         * config/netbsd.h: Likewise.
7370         * config/rs6000/linux64.h: Likewise.
7371         * config/rs6000/linux.h: Likewise.
7372         * config/s390/tpf.h: Likewise.
7373         * config/sh/embed-elf.h: Likewise.
7374         * config/sparc/linux64.h: Likewise.
7375         * config/sparc/linux.h: Likewise.
7376         * config/svr4.h: Likewise.
7377         * gcov-io.h: Likewise.
7378
7379         * doc/tm.texi: Updated.
7380
7381         * libgcov.c (create_file_directory): Defined only if
7382         TARGET_POSIX_IO is defined.
7383         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
7384         is defined.
7385
7386 2005-07-13  Jan Hubicka  <jh@suse.cz>
7387
7388         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
7389
7390 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
7391
7392         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
7393         structure as argument.
7394
7395 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
7396
7397         PR tree-optimization/21921
7398         * tree-iterator.c (tsi_link_before): Support the case when
7399         tsi_end_p (tsi) == true.
7400
7401 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
7402
7403         PR tree-optimization/22442
7404         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
7405         correctly.
7406
7407 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
7408
7409         PR rtl-optimization/20376
7410         * toplev.c (process_options): Enable -fweb and -frename-registers when
7411         unrolling.
7412         * doc/invoke.texi: Update the information about when -fweb and
7413         -frename-registers are enabled.
7414
7415 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
7416
7417         PR tree-opt/21840
7418         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
7419         if *rhs_p is not a SSA_NAME.
7420
7421 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
7422
7423         Fix PR tree-optimization/22422
7424         * tree-ssa-structalias.c (struct variable_info): Add flag for
7425         special vars.
7426         (get_varinfo): Now a static function.
7427         (new_varinfo): init has_union and is_special_var to false.
7428         (solution_set_add): Check has_union.
7429         (do_da_constraint): Move temporary variable so it gets reset
7430         properly.
7431         Also check for special variable.
7432         (do_ds_constraint): Ditto.
7433         (do_sd_constraint): Ditto.
7434         (do_structure_copy): Check for special variable.
7435         (find_func_aliases): Ditto.
7436         (init_base_vars): Set special vars properly.
7437
7438 2005-07-13  Jan Hubicka  <jh@suse.cz>
7439
7440         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
7441         do unit-at-a-time.
7442
7443         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
7444         (get_expr_operands): Fix thinko wrt flags and subvars.
7445
7446         PR tree-optimize/22379
7447         * tree-inline.c (expand_call_inline): Do not output sorry in early
7448         inlining.
7449
7450 2005-07-12  Dale Johannesen  <dalej@apple.com>
7451
7452         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
7453
7454 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
7455
7456         PR bootstrap/21704
7457         * host-linux.h: Include limits.h.
7458
7459 2005-07-12  Dale Johannesen  <dalej@apple.com>
7460
7461         * expr.c (compress_float_constant):  Add cost check.
7462         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
7463
7464 2005-07-12  Dale Johannesen  <dalej@apple.com>
7465
7466         * gcc.target/i386/compress-float-sse.c:  New.
7467         * gcc.target/i386/compress-float-sse-pic.c:  New.
7468         * gcc.target/i386/compress-float-387.c:  New.
7469         * gcc.target/i386/compress-float-387-pic.c:  New.
7470         * gcc.dg/compress-float-ppc.c:  New.
7471         * gcc.dg/compress-float-ppc-pic.c:  New.
7472
7473 2005-07-12  Eric Christopher  <echristo@redhat.com>
7474
7475         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
7476         static extra parts.
7477         * config/s390/s390.md: Include tpf.md. Move tpf specific
7478         patterns...
7479         * config/s390/tpf.md: To here.
7480         * config/s390/s390.opt: Move tpf specific options...
7481         * config/s390/tpf.opt: to here. Add mmain option.
7482         * config/s390/tpf-unwind.h: Remove unnecessary defines.
7483         * config/s390/tpf.h: Rewrite.
7484
7485 2005-07-12  Eric Christopher  <echristo@redhat.com>
7486
7487         * gcc.c (struct infile): Update comment for language.
7488         (main): Rewrite input file resetting code.
7489
7490 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
7491
7492         PR tree-opt/22335
7493         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
7494         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
7495         (lookup_avail_expr): Use constant_boolean_node instead
7496         of boolean_false_node/boolean_true_node.
7497
7498 2005-07-12  Ben Elliston  <bje@au.ibm.com>
7499
7500         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
7501         and use it when printing num_edges.
7502
7503 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
7504
7505         * doc/extend.texi (Blackfin Built-in Functions): New section.
7506         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
7507         @opindex.
7508
7509 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
7510
7511         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
7512         s/cmpstrsi/cmpstrnsi
7513         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
7514         'cmpstrnsi'.
7515         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
7516         (init_optabs): Initialize cmpstrn_optab.
7517         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
7518         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
7519         * expr.c: (enum insn_code cmpstrn_optab): Declare.
7520         * config/i386/i386.md: s/cmpstr/cmpstrn
7521         * config/c4x/c4x.md: s/cmpstr/cmpstrn
7522         * doc/md.texi: Update documentation.
7523
7524 2005-07-11  Richard Henderson  <rth@redhat.com>
7525
7526         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
7527         build_va_arg_indirect_ref.
7528         (alpha_gimplify_va_arg): Likewise.
7529         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
7530         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
7531         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
7532         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
7533         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
7534         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
7535         Likewise.
7536         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
7537
7538 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
7539
7540         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
7541         * passes.c (init_optimization_passes): Add pass_empty_loop.
7542         * tree-pass.h (pass_empty_loop): Declare.
7543         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
7544         try_remove_empty_loop, remove_empty_loops): New functions.
7545         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
7546         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
7547
7548 2005-07-12  Peter Barada  <peter@the-baradas.com>
7549
7550         PR middle-end/16719
7551         PR middle-end/18421
7552         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
7553         in address registers.
7554         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
7555         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
7556         alternative of addsi3_5200.
7557
7558 2005-07-11  Ian Lance Taylor  <ian@airs.com>
7559
7560         * config/mips/mips.md (ffs<mode>2): Remove.
7561
7562 2005-07-11  Ian Lance Taylor  <ian@airs.com>
7563
7564         * doc/tree-ssa.texi (Cleanups): Improve description of
7565         TRY_FINALLY_EXPR.
7566         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
7567
7568 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
7569
7570         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
7571         * tree.h (DECL_ARGUMENT_FLD): New macro.
7572
7573 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
7574
7575         Fix PR tree-optimization/22404
7576
7577         * tree-ssa-structalias.c (create_variable_info_for): Use
7578         correct offset.
7579
7580 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7581
7582         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
7583         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
7584         for second comparison operand.
7585         * config/bfin/predicates.md (reg_or_const_int_operand): New.
7586
7587         * config/bfin/bfin.md (define_attr "type"): Add "sync".
7588         (define_insn_reservation "alu"): Likewise.
7589         (csync, ssync): Now of type sync.
7590         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
7591         -mcsync-anomaly -mspecld-anomaly.
7592         * config/bfin/bfin.opt (mcsync): Remove.
7593         (mcsync-anomaly, mspecld-anomaly): Add.
7594         * config/bfin/bfin.c: Include "insn-codes.h".
7595         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
7596         (TARGET_DEFAULT_TARGET_FLAGS): New.
7597         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
7598
7599 2005-07-11  Steven Bosscher  <stevenb@suse.de>
7600
7601         * basic-block.h: Give the BB flags enum a name, bb_flags.
7602         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
7603         * cfgcleanup.c (enum bb_flags): Remove here.
7604         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
7605         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
7606         (update_forwarder_flag): Likewise.
7607         (thread_jump): Likewise.
7608         (try_forward_edges): Likewise.
7609         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
7610         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
7611         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
7612
7613 2005-07-11  Richard Guenther  <rguenther@suse.de>
7614
7615         * config/i386/i386.opt: New target option -msseregparm.
7616         * config/i386/i386.c (override_options): Error out for
7617         -msseregparm but no SSE support.
7618         (ix86_function_sseregparm): Check for global sseregparm.
7619         * doc/invoke.texi: Document -msseregparm.
7620
7621 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7622
7623         * config.gcc (m32r-*-linux*): Use the default extra_parts.
7624         (m32rle-*-linux*): Ditto.
7625
7626 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
7627
7628         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
7629         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
7630         bytes.
7631
7632 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7633
7634         PR middle-end/22239
7635         PR target/20126
7636         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
7637         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
7638
7639 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
7640
7641         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
7642         (varmap): Heapify varmap.
7643         (constraints): Heapify constraints.
7644         (struct constraint_graph): Heapify succs and preds.
7645         (constraint_vec_find): Update for heapification.
7646         (constraint_set_union): Ditto.
7647         (insert_into_complex): Ditto.
7648         (constraint_edge_vec_find): Ditto.
7649         (erase_graph_self_edge): Ditto.
7650         (add_graph_edge): Ditto.
7651         (get_graph_weights): Ditto.
7652         (merge_graph_nodes): Ditto.
7653         (build_constraint_graph): Ditto.
7654         (topo_visit): Ditto.
7655         (solve_graph): Ditto.
7656         (create_variable_info_for): Ditto.
7657         (init_base_vars): Ditto.
7658         (delete_points_to_sets): Free graph, varmap, and complex constraints.
7659         (condese_varmap_nodes): Free complex vector.
7660         (clear_edges_for_node): Clear succs and preds vector.
7661
7662 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
7663
7664         * tree-ssa-structalias.c (update_alias_info): Change counting of
7665         references to not include vdefs.
7666
7667 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
7668
7669         * tree-ssa-alias.c (free_used_part_map): Add missing free.
7670         (up_insert): Ditto.
7671
7672 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7673
7674         * pa.c (pa_commutative_p): Make PLUS commutative when
7675         TARGET_NO_SPACE_REGS is true.
7676
7677 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
7678
7679         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
7680         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
7681         * tree-dfa.c (dump_subvars_for): New.
7682         (debug_subvars_for): New.
7683         (dump_variable): Show subvariables if VAR has them.
7684         * tree-flow-inline.h (get_subvar_at): New.
7685         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
7686         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
7687         Update all users.
7688         (struct subvar): Change fields offset and size to unsigned
7689         HOST_WIDE_INT.
7690         (dump_subvars_for): Declare.
7691         (debug_subvars_for): Declare.
7692         (get_subvar_at): Declare.
7693         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
7694         to unsigned HOST_WIDE_INT *.
7695         (overlap_subvar): Likewise.
7696         * tree-gimple.c (is_gimple_reg): Always return false for
7697         SFTs and memory tags.
7698         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
7699         Update all callers.
7700         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
7701         (compute_may_aliases): Call compute_points_to_sets.
7702         (collect_points_to_info_for): Remove.
7703         (compute_points_to_and_addr_escape): Remove.
7704         (delete_alias_info): Call delete_points_to_sets.
7705         (compute_flow_sensitive_aliasing): If the call to
7706         find_what_p_points_to returns false, call set_pt_anything.
7707         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
7708         (set_pt_anything): Clear pi->pt_vars.
7709         (set_pt_malloc): Remove.
7710         (merge_pointed_to_info): Remove.
7711         (add_pointed_to_expr): Remove.
7712         (add_pointed_to_var): Remove.
7713         (collect_points_to_info_r): Remove.
7714         (is_escape_site): Make extern.
7715         (create_sft): New.
7716         (create_overlap_variables_for): Call it.
7717         * tree-ssa-copy.c (merge_alias_info): Never merge
7718         flow-sensitive alias information.
7719         * tree-ssa-operands.c (get_expr_operands): Adjust variables
7720         offset and size to be unsigned HOST_WIDE_INT.
7721         (add_to_addressable_set): Rename from note_addressable.
7722         Set TREE_ADDRESSABLE as the variables are added to the set.
7723         Update all users.
7724         (add_stmt_operand): Do not try to micro-optimize unmodifiable
7725         operands into VUSEs when adding V_MAY_DEFs for members in an
7726         alias set.
7727         * tree-ssa-operands.h (add_to_addressable_set): Declare.
7728         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
7729         (struct variable_info): Add bitfield is_heap_var.
7730         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
7731         (new_var_info): Initialize is_heap_var.
7732         (get_constraint_for): Add HEAP variables to the symbol table.
7733         Mark them with is_heap_var.
7734         (update_alias_info): New.  Taken mostly from the old
7735         compute_points_to_and_addr_escape.
7736         (handle_ptr_arith): New.
7737         (find_func_aliases): Call update_alias_info.
7738         Call handle_ptr_info for tcc_binary expressions.
7739         Call mark_stmt_modified.
7740         (create_variable_info_for): If DECL has subvars, do not create
7741         variables for its subvars.  Always add all the fields.
7742         (set_uids_in_ptset): If the solution includes ANYOFFSET and
7743         SFTs, then add all the SFTs of the structure.
7744         If VI->DECL is an aggregate with subvariables, add the SFT at
7745         VI->OFFSET.
7746         (find_what_p_points_to): If VI is an artificial variable,
7747         translate to bitfields in SSA_NAME_PTR_INFO.
7748         If the solution is empty, set pi->pt_vars to NULL
7749         (init_base_vars): Create ANYOFFSET.
7750         (compute_points_to_sets): Rename from create_alias_vars.
7751         Make extern.
7752         (pass_build_pta): Remove.
7753         (delete_points_to_sets): Rename from delete_alias_vars.
7754         (pass_del_pta): Remove.
7755         * tree-ssa-structalias.h (struct alias_info): Move from
7756         tree-ssa-alias.h.
7757         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
7758         NUM_REFERENCES_SET): Likewise.
7759         (compute_points_to_sets, delete_points_to_sets): Declare.
7760
7761 2005-07-09  Richard Henderson  <rth@redhat.com>
7762
7763         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
7764         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
7765         alpha_split_lock_test_and_set_12): New functions.
7766         * config/alpha/alpha-protos.h: Update.
7767         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
7768         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
7769         * config/alpha/sync.md (I12MODE): New.
7770         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
7771         (sync_<fetchop_name><I48MODE>): Likewise.
7772         (sync_nand<I48MODE>): Likewise.
7773         (sync_old_<fetchop_name><I48MODE>): Likewise.
7774         (sync_new_<fetchop_name><I48MODE>): Likewise.
7775         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
7776         (sync_compare_and_swap<I48MODE>): Likewise.
7777         (sync_lock_test_and_set<I48MODE>): Likewise.
7778         (sync_compare_and_swap<I12MODE>): New.
7779         (sync_compare_and_swap<I12MODE>_1): New.
7780         (sync_lock_test_and_set<I12MODE>): New.
7781         (sync_lock_test_and_set<I12MODE>_1): New.
7782
7783 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
7784
7785         PR 21356
7786         PR 22332
7787         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
7788
7789 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
7790
7791         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
7792         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
7793
7794 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
7795
7796         PR target/21656
7797         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
7798
7799 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
7800
7801         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
7802         memory_operand constraint.
7803         (store_conditional_<mode>): Same.
7804         (sync_compare_and_swap<mode>): Same.
7805         (sync_lock_test_and_set<mode>): Same.
7806
7807 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
7808
7809         Rewrite PIC support to more closely model actual instructions.
7810         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
7811         (cris_symbol): Remove prototypes for removed functions.
7812         (cris_pic_symbol_type_of, cris_valid_pic_const)
7813         (cris_expand_pic_call_address): Prototypes for new functions.
7814         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
7815         variable.
7816         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
7817         modifiers.
7818         <case ':'>: Add case for new punctuation character.
7819         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
7820         emitting (extra) PIC modifier.
7821         <case UNSPEC>: Do not assert for PLT.
7822         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
7823         (cris_expand_prologue, cris_expand_epilogue): Check
7824         for pic_offset_table_rtx usage instead of taking
7825         current_function_uses_pic_offset_table as the final word.
7826         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
7827         Remove flag_pic difference.
7828         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
7829         the moral equivalents of...
7830         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
7831         functions.
7832         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
7833         (cris_handle_option): Mark ARG as unused.
7834         (cris_expand_pic_call_address): New worker function for "call",
7835         "call_value".
7836         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
7837         output PIC constructs here.
7838         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
7839         as symbol-specific modifers, not whole or part of operands.
7840         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
7841         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
7842         constants and flag_pic.
7843         (CONSTANT_INDEX_P): Adjust for new functions.
7844         (enum cris_pic_symbol_type): New helper type.
7845         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
7846         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
7847         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
7848         define_constants.
7849         ("movsi"): Emit actual instructions for GOT and relative access.
7850         ("*movsi_got_load"): New pattern to set up the register holding
7851         the GOT pointer.
7852         ("*movsi_internal"): Operand 1 is not a plain general_operand.
7853         Adjust FIXME for 'S'.
7854         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
7855         Use "movs" for -fpic cases.
7856         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
7857         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
7858         ("call", "call_value"): Just call cris_expand_pic_call_address for
7859         PIC addresses.
7860         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
7861         Remove special pattern.
7862         ("*expanded_call_side", "*expanded_call_value_side"): New
7863         patterns.
7864         (gotplt-to-plt, gotplt-to-plt-side-call)
7865         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
7866         peephole2:s.
7867         * config/cris/cris/predicates.md
7868         ("cris_general_operand_or_gotless_symbol"): Remove unused
7869         predicate.
7870         ("cris_general_operand_or_symbol"): Adjust for new functions.
7871
7872 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
7873
7874         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
7875
7876 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
7877
7878         * Makefile.in (TREE_H): Add treestruct.def.
7879         (c-decl.o): Add pointer-set.h
7880         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
7881         visibility on regular DECL's.
7882         (merge_decls): Fix the copying of decl nodes of various types for
7883         the new structures.  Don't update RTL, section name, weak status,
7884         etc, on DECL's without RTL.
7885         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
7886         Don't check volatile on non-variable types.
7887         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
7888         to check whether we have seen arguments.
7889         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
7890         flag is checked before field (flag is common, field is not).
7891         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
7892         TS_DECL_COMMON could have an origin.
7893         (add_location_or_const_value_attribute): Don't check section name
7894         on non-var/function decls.
7895         (dwarf2out_var_location): Reverse order of tests.
7896         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
7897         with DECL_WRTL_CHECK.
7898         * expmed.c (make_tree): rtl is now in decl_with_rtl.
7899         * fold-const.c (fold_binary): Don't check weakness on
7900         non-var/function decls.
7901         (tree_expr_nonzero_p): Ditto.
7902         (fold_checksum_tree): Use tree_decl_extra as sizeof
7903         buffer.
7904         * ggc-page.c (extra_order_size_table): Add sizes for
7905         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
7906         tree_field_decl.
7907         * gimplify.c (gimplify_bind_expr): Only set
7908         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
7909         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
7910         without RTL.
7911         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
7912         * langhooks.h (init_ts). New langhook.
7913         * passes.c (rest_of_decl_compilation): Reverse order of tests.
7914         * print-tree.c (print_node): Update to only print fields that
7915         exist in the structures the passed decl has.
7916         * toplev.c (wrapup_global_declarations): Don't reset
7917         DECL_DEFER_OUTPUT on DECL's that don't contain it.
7918         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
7919         * tree-inline.c (remap_decl): Ditto.
7920         * tree-outof-ssa.c (create_temp): Reverse order of tests.
7921         * tree-pretty-print.c (print_declaration): Don't print
7922         DECL_REGISTER on things that don't contain it.
7923         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
7924         non-var/function decls.
7925         * tree.c (tree_contains_struct): New structure.
7926         (init_priority_for_decl): New hashtable.
7927         (tree_int_map): New structure.
7928         (tree_int_map_eq): New function.
7929         (tree_int_map_marked_p): Ditto.
7930         (tree_int_map_hash): Ditto.
7931         (tree_map): Move to tree.h.
7932         (tree_map_eq): Externalize.
7933         (tree_map_hash): Ditto.
7934         (tree_map_marked_p): Ditto.
7935         (init_ttree): Set up tree_contains_struct and call langhook.
7936         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
7937         (tree_code_size): Update for new structures.
7938         (tree_node_structure): Update for new structures.
7939         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
7940         without the field.
7941         (copy_node_stat):  Copy init priority.
7942         (build_decl_stat): Ditto for visibility.
7943         (ts_enum_names): New.
7944         (tree_contains_struct_check_failed): New function.
7945         (decl_init_priority_lookup): Ditto.
7946         (decl_init_priority_insert): Ditto.
7947         * treestruct.def: New file.
7948         * tree.h (CODE_CONTAINS_STRUCT): New macro.
7949         (CONTAINS_STRUCT_CHECK): Ditto.
7950         (tree_contains_struct_check_failed): New prototype.
7951         (DECL_CHECK): Removed.
7952         (DECL_MINIMAL_CHECK): New.
7953         (DECL_COMMON_CHECK): Ditto.
7954         (DECL_WRTL_CHECK): Ditto.
7955         (DECL_NON_COMMON_CHECK): Ditto.
7956         (DECL_WITH_VIS_CHECK): Ditto.
7957         (VAR_OR_FUNCTION_DECL_P): Ditto
7958         (struct tree_decl_minimal): New structure.
7959         (struct tree_decl_common): Ditto.
7960         (struct tree_decl_with_rtl): Ditto.
7961         (struct tree_decl_with_vis): Ditto.
7962         (struct tree_decl_non_common): Ditto.
7963         (struct tree_field_decl): Ditto.
7964         (struct tree_parm_decl): Ditto.
7965         (struct tree_var_decl): Ditto.
7966         (struct tree_function_decl): Ditto.
7967         (struct tree_const_decl): Ditto.
7968         (struct tree_result_decl): Ditto.
7969         (union tree_node): Add new structures.
7970         * var-tracking.c (track_expr_p): Reverse order of tests.
7971
7972         * doc/c-tree.texi: Add documentation on DECL node internal structure.
7973
7974 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
7975
7976         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
7977         * system.h: Poison FINALIZE_PIC.
7978         * doc/tm.texi (FINALIZE_PIC): Remove.
7979
7980 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
7981
7982         PR tree-opt/22329
7983         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
7984         to the correct type if we have a MODIFY_EXPR.
7985
7986 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
7987
7988         PR tree-optimization/22360
7989         * tree.c (upper_bound_in_type): Fix calculations for casting
7990         to a non-wider signed type and casting a signed value to a
7991         wider unsigned type.
7992         (lower_bound_in_type): Fix calculations for casting to a
7993         non-wider signed type.
7994
7995         PR tree-optimization/20139
7996         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
7997         release_defs.
7998         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
7999         fold_cond_expr_cond.
8000         * tree-ssanames.c (release_defs): Assert in_ssa_p.
8001         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
8002
8003 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
8004
8005         PR tree-opt/22356
8006         * tree-complex.c (expand_complex_libcall): Produce
8007         REALPART_EXPR/IMAGPART_EXPR with the correct type.
8008
8009 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
8010
8011         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
8012         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
8013         b" assert and inserted fastpath code for this case.
8014         (bitmap_ior): Removed "a != b" assert.
8015
8016 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8017
8018         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
8019         (ENDFILE_SPEC): Likewise.
8020         * config/m32r/m32r.h (ASM_SPEC): Likewise.
8021
8022         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
8023         a large stack frame at epilogue.
8024
8025 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
8026
8027         * final.c: Include sdbout.h when required.
8028
8029 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
8030
8031         * config.gcc (*-*-darwin*): Only one target-specific header file
8032         for generic darwin.
8033         (powerpc-*-darwin*): Add version-specific header files.
8034         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
8035         * config.in: Regenerate.
8036         * configure: Regenerate.
8037         * gcc.c: Include xregex.h.
8038         (version_compare_spec_function): New.
8039         (spec_function): Add version-compare.
8040         (replace_outfile_spec_function): Reformat comment.
8041         (compare_version_strings): New.
8042         * config/darwin-c.c (version_as_macro): New.
8043         (builtin_define): New.
8044         (darwin_cpp_builtins): New.
8045         * config/darwin-protos.h (darwin_cpp_builtins): New.
8046         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
8047         (LIB_SPEC): Make unconditional, update comment.
8048         (TARGET_C99_FUNCTIONS): Define.
8049         * config/darwin.opt: Sort.
8050         (mmacosx-version-min=): New.
8051         * config/darwin7.h: Delete.
8052         * config/darwin8.h: Delete.
8053         * config/i386/darwin.h (): Call darwin_cpp_builtins.
8054         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
8055         (TARGET_C99_FUNCTIONS): Define.
8056         * config/rs6000/darwin7.h: New.
8057         * config/rs6000/darwin8.h: New.
8058         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
8059         (-mmacosx-version-min): Document.
8060
8061 2005-07-07  Ian Lance Taylor  <ian@airs.com>
8062
8063         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
8064
8065 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
8066
8067         PR middle-end/22239
8068         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
8069
8070 2005-07-07  Khem Raj  <kraj@mvista.com>
8071
8072         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
8073         in bytes, not words.
8074
8075 2005-07-07  Paul Brook  <paul@codesourcery.com>
8076
8077         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
8078         DEFAULT_FUNCTION_ARG_PADDING to upward.
8079
8080 2005-07-07  Richard Henderson  <rth@redhat.com>
8081
8082         * function.c (locate_and_pad_parm): Record parameter alignment in
8083         stack_alignment_needed.
8084
8085 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
8086
8087         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
8088         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
8089         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
8090         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
8091         (define_attr "type"): Add isync, sync, load_l, store_c.
8092         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
8093         Create scratch volatile MEM.
8094         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
8095         sync.
8096         (load_locked_<mode>): New.
8097         (store_conditional_<mode>): New.
8098         (sync_compare_and_swap<mode>): Replace with splitter.
8099         (sync_lock_test_and_set<mode>): Replace with splitter.
8100         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
8101         and UNSPECV_ISYNC.
8102         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
8103         is ics.  Attribute isync.
8104         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
8105         lwsync.
8106         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
8107         and UNSPECV_SYNC_OP.
8108         (emit_unlikely_jump): New.
8109         (emit_load_locked): New.
8110         (emit_store_conditional): New.
8111         (rs6000_split_compare_and_swap): New.
8112         (rs6000_split_lock_test_and_set): New.
8113         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
8114         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
8115         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
8116         rs6000_split_lock_test_and_set): Declare.
8117         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
8118         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
8119         store_c, isync, sync.
8120
8121 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
8122
8123         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
8124         filenames to gtyp-gen.h.
8125         (s-typ-gen): Use it in place of for loops.
8126
8127 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
8128
8129         * hooks.c (hook_bool_rtx_int_false): New function.
8130         * hooks.h (hook_bool_rtx_int_false): Declare.
8131         * target-def.h (TARGET_COMMUTATIVE_P): Define.
8132         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
8133         * target.h (struct gcc_target): Add commutative_p member.
8134         * targhooks.c (hook_bool_rtx_commutative_p): New function.
8135         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
8136         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
8137         (pa_commutative_p): New function.
8138         * jump.c (target.h): Include.
8139         (rtx_renumbered_equal_p): Use targetm.commutative_p.
8140         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
8141
8142 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
8143
8144         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
8145         (s390_expand_setmem): New.
8146         * config/s390/s390.c: Likewise.
8147         (print_shift_count_operand): Truncate to 12 bits instead of 6.
8148         Adapt comments.
8149         * config/s390/s390.md: ("setmem<mode>"): Accept character as
8150         general_operand.  Call new function "s390_expand_setmem".
8151         ("clrmem_long", "*clrmem_long"): Rewrite to ...
8152         ("setmem_long", "*setmem_long"): ... this.
8153
8154 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
8155
8156         * config/s390/s390.c: (optimization_options): Enable
8157         TARGET_MVCLE at -Os.
8158         * doc/invoke.texi: Document changes in default behaviour.
8159         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
8160
8161 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
8162
8163         * expr.c: (set_storage_via_setmem): Convert opchar to mode
8164         defined by back-end.
8165
8166 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
8167
8168         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
8169         all sets in the pattern.
8170         * config/rs6000/rs6000.md (stack_protect_testsi,
8171         stack_protect_testdi): Likewise.
8172
8173 2005-07-06  Jeff Law  <law@redhat.com>
8174
8175         * tree-vrp.c (simplify_using_ranges): Kill.
8176         (vrp_finalize): Remove call to simplify_using_ranges.
8177         (simplify_stmt_using_ranges): New function extracted from
8178         simplify_using_ranges.
8179         (simplify_div_or_mod_using_ranges): Likewise.
8180         (simplify_abs_using_ranges): Likewise.
8181         (simplify_cond_using_ranges): New function.
8182         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
8183         * tree-ssa-propagate.c (substitute_and_fold): Call
8184         simplify_stmt_using_ranges if we have range information.
8185
8186 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
8187
8188         * config/ia64/ia64.c (ia64_reorg): Check optimize before
8189         ia64_flag_schedule_isns2.
8190
8191         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
8192         reading/writing general registers.
8193         (ia64_function_arg): Revert 2005-06-18 change.
8194
8195 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
8196
8197         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
8198         (legitimize_tls_address): Use gcc_unreachable instead of abort.
8199
8200 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
8201
8202         * function.c (expand_function_end): Revert part of 2005-06-27
8203         patch.  Do sjlj_emit_function_exit_after after return_label.
8204
8205 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
8206
8207         * doc/install.texi (--disable-libssp): New.
8208
8209 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
8210
8211         * doc/invoke.texi: Update -fforce-mem documentation.
8212         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
8213         code for -fforce-mem.
8214         * expmed.c: (store_bit_field,store_fixed_bit_field,
8215         extract_bit_field): Ditto.
8216         * expr.c: (convert_move): Ditto.
8217         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
8218         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
8219         emit_conditional_add,expand_float,expand_fix): Ditto.
8220         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
8221         (common_handle_option): Issue warning when -fforce-mem specified.
8222
8223 2005-07-06  Paul Brook  <paul@codesourcery.com>
8224
8225         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
8226         argument is empty.
8227         * configure: Regenerate.
8228
8229 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
8230
8231         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
8232
8233 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
8234
8235         Fix PR tree-optimization/22319
8236         Fix PR tree-optimization/22140
8237         Fix PR tree-optimization/22310
8238
8239         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
8240         variable sized types.
8241         Use correct type for intermediate structure on *a = *b structure
8242         copies.
8243
8244 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
8245
8246         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
8247         Remove.
8248         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
8249         (machine_function): Move typedef to...
8250         * config/rs6000/rs6000.c (machine_function): ... here.  Add
8251         varargs_save_offset field.
8252         (rs6000_stack_t): Remove varargs_size field.
8253         (setup_incoming_varargs): Allocate varargs save area using
8254         assign_stack_local, try to make it as small as possible.
8255         Save offset from virtual_stack_vars_rtx to the save area
8256         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
8257         instead of magic 8 when fp word byte size is used.
8258         (rs6000_va_start): Use cfun->machine->varargs_save_offset
8259         instead of -RS6000_VARARGS_SIZE.
8260         (rs6000_stack_info, debug_stack_info,
8261         rs6000_initial_elimination_offset): Remove all traces of
8262         varargs_size.
8263         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
8264         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
8265         RS6000_VARARGS_AREA.
8266
8267 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
8268
8269         PR tree-optimization/21963
8270         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
8271         constant_multiple_of in the same way get_computation_cost_at does.
8272
8273 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
8274
8275         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
8276         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
8277         (gen_compare_reg): If sparc_compare_emitted is set, clear it
8278         and return its previous value.
8279         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
8280         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
8281         constants.
8282         (stack_protect_set, stack_protect_test): New expanders.
8283         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
8284         stack_protect_testdi): New insns.
8285         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8286         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
8287
8288 2005-07-06  Jeff Law  <law@redhat.com>
8289
8290         * tree-ssa-dce.c (cfg_altered): New global.
8291         (tree_dce_init): Initialize cfg_altered.
8292         (remove_dead_stmt): If we remove an edge in the CFG, then set
8293         CFG_ALTERED.
8294         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
8295         the dominators.
8296
8297 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
8298
8299         * Makefile.in (stamp-collect-ld): Use
8300         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
8301         ./collect-ld if it already exists.
8302         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
8303         Don't remove ./nm if it already exists.
8304
8305 2005-07-05  Devang Patel  <dpatel@apple.com>
8306
8307         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
8308         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
8309         * tree-vectorizer.c (vect_loop_location): New.
8310         (vect_print_dump_info): Use vect_loop_location.
8311         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
8312         (vectorize_loops): Set vect_loop_location.
8313         * tree-vect-analyze.c (vect_analyze_offset_expr,
8314         vect_determin_vectorization_factor, vect_analyze_operations,
8315         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
8316         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
8317         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
8318         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
8319         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
8320         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
8321         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
8322         vect_analyze_loop): Adjust vect_print_dump_info API.
8323         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
8324         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
8325         vect_finish_stmt_generation, vectorizable_assignment,
8326         vectorizable_operation, vectorizable_store, vectorizable_load,
8327         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
8328         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
8329         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
8330         vect_transform_loop): Same.
8331         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
8332         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
8333         Same.
8334
8335 2005-07-05  Randolph Chung  <tausq@debian.org>
8336
8337         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
8338         * configure: Regenerate.
8339         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
8340         (pa_tls_referenced_p): Declare.
8341         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
8342         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
8343         (legitimize_tls_address): New.
8344         (hppa_legitimize_address): Handle TLS addresses.
8345         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
8346         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
8347         (emit_move_sequence): Handle TLS addresses.
8348         (pa_encode_section_info): Call default handler to handle common
8349         sections.
8350         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
8351         (CONSTANT_ADDRESS_P): Reject TLS operands.
8352         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
8353         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
8354         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
8355         (UNSPEC_TLSLE): Define new constants.
8356         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
8357         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
8358         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
8359         (tie_symbolic_operand, tle_symbolic_operand): New
8360
8361 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
8362
8363         * aclocal.m4: Update macros for autoconf 2.59 style.
8364         * configure.ac: Likewise.
8365
8366 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8367
8368         * pa.c (function_value): Handle small aggregates on 32-bit targets.
8369         (function_arg): Pass small aggregates in general registers on 32-bit
8370         targets.
8371         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
8372
8373 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
8374
8375         * Makefile.in (final.o): Fix dependencies.
8376
8377 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
8378
8379         PR c/22013
8380         PR c/22098
8381         * langhooks.h (struct lang_hooks): Add expr_to_decl.
8382         * langhooks.c (lhd_expr_to_decl): New.
8383         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
8384         New.
8385         (LANG_HOOKS_INITIALIZER): Update.
8386         * tree.c (recompute_tree_invarant_for_addr_expr): Call
8387         expr_to_decl langhook.
8388         * c-tree.h (c_expr_to_decl): Declare.
8389         * c-typeck.c (c_expr_to_decl): New.
8390         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
8391         specially.
8392         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
8393
8394 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
8395
8396         PR c/22308
8397         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
8398         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
8399
8400 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
8401
8402         * Makefile.in: Adjust dependencies.
8403         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
8404         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
8405         * alias.c (rest_of_handle_cfg, pass_cfg): New.
8406         * bb-reorder.c (duplicate_computed_gotos): Make it static.
8407         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
8408         rest_of_compilation.
8409
8410         * bb-reorder.c (gate_duplicate_computed_gotos,
8411         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
8412         rest_of_handle_reorder_blocks, pass_reorder_blocks,
8413         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
8414         pass_partition_blocks): New.
8415         * bt-load.c (gate_handle_branch_target_load_optimize,
8416         rest_of_handle_branch_target_load_optimize,
8417         pass_branch_target_load_optimize): New.
8418         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
8419         pass_jump2): New.
8420         * cfglayout.c (pass_insn_locators_initialize): New.
8421         * cfgrtl.c (pass_free_cfg): New.
8422         * combine.c (gate_handle_combine, rest_of_handle_combine,
8423         pass_combine): New.
8424         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
8425         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
8426         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
8427         * except.c (pass_set_nothrow_function_flags,
8428         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
8429         pass_rtl_eh): New.
8430         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
8431         rest_of_handle_shorten_branches, pass_shorten_branches,
8432         rest_of_clean_state, pass_clean_state): New.
8433         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
8434         rest_of_handle_remove_death_notes, pass_remove_death_notes,
8435         rest_of_handle_life, pass_life, rest_of_handle_flow2,
8436         pass_flow2): New.
8437         * function.c (pass_instantiate_virtual_regs, pass_init_function,
8438         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
8439         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
8440         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
8441         pass_gcse): New.
8442         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
8443         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
8444         pass_rtl_ifcvt, gate_handle_if_after_combine,
8445         rest_of_handle_if_after_combine, pass_if_after_combine,
8446         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
8447         pass_if_after_reload): New.
8448         * integrate.c (pass_initial_value_sets): New.
8449         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
8450         pass_purge_lineno_notes): New.
8451         * mode-switching.c (rest_of_handle_mode_switching,
8452         pass_mode_switching): New.
8453         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
8454         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
8455         pass_loop2): New.
8456         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
8457         pass_loop_optimize): New.
8458         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
8459         pass_sms): New.
8460         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
8461         pass_gcse2): New.
8462         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
8463         pass_postreload_cse): New.
8464         * profile.c (gate_handle_profiling, pass_profiling,
8465         rest_of_handle_branch_prob, pass_branch_prob): New.
8466         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
8467         pass_split_before_regstack, gate_handle_split_before_regstack,
8468         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
8469         rest_of_handle_split_all_insns, pass_split_all_insns): New.
8470         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
8471         pass_stack_regs): New.
8472         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
8473         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
8474         pass_stack_adjustments): New.
8475         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
8476         pass_regrename): New.
8477         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
8478         pass_delay_slots, gate_handle_machine_reorg,
8479         rest_of_handle_machine_reorg, pass_machine_reorg): New.
8480         * rtl.h (extern void purge_line_number_notes): New.
8481         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
8482         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
8483         pass_sched2): New.
8484         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
8485         pass_tracer): New.
8486         * value-prof.c (gate_handle_value_profile_transformations,
8487         rest_of_handle_value_profile_transformations,
8488         pass_value_profile_transformations): New.
8489         * var-tracking.c (gate_handle_var_tracking,
8490         pass_variable_tracking): New.
8491         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
8492
8493         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
8494         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8495         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8496         rest_of_handle_old_regalloc, rest_of_handle_regrename,
8497         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
8498         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
8499         rest_of_handle_gcse2, rest_of_handle_regmove,
8500         rest_of_handle_tracer, rest_of_handle_if_conversion,
8501         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
8502         rest_of_handle_web, rest_of_handle_branch_prob,
8503         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8504         rest_of_handle_jump_bypass, rest_of_handle_combine,
8505         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8506         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8507         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
8508         rest_of_handle_mode_switching, rest_of_handle_jump,
8509         rest_of_handle_eh, rest_of_handle_stack_adjustments,
8510         rest_of_handle_flow2, rest_of_handle_jump2,
8511         rest_of_handle_peephole2, rest_of_handle_postreload,
8512         rest_of_handle_shorten_branches, rest_of_clean_state,
8513         rest_of_compilation): Remove.
8514
8515         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
8516         * passes.c (dump_flags, in_gimple_form, all_passes,
8517         all_ipa_passes, all_lowering_passes, register_one_dump_file,
8518         register_dump_files, next_pass_1, last_verified, execute_todo,
8519         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
8520         from tree-optimize.c.
8521         (init_optimization_passes): Moved from tree-optimize.c,
8522         adding the RTL optimizations.
8523         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
8524         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
8525         all_ipa_passes, all_lowering_passes, register_one_dump_file,
8526         register_dump_files, next_pass_1, last_verified, execute_todo,
8527         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
8528         init_tree_optimization_passes, ipa_passes): Delete.
8529         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
8530         the RTL dumps.
8531         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
8532         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
8533         from tree.h.
8534         (ipa_passes): Remove.
8535         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
8536         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
8537         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
8538         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
8539         (dump_info_p, dump_flag): Moved to tree-dump.h.
8540
8541         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
8542         cgraph.c, opts.c.
8543         * passes.c (finish_optimization_passes): Use dump_begin
8544         and dump_end, TDI_end.
8545         (gate_rest_of_compilation): New.
8546         (pass_rest_of_compilation): Use it.
8547         (gate_postreload, pass_postreload): New.
8548         * toplev.c (general_init): Rename init_tree_optimization_passes.
8549         * toplev.h (init_tree_optimization_passes): Rename to
8550         init_optimizations_passes.
8551         * tree-dump.c (dump_flag): Make static.
8552         (dump_files): Remove RTL dumps.
8553         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
8554         pass_cleanup_cfg, pass_free_cfg_annotations,
8555         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
8556         pass_init_datastructures, pass_fixup_cfg): Make non-static.
8557         * tree-pretty-print.c: Include tree-pass.h.
8558         * cgraph.c: Include tree-dump.h.
8559
8560 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
8561
8562         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
8563         Only fall back to saying it points to readonly memory if
8564         we can't do better.
8565
8566 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8567
8568         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
8569         * config/m32r/m32r.c (m32r_compute_frame_size,
8570         m32r_expand_prologue): Take current_function_profile into
8571         account whenever we reference
8572         current_function_uses_pic_offset_table.
8573         (m32r_finalize_pic): Remove.
8574         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
8575
8576 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
8577
8578         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
8579         instead of $<.  Don't remove ./as if it already exists.
8580
8581 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8582
8583         PR target/21723
8584         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
8585         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
8586         for complex modes when generating code for PA 1.0.
8587         (VALID_FP_MODE_P): New macro.
8588         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
8589         sets for all general and floating point modes.  Align wide floating
8590         point modes to even register boundaries to comply with architectural
8591         requirements.
8592         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
8593         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
8594         (VALID_FP_MODE_P): New macro.
8595         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
8596         sets for all general and floating point modes.  Align wide floating
8597         point modes to even register boundaries to comply with architectural
8598         requirements.
8599
8600 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
8601
8602         * tree-dump.c (dump_files): Initialize dump number for .cgraph
8603         to 0.
8604
8605 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
8606
8607         * tree-ssa-structalias.c: Don't include expr.h.
8608
8609 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
8610
8611         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
8612         comments.
8613
8614 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
8615
8616         Fix PR tree-optimization/22279
8617
8618         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
8619         correct operator.
8620
8621 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
8622
8623         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
8624
8625 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
8626
8627         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
8628         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
8629         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
8630         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
8631         config/stormy16/stormy16.c, config/v850/v850.c,
8632         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
8633         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
8634         Avoid "." or "\n" at end of diagnostics and capital letters at
8635         start of diagnostics.
8636         * combine.c, cse.c: Don't translate dump file output.
8637         * toplev.c (print_version): Only translate output if going to
8638         stderr.
8639
8640 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
8641
8642         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
8643         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
8644         typos.
8645
8646 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8647
8648         * pa.c (fix_range): Fix typo in comment.
8649
8650 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
8651
8652         * tree-vrp.c (extract_range_from_assert): Replace
8653         fold (build (...)) with fold_build2.
8654
8655 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8656
8657         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
8658         gcc_gfc_char_table, init_dynamic_gfc_info): New.
8659         (format_types_orig, handle_format_attribute): Add support for
8660         format "gcc_gfc".
8661
8662 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8663
8664         * varasm.c (assemble_variable): Fix format specifier thinko.
8665
8666 2005-07-03  Ira Rosen  <irar@il.ibm.com>
8667
8668         PR tree-optimization/22029 (and 22135)
8669         * tree-pretty-print.c (dump_generic_node): Check that the node is not
8670         a phi node before calling dump_vops.
8671
8672 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8673
8674         * tree-dump.h (dump_string_field): Declare.
8675         * tree-dump.c: Use it instead of dump_string.
8676         (dump_string_field): Make non-static.
8677
8678 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
8679
8680         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
8681         up the minimal CFG stuff always when optimize > 0.  Call
8682         split_all_insns_noflow in PIC case if needed.
8683
8684 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8685             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
8686
8687         PR c++/18279
8688         * c-decl.c (c_write_global_declarations): Dump contents of
8689         external scope to.
8690         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
8691         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
8692         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
8693         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
8694         is enabled.
8695
8696 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
8697
8698         * c-common.h (GCC_DIAG_STYLE): Define.
8699         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
8700         version for format checking to 4.1.
8701         * c-format.c: Include toplev.h after c-common.h.
8702         (enum format_type): Add gcc_tdiag_format_type.
8703         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
8704         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
8705         (format_types_orig): Add gcc_tdiag.
8706         (init_dynamic_diag_info): Support gcc_tdiag formats.
8707         (handle_format_attribute): Likewise.
8708         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
8709         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
8710         version for format checking to 4.1.
8711         (warning0, warning, error, pedwarn, sorry): Use
8712         ATTRIBUTE_GCC_DIAG.
8713         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
8714         (finish_aliases_1): Do not use %qE.
8715         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
8716         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
8717         Correct format bugs.
8718         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
8719         parameter to unsigned HOST_WIDE_INT.
8720         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
8721
8722 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
8723
8724         PR middle-end/21742
8725         * expr.c (write_complex_part): Use adjust_address for MEM.
8726         (read_complex_part): Same.
8727
8728 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
8729
8730         Fix PR tree-optimization/22280
8731
8732         * tree-sra.c (generate_element_init): Remove useless loop.
8733
8734 2005-07-02  Richard Henderson  <rth@redhat.com>
8735
8736         * config/alpha/alpha.c (alpha_legitimize_address): Check for
8737         TLS_MODEL_NONE.
8738         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
8739
8740 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
8741
8742         PR middle-end/14490
8743         * fold-const.c (fold_binary): Handle the return value of
8744         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
8745         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
8746
8747 2005-07-02  Jeff Law  <law@redhat.com>
8748
8749         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
8750         a eliminate type conversion which feeds an equality comparison
8751         if the original type or either operand in the comparison is a
8752         function pointer.
8753
8754 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
8755
8756         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
8757         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
8758         texts.
8759         * config/avr/avr.c: Do not use '`' as left quote.
8760         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
8761         Remove "." from end of diagnostics.  Make diagnostics start with
8762         lowercase letter.
8763
8764 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
8765             Joseph S. Myers  <joseph@codesourcery.com>
8766
8767         * toplev.c (default_tree_printer): Handle setting location with
8768         '+' flag.
8769         * c-objc.common.c (c_tree_printer): Likewise.
8770         * c-format.c (gcc_diag_flag_specs): Add '+'.
8771         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
8772         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
8773         formats.
8774         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
8775         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
8776         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
8777         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
8778         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
8779         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
8780         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
8781         format arguments where %J is used without %D.
8782
8783 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
8784
8785         * gcc.c (LINK_SSP_SPEC): Define.
8786         (link_ssp_spec): New variable.
8787         (LINK_COMMAND_SPEC): Add %(link_ssp).
8788         (static_specs): Add link_ssp_spec.
8789         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
8790         * configure: Rebuilt.
8791         * config.in: Rebuilt.
8792
8793         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8794         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
8795         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
8796         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
8797         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
8798         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
8799         -0x7008(2) instead of reading __stack_chk_guard variable.
8800         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
8801         number.
8802         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
8803         (stack_protect_set, stack_protect_test): Use *_tls* patterns
8804         if TARGET_THREAD_SSP_OFFSET is defined.
8805         (stack_tls_protect_set_si, stack_tls_protect_set_di,
8806         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
8807
8808         Revert:
8809         2005-06-27  Richard Henderson  <rth@redhat.com>
8810         * libgcc-std.ver (GCC_4.1.0): New.
8811         * libgcc.h (__stack_chk_guard): Declare.
8812         (__stack_chk_fail, __stack_chk_fail_local): Declare.
8813         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
8814         * mklibgcc.in (lib2funcs): Add them.
8815
8816 2005-07-01  Richard Henderson  <rth@redhat.com>
8817
8818         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
8819         void * before struct sigcontext *.
8820         (x86_fallback_frame_state): Likewise.
8821
8822 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
8823
8824         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
8825
8826 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
8827
8828         PR tree-opt/22269
8829         * tree-ssa-reassoc.c (should_transpose): Fix which operand
8830         we check for SSA_NAME for.
8831
8832 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
8833
8834         Fix PR tree-optimization/22071
8835
8836         * tree-ssa-structalias.c (offset_overlaps_with_access): New
8837         function.
8838         (get_constraint_for_component_ref): Use it.
8839
8840 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
8841
8842         PR other/22264
8843         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
8844         print out the last new line.
8845
8846 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
8847
8848         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
8849         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
8850         * config/cris/cris.c (cris_conditional_register_usage): Adjust
8851         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
8852         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
8853         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
8854         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
8855         (enum reg_class): New member CC0_REGS.
8856         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
8857         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
8858         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
8859         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8860         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
8861         Adjust for register now described.
8862
8863 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
8864
8865         PR target/22262
8866         * config/i386/i386.md (stack_protect_test_si,
8867         stack_protect_test_di): Add earlyclobber for scratch 3.
8868         * config/rs6000/rs6000.md (stack_protect_testsi,
8869         stack_protect_testdi): Add earlyclobber for scratch 3,
8870         remove earlyclobber from scratch 4.
8871
8872 Older entries for 2005 can be found in ChangeLog-2005.