OSDN Git Service

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