OSDN Git Service

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