OSDN Git Service

* config/i386/i386.c (override_options): -masm=intel isn't
[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.