OSDN Git Service

/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
2
3         Merge from csl-arm-branch:
4         2005-09-07  Paul Brook  <paul@codesourcery.com>
5         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
6         space to string.
7
8         2005-04-30  Paul Brook  <paul@codesourcery.com>
9         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
10         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
11
12         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
13         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
14         (arm_override_options): Use TARGET_AAPCS_BASED.
15         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
16         (PTRDIFF_TYPE): Use int for AAPCS.
17         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
18         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
19         (DEFAULT_SHORT_ENUMS): Delete.
20         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
21
22         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
23         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
24         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
25         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
26
27         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
28         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
29
30         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
31         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
32  
33         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
34         * config.gcc (arm*-*-linux-gnueabi): Add it.
35         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
36         redefining it.
37         (TARGET_OS_CPP_BUILTINS): Likeiwse.
38         * config/arm/linux-eabi.h: New file.
39         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
40         (LINUX_TARET_LINK_SPEC): Likewise.
41         (LINK_SPEC): Use it.
42         * config/arm/t-linux-eabi: New file.
43
44 2005-10-08  Steven Bosscher  <stevenb@suse.de>
45
46         PR other/22202
47         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
48         spaces.
49         (PARAM_SMS_DFA_HISTORY): Likewise.
50
51 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
52
53         PR middle-end/23150
54         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
55         (load_register_parameters): Call it.
56         (check_sibcall_argument_overlap_1): Likewise.
57         (store_one_arg): Likewise.
58
59 2005-10-07  James E. Wilson  <wilson@specifix.com>
60
61         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
62         DImode not VECINT24 for operand 2.
63
64         PR target/23644
65         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
66         -mtune-arch.
67
68         PR target/24193
69         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
70         fr_spill): Use destination_operand for operand 0.
71
72 2005-10-07  DJ Delorie  <dj@redhat.com>
73
74         * varasm.c (output_constant): Limit error to expanding
75         conversions.
76
77 2005-10-07  Richard Guenther  <rguenther@suse.de>
78
79         PR middle-end/24227
80         * fold-const.c (fold_binary): Fix operand types during folding
81         of X op (A, Y).  Evaluation order of the side-effects of
82         X and A are frontend-defined, so ensure we honour that even for
83         tcc_comparison class operands; eased by removing duplicate code.
84
85 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
86
87         * stor-layout.c (layout_type): Do not allow alignment of array
88         elements to be greater than their size.
89
90 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
91
92         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
93         host_xmake_file.
94         (hppa*-*-linux*): Ditto.
95         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
96         * config/host-hpux.c: New.
97         * config/x-hpux: New.
98         * config/pa/x-hpux: Remove.
99         * config/pa/x-linux: Remove.
100         * config/pa/pa-host.c: Remove.
101
102 2005-10-07  Jeff Law  <law@redhat.com>
103
104         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
105         determine whether or not to try and thread outgoing edges.
106
107 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
108
109         * config/rs6000/rs6000.md (eqsi_power): New.
110         (neg_eq0si): Add TARGET_POWER to final condition.
111         (neg_eqsi): Same.
112
113 2005-10-06  Richard Henderson  <rth@redhat.com>
114
115         * config/rs6000/rs6000.c: Revert last change.
116
117 2005-10-06  Richard Henderson  <rth@redhat.com>
118
119         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
120         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
121
122 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
123
124         PR middle-end/22216
125         PR middle-end/23651
126         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
127         out return_label and naked_return_label.
128
129 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
130         
131         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
132         change.
133
134 2005-10-06  Richard Henderson  <rth@redhat.com>
135
136         PR tree-opt/22237
137         * tree-inline.c (declare_return_variable): Handle modify_dest not
138         being a DECL.
139
140 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
141         
142         Fix PR tree-optimization/22488
143         * tree-ssa-structalias.c (check_for_overlaps): New function.
144         (create_variable_info_for): Use it.
145
146 2005-10-06  Richard Henderson  <rth@redhat.com>
147
148         PR debug/24070
149         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
150         (dwarf2out_start_source_file): Print it.
151
152 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
153
154         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
155
156 2005-10-06  Richard Henderson  <rth@redhat.com>
157
158         PR 23706
159         * mode-switching.c (optimize_mode_switching): Clear transp bit
160         for block with incomming abnormal edges.
161
162         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
163         (fpscr_set_from_mem): Use them.
164         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
165         (fpscr postinc splitters): Rewrite as peephole2+split.
166
167 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
168
169         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
170         (eq<mode>_compare): Same.
171
172 2005-10-06  Richard Guenther  <rguenther@suse.de>
173
174         PR tree-optimization/24238
175         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
176
177 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
178
179         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
180         here.  Use AC_PATH_PROG for environment variables instead of
181         test -x.
182         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
183         objdump also.
184         * configure: Regenerated.
185
186 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
187
188         PR target/23783
189         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
190         then force it into a register.
191         (call_value): Likewise.
192
193 2005-10-06  Richard Henderson  <rth@redhat.com>
194
195         PR 24049
196         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
197         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
198         under pass_vectorize.
199
200 2005-10-05  Devang Patel  <dpatel@apple.com>
201
202         PR Debug/23205
203         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
204         handling constants. Check NAMESPACE_DECL context for constants.
205         
206 2005-10-05  Eric Christopher  <echristo@apple.com>
207
208         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
209
210 2005-10-05  Richard Henderson  <rth@redhat.com>
211
212         PR 23714
213         * tree-cfg.c (mark_array_ref_addressable_1): New.
214         (mark_array_ref_addressable): New.
215         * tree-flow.h (mark_array_ref_addressable): Declare.
216         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
217
218 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
219
220         PR middle-end/20606
221         PR middle-end/24069
222         * reload.c (subst_reloads): When adding a REG_LABEL to a
223         jump instruction, also update JUMP_LABEL.
224
225 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
226
227         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
228         * bb-reorder.c (copy_bb_p): Use it.
229         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
230
231 2005-10-05  Richard Henderson  <rth@redhat.com>
232
233         PR target/23602
234         * toplev.c (process_options): Warn about unsupported combinations
235         of unwind tables and omit-frame-pointer.
236         * config/i386/i386.c (override_options): Similarly.  Enable
237         accumulate-outgoing-args if not explicitly disabled.
238
239 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
240
241         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
242         Handle big endian vs. small endian.
243         (vec_initv2sf): Handle big endian vs. small endian.
244         (*vec_extractv2sf_1): Ditto.
245
246 2005-10-05  Dale Johannesen  <dalej@apple.com>
247
248         * convert.c (convert_to_real):  Don't convert
249         (float)floor(double d) to floorf((float)d).
250
251 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
252
253         * config/arm/arm.md (insv): Use gen_int_mode in more places.
254
255 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
256
257         PR tree-optimization/18587
258         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
259         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
260         build_vuses): Change to VEC type.
261         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
262         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
263         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
264         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
265         (get_name_decl): New.  Return DECL_UID of base variable.
266         (operand_build_cmp): New.  qsort comparison routine.
267         (operand_build_sort_virtual): New.  Sort virtual build vector.
268         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
269         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
270         (FINALIZE_BASE): Use get_name_decl.
271         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
272         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
273         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
274         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
275         direct VEC_* manipulations.
276         (build_ssa_operands): Call operand_build_sort_virtual.
277         (copy_virtual_operand, create_ssa_artficial_load_stmt,
278         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
279         with direct VEC_* manipulations.
280         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
281         with direct VEC manipulations.
282
283 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
284
285         PR tree-optimization/21419
286         PR tree-optimization/24146
287         PR tree-optimization/24151
288
289         * c-typeck.c (readonly_error): Handle USE being lv_asm.
290         (build_asm_expr): Call it if outputs are read-only.
291         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
292
293 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
294             Paolo Bonzini  <bonzini@gnu.org>
295
296         PR target/23809
297
298         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
299         enable the instructions and not just the built-ins.
300         * doc/invoke.texi (x86 Options): Likewise.
301
302 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
303
304         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
305
306         * doc/invoke.texi (Option Summary): Correct spelling
307         of -mmacosx-version-min.
308
309 2005-10-04  Devang Patel  <dpatel@apple.com>
310
311         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
312         real types.
313
314 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
315
316         * tree-vect-transform.c (vect_create_epilog_for_reduction):
317         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
318
319 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
320
321         * config/s390/s390.md ("TDSI","DP"): New mode macros.
322         ("TE","tg"): New mode attributes.
323         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
324         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
325         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
326         dword_mode and one for GPRmode.
327
328 2005-10-04  Ian Lance Taylor  <ian@airs.com>
329
330         PR preprocessor/13726
331         * c-ppoutput.c (cb_include): Add comments parameter, and print out
332         any comments passed in.
333
334 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
335
336         * tree.c (annotate_with_file_line): Fix typo.
337
338 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
339
340         PR ada/19382
341         * builtins.c (fold_builtin_memcmp): When constructing the pointer
342         type used to access data in the inlined length == 1 case, use
343         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
344         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
345
346 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
347
348         * config/i386/i386.h (TARGET_FISTTP): Enable also for
349         TARGET_SSE3 and only for TARGET_80387.
350         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
351         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
352         Do not depend on TARGET_80387.
353
354 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
355
356         * tree.c (last_annotated_node): Change type to location_t*.
357         (annotate_with_file_line): Reflect the change of
358         last_annotated_node type.
359
360 2005-10-04  Richard Guenther  <rguenther@suse.de>
361
362         PR c/23576
363         * c-decl.c (grokdeclarator): Don't write to fields
364         of error_mark_node.
365
366 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
367
368         PR middle-end/23125
369         * c-decl.c (finish_decl): Use set_user_assembler_name even for
370         register variables.
371         * varasm.c (make_decl_rtl): If a register variable does not
372         have a set user assmbler name, error out.
373         Decode the asmspec is now name+1 bypassing '*'.
374
375 2005-10-04  Steven Bosscher  <stevenb@suse.de>
376
377         PR tree-optimization/23049
378         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
379         of a COND_EXPR is folded before calling fold on the whole rhs of a
380         conditional assignment.
381         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
382         document that a COND_EXPR may appear there.
383
384 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
385
386         PR 23445
387         * tree-vrp.c (extract_range_from_assert): If the new numeric
388         range created out of the assertion contradicts the existing
389         numeric range of the ASSERT_EXPR variable, make the new range
390         varying.
391
392 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
393
394         * config/sh/sh.c (sh_register_move_cost): Add case for moving
395         from T_REGS to FP register class.
396
397 2005-10-03  Richard Henderson  <rth@redhat.com>
398
399         PR 24135
400         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
401         before creating a new one.
402
403 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
404
405         * config/rs6000/t-aix43 (LDFLAGS): New.
406         * config/rs6000/t-aix52 (LDFLAGS): New.
407
408 2005-10-03  Ian Lance Taylor  <ian@airs.com>
409
410         * gimplify.c (find_single_pointer_decl_1): New static function.
411         (find_single_pointer_decl): New static function.
412         (internal_get_tmp_var): For a formal variable, set restrict base
413         information if appropriate.
414         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
415         return it.
416         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
417         (DECL_GET_RESTRICT_BASE): Define.
418         (SET_DECL_RESTRICT_BASE): Define.
419         (decl_restrict_base_lookup): Declare.
420         (decl_restrict_base_insert): Declare.
421         (struct tree_decl_with_vis): Add based_on_restrict_p field.
422         * tree.c (restrict_base_for_decl): New static variable.
423         (init_ttree): Initialize restrict_base_for_decl.
424         (copy_node_stat): Copy restrict base information.
425         (decl_restrict_base_lookup): New function.
426         (decl_restrict_base_insert): New function.
427         (print_restrict_base_statistics): New static function.
428         (dump_tree_statistics): Call print_restrict_base_statistics.
429
430 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
431
432         PR 24142
433         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
434         case of anti-ranges.
435
436 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
437
438         PR c/18851
439         * c-typeck.c (tagged_tu_seen): Rename to ...
440         (tagged_tu_seen_cache): this and add val field.
441         (comptypes): Move functional to comptypes_internal
442         and free tagged_tu_seen.
443         (comptypes_internal): New function and call comptypes_internal
444         instead of comptypes. Speed up by sibcalling
445         tagged_types_tu_compatible_p.
446         (alloc_tagged_tu_seen): New function
447         (free_all_tagged_tu_seen_up_to): New function.
448         (tagged_types_tu_compatible_p): Return the val of the seen two
449         types.
450         Add that the two types are the same to tagged_tu_seen_base
451         if they are and call comptypes_internal instead of comptypes.
452         <case UNION_TYPE>: Speed up common type where the fields are
453         in the same order.
454         (function_types_compatible_p): Call comptypes_internal instead of
455         comptypes.
456         (type_lists_compatible_p): Likewise.
457         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
458
459 2005-10-02  Matthias Klose  <doko@debian.org>
460
461         * doc/invoke.texi: Fix typo and speling error.
462
463 2005-10-01  Richard Henderson  <rth@redhat.com>
464
465         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
466
467 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
468
469         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
470         using --start-group and --end-group.
471
472 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
473
474         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
475         FIXME note regarding quirky semantics.
476
477 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
478
479         PR 24141
480         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
481         non-null range as a last resort.
482
483 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
484             Diego Novillo  <dnovillo@redhat.com>
485
486         PR 23604
487         * tree-vrp.c (extract_range_from_assert): For !=
488         assertions, only build an anti-range if LIMIT is a
489         single-valued range.
490
491 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
492
493         * arm.md (movqi): On thumb when optimizing, handle loading from
494         memory by describing this as taking a subreg of a zero-extended load
495         into an SImode register.
496         (movhi): Likewise.
497
498 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
499
500         * reload1.c (merge_assigned_reloads): Do not change any
501         RELOAD_FOR_OUTPUT_ADDRESS reloads.
502
503 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
504
505         * Makefile.in (LIPO_FOR_TARGET): Define.
506         (STRIP_FOR_TARGET): Define.
507
508         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
509         before creating new ones.  Do symlinks before creating the actual
510         targets.
511
512         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
513         to work out which multilibs are actually being built.
514
515 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
516
517         * tree-vect-transform.c, config/ms1/ms1.md,
518         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
519         Follow spelling conventions.
520         * doc/invoke.texi, doc/md.texi: Fix typos.
521
522 2005-09-30  Andrew Macleod  <amacleod@redat.com>
523
524         PR tree-optimization/21430
525         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
526         use operands, and set stmt pointer if need be.
527         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
528         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
529         present.
530
531 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
532
533         PR middle-end/24053
534         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
535
536 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
537
538         * optabs.c (expand_binop): Initialize first_pass_p.
539
540 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
541
542         PR middle-end/24109
543         * c-decl.c (c_write_global_declarations_1): If any
544         wrapup_global_declaration_2 call returned true, restart the loop.
545
546 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
547
548         Fix PR tree-optimization/24117
549         * tree-ssa-structalias.c (find_func_aliases): Strip nops
550         before considering whether to use anyoffset.
551
552 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
553
554         Revert this patch:
555
556         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
557
558         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
559         to order operands.
560         (swap_commutative_operands_with_target): New.
561
562 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
563
564         PR c/21419
565         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
566         read-only.
567
568 2005-09-29  Steven Bosscher  <stevenb@suse.de>
569
570         PR tree-optimization/23911
571         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
572         and IMAGPART_EXPR too.
573
574 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
575
576         PR 17886
577         * expmed.c (expand_shift): Move logic to reverse rotation
578         direction when  rotating by constants ...
579         * optabs.c (expand_binop): ... here.
580         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
581         (ix86_rotrdi3): New pattern.
582         (rotldi3): Handle 32-bit mode.
583         (ix86_rotldi3): New pattern.
584
585 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
586
587         PR target/24102
588         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
589         check for numbers that need no bit twiddle.
590
591 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
592
593         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
594         multilib to be built.
595
596         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
597         (stage1-start): Delete old libgcc and libunwind before moving
598         anything into the stage directory.
599         (stage2-start): Likewise.
600         (stage3-start): Likewise.
601         (stage4-start): Likewise.
602         (stageprofile-start): Likewise.
603         (stagefeedback-start): Likewise.
604         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
605         header in tm_file and CPU-specific t-darwin in tmake_file.
606         (i[34567]86-*-darwin*): Don't change tm_file.
607         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
608         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
609         shared library stub for target OS version.
610         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
611         (SHLIB_LINK): Don't make SHLIB_SOLINK.
612         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
613         (libgcc_s.%.dylib): New.
614         (LIBGCC): Define.
615         (install-darwin-libgcc-stubs): New.
616         (INSTALL_LIBGCC): New append.
617         * config/i386/darwin-libgcc.10.4.ver: New.
618         * config/i386/darwin-libgcc.10.5.ver: New.
619         * config/i386/t-darwin: New.
620         * config/rs6000/darwin-libgcc.10.4.ver: New.
621         * config/rs6000/darwin-libgcc.10.5.ver: New.
622         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
623         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
624
625 2005-09-28  Paul Brook  <paul@codesourcery.com>
626
627         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
628         denormals.
629
630 2005-09-28  Richard Guenther  <rguenther@suse.de>
631
632         PR tree-optimization/23853
633         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
634         host_integerp to verify misalignment value.
635
636 2005-09-28  Richard Henderson  <rth@redhat.com>
637
638         * builtins.c (get_builtin_sync_mode): New.
639         (expand_builtin_sync_operation): Pass in mode argument.
640         (expand_builtin_compare_and_swap): Likewise.
641         (expand_builtin_lock_test_and_set): Likewise.
642         (expand_builtin_lock_release): Likewise.
643         (expand_builtin): Update to match.
644
645 2005-09-28  Nick Clifton  <nickc@redhat.com>
646
647         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
648         formatting.  Add check to PLUS case to ensure that the offset is
649         within an acceptable range.
650
651         * config/v850/v850.md (casesi): Disable the generation of the
652         switch pattern as it is not being handled properly at the moment.
653
654         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
655         for when the high words are identical.
656
657 2005-09-27  Richard Henderson  <rth@redhat.com>
658
659         * pretty-print.c (pp_base_format): Fix typo for %>.
660
661 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
662             Devang Patel  <dpatel@apple.com>
663
664         PR tree-optimization/23625
665         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
666         LABEL_EXPR, assertion check.
667
668 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
669
670         * optabs.c (no_conflict_move_test): Check if a result of a
671         to-be-moved insn would be clobbered by an originally
672         preceding insn.
673
674 2005-09-27  Jeff Law  <law@redhat.com>
675
676         * passes.c (init_optimization_passes): Replace copy propagation
677         passes immediately after DOM with phi-only copy propagation
678         pases.  Add phi-only copy propagation pass after first DOM pass.
679         * tree-pass.h (pass_phi_only_copy_prop): Declare.
680         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
681         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
682         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
683         to init_copy_prop.  Callers updated.
684         (do_phi_only_copy_prop): New function.
685         (pass_phi_only_copy_prop): New pass descriptor.
686
687 2005-09-27  Nick Clifton  <nickc@redhat.com>
688
689         * libgcc2.c (__popcount_tab): Remove redundant prototype.
690
691 2005-09-26  Jason Merrill  <jason@redhat.com>
692
693         PR c++/13764
694         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
695
696         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
697
698 2005-09-26  James E Wilson  <wilson@specifix.com>
699
700         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
701         copyright.  Add gcc copyright plus libgcc exception.
702         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
703         copyright.
704         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
705
706 2005-09-26  Jeff Law  <law@redhat.com>
707
708         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
709         about when to iterate.
710
711 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
712
713         PR target/23847
714         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
715         for __complex__ double in -mcpu=G5 mode.
716
717 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
718
719         PR tree-optimization/23942
720         * Makefile.in (SCEV_H): Depends on PARAMS_H.
721         * tree-scalar-evolution.c: Include params.h.
722         (t_bool): New enum.
723         (follow_ssa_edge, follow_ssa_edge_in_rhs,
724         follow_ssa_edge_in_condition_phi_branch,
725         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
726         Change return type to t_bool.  Use a parameter to limit the size of
727         trees that are walked before stopping
728         (analyze_evolution_in_loop): Initialize the limit to 0.
729         (follow_ssa_edge): Give up by returning t_dont_know if the limit
730         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
731
732 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
733
734         PR middle-end/23831
735         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
736         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
737
738 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
739
740         * combine.c (make_extraction): Check for valid use of subreg.
741
742 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
743
744         PR target/24055
745         * config/i386/i386.md ("*fistdi2_1"): New pattern.
746         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
747         ("fist<mode>2_with_temp"): Use only register operands.
748
749 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
750
751         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
752         CALL_INSN_FUNCTION_USAGE.
753
754 2005-09-26  Richard Guenther  <rguenther@suse.de>
755
756         PR middle-end/15855
757         * gcse.c: Include hashtab.h, define ldst entry hashtable.
758         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
759         (ldst_entry): Use the hashtable instead of list-walking.
760         (find_rtx_in_ldst): Likewise.
761         (free_ldst_entry): Free the hashtable.
762         (compute_ld_motion_mems): Create the hashtable.
763         (trim_ld_motion_mems): Remove entry from hashtable if
764         removing it from list.
765         (compute_store_table): Likewise^2.
766         (store_motion): Free hashtable in case we did not see
767         any stores.
768
769 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
770
771         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
772         and arg1 if we are passing them to fold_build2.
773
774 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
775
776         PR 23828
777         * config/i386/i386.c (ix86_function_regparm): Fix the test for
778         a nested function.
779
780 2005-09-25  Richard Henderson  <rth@redhat.com>
781
782         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
783         SYMBOL_REF_TLS_MODEL to be correct.
784
785 2005-09-24  Richard Henderson  <rth@redhat.com>
786
787         * ipa-type-escape.c (discover_unique_type): Remove dead code at
788         end of function.  Reindent.
789
790 2005-09-24  Ian Lance Taylor  <ian@airs.com>
791
792         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
793         NEGATE_EXPR/BIT_NOT_EXPR case.
794
795 2005-09-24  Richard Henderson  <rth@redhat.com>
796
797         * c-common.c (handle_mode_attribute): When not modifying in place,
798         create subtypes for enumerations.
799         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
800         * gimplify.c (create_tmp_from_val): Likewise.
801
802 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
803
804         * config/i386/i386.md (*tls_global_dynamic_64,
805         *tls_local_dynamic_base_64): Add missing mode to call.
806         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
807
808 2005-09-24  Jan Hubicka  <jh@suse.cz>
809
810         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
811         (cgraph_clone_node): Likewise.
812         * cgraph.h (cgraph_clone_edge): Update prototype.
813         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
814         duplicated prototypes; add updating argument.
815         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
816         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
817         updating profile.
818         (cgraph_mark_inline_edge): Likewise.
819         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
820         (cgraph_flatten_node): Likewise.
821         (cgraph_decide_recursive_inlining): Likewise.
822         (cgraph_decide_inlining_of_small_function): Likewise.
823         * tree-optimize.c (tree_rest_of_compilation): Likewise.
824
825 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
826             Pete Steinmetz <steinmtz@us.ibm.com>
827
828         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
829         (rldic.): Set type to "compare".
830         (rldicr.): Same.
831         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
832         mfjmpr for MFCTR/MFLR.
833         (movdf_hardfloat64): Same.
834         (movdf_softfloat64): Same.  Correct order of store and move types.
835         (movti_string): Set type to store_ux/load_ux.
836         (load_multiple): Set type to load_ux.
837         (store_multiple): Set type to store_ux.
838         (movmemsi): Set type to store_ux.
839         (output_cbranch direct_return): Set type to jmpreg.
840         (stmw): Set type to store_ux.
841         (lmw): Set type to load_ux.
842         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
843         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
844         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
845         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
846         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
847         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
848         (rios1-fpstore): Increase latency to 3.
849         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
850         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
851
852 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
853             Andrew Pinski  <pinskia@physics.uc.edu>
854
855         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
856         operand2 constraint to "b".
857         (sync_<fetchop_name>di_internal): Same.
858         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
859         to "b".
860         (sync_old_<fetchop_name>di_internal): Same.
861         (sync_new_<fetchop_name>si_internal): Same.
862         (sync_new_<fetchop_name>di_internal): Same.
863
864 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
865
866         PR middle-end/23991
867         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
868         case, define as macros.
869
870         PR rtl-optimization/23837
871         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
872         clobber / clobber match between dest and p->first.
873
874         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
875         (no_conflict_move_test): Update comments.
876
877 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
878
879         * doc/install.texi: Update URL for Jacks.
880         * doc/sourcebuild.texi: Likewise.
881
882 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
883
884         PR target/24007
885         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
886         registers when choosing register preferences.
887         (movdf_hardfloat64): Same.
888
889 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
890
891         * expmed.c (expand_shift): Don't use the target of the rotate as
892         target for the first expanded shift insn.
893         * testsuite/gcc.dg/20050922-1.c: Testcase added.
894
895 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
896
897         PR tree-optimization/22438
898         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
899         preserved iv rhs rewriting specially.
900
901 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
902
903         * tree-data-ref.c (analyze_array_indexes): Only estimate when
904         estimate_only  is true.
905         * tree-flow.h (ref_contains_indirect_ref): New prototype.
906         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
907         tree-ssa-structalias.c
908         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
909         ref_contains_indirect_ref.
910         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
911
912 2005-09-21  DJ Delorie  <dj@redhat.com>
913
914         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
915         MASK_PTR_A0D0.
916         (mn10300_return_in_memory): Support variable size types also.
917         (mn10300_pass_by_reference): Likewise.
918         (mn10300_function_value): New.
919         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
920         (FUNCTION_OUTGOING_VALUE): Likewise.
921         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
922         * doc/invoke.texi: Document it.
923
924 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
925
926         PR target/22585
927         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
928         force integer op1 into register for XFmode compares.
929
930 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
931
932         PR middle-end/23971
933         * expmed.c (alg_code): Add alg_impossible.
934         (alg_hash_entry): Add cost.
935         (synth_mult): Record alg_impossible in the hash table if
936         multiplication by a given integer is impossble within the
937         limit.  Speed up using alg_impossible.
938
939 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
940
941         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
942         argument.  Allow and set any offset if needs_anyoffset is passed
943         in.
944         (get_constraint_for): Add argument here too.
945         Pass it down.
946         (do_structure_copy): Pass NULL to get_constraint_for.
947         (handle_ptr_arith): Ditto.
948         (find_func_aliases): Ditto.
949
950 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
951
952         PR rtl-optimization/23898
953         * output.h (get_attr_min_length): Declare.
954         * final.c (get_attr_length_1): New function, broken out of:
955         (get_attr_length).
956         (get_attr_min_length): New function.
957         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
958         (duplicate_computed_gotos): Likewise.
959         * genattr.c (insn_min_length): Generate declaration.
960         * genattrtab.c (min_fn, min_attr_value): New functions.
961         (make_length_attrs): Generate insn_min_length.
962
963 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
964
965         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
966
967 2005-09-20  Richard Henderson  <rth@redhat.com>
968
969         PR tree-optimization/24059
970         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
971         EXPAND_STACK_PARM.
972
973 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
974
975         * c.opt (fextended-identifiers): New.
976         * c-opts.c (c_common_handle_option): Handle
977         -fextended-identifiers.
978         * doc/cpp.texi: Update documentation of extended identifiers.
979         * doc/cppopts.texi (-fextended-identifiers): Document.
980
981 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
982
983         PR tree-optimization/23929
984         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
985         if expr is NULL.
986
987         PR tree-optimization/23818
988         * tree-stdarg.c (execute_optimize_stdarg): Call
989         calculate_dominance_info.
990
991 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
992
993         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
994         (analyze_siv_subscript_cst_affine): Add weak SIV test.
995         (compute_overlap_steps_for_affine_1_2): Use
996         get_number_of_iters_for_loop.
997         (analyze_subscript_affine_affine): Check whether difference is
998         zero first.
999         Use get_number_of_iters_for_loop.
1000         Check whether overlap occurs outside of bounds.
1001         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
1002
1003 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
1004
1005         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
1006         base register if possible.
1007
1008 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
1009
1010         PR tree-optimization/18463
1011         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
1012         converting it directly is not possible.
1013         (chrec_convert_aggressive): New function.
1014         * tree-chrec.h (chrec_convert_aggressive): Declare.
1015         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
1016         Fold chrec conversions aggressively if asked to.
1017         (instantiate_parameters): Modified because of changes in
1018         instantiate_parameters_1.
1019
1020 2005-09-19  Richard Henderson  <rth@redhat.com>
1021
1022         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
1023         (reduc_splus_v2df): New.
1024
1025 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
1026
1027         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
1028         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
1029
1030 2005-09-19  Richard Henderson  <rth@redhat.com>
1031
1032         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
1033         vcondu<SSEMODE12>.
1034
1035 2005-09-19  Richard Henderson  <rth@redhat.com>
1036
1037         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
1038         (ia64_expand_dot_prod_v8qi): New.
1039         * config/ia64/ia64-protos.h: Update.
1040         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
1041         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
1042         sdot_prodv8qi, sdot_prodv4hi): New.
1043         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
1044
1045 2005-09-19  Richard Henderson  <rth@redhat.com>
1046
1047         PR 23941
1048         * real.c (exact_real_truncate): Return false if the format cannot
1049         represent the number as a normal.
1050
1051         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
1052         for a memory source.
1053
1054 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
1055
1056         * tree-ssa-operands.c (swap_tree_operands): Export.
1057         * tree.h (swap_tree_operands): Declare.
1058         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
1059         Call swap_tree_operands.
1060
1061 2005-09-19  Richard Henderson  <rth@redhat.com>
1062
1063         * tree-flow.h (merge_alias_info): Declare.
1064         * tree-ssa-copy.c (merge_alias_info): Export.
1065         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
1066         (vect_create_data_ref_ptr): Use create_iv directly.
1067         (vectorizable_load): Use correct types for integer constants.
1068         (vect_generate_tmps_on_preheader): Likewise.
1069         (vect_gen_niters_for_prolog_loop): Likewise.
1070
1071 2005-09-19  Steven Bosscher  <stevenb@suse.de>
1072
1073         PR rtl-optimization/23943
1074         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
1075
1076 2005-09-18  Jan Hubicka  <jh@suse.cz>
1077
1078         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
1079
1080 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
1081
1082         * varasm.c (output_constant): Do not abort on conversions to union
1083         types between different sizes.
1084
1085 2005-09-18  Richard Guenther  <rguenther@suse.de>
1086
1087         PR middle-end/23944
1088         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
1089         fallback.
1090
1091 2005-09-18  Paul Brook  <paul@codesourcery.com>
1092
1093         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
1094
1095 2005-09-17  Richard Henderson  <rth@redhat.com>
1096
1097         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
1098         * tree-ssa-loop.c (pass_vect_dce): Remove.
1099         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
1100         of pass_vectorize.
1101
1102 2005-09-17  Richard Henderson  <rth@redhat.com>
1103
1104         * tree-pass.h (pass_vect_dce): Declare.
1105         * passes.c (init_optimization_passes): Add it.
1106         * tree-flow.h (tree_ssa_dce): Declare.
1107         * tree-ssa-dce.c (tree_ssa_dce): Export.
1108         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
1109         (gate_tree_vectorize): ... here.
1110         (pass_vect_dce): New.
1111
1112 2005-09-17  Jan Hubicka  <jh@suse.cz>
1113
1114         * except.c (struct eh_status): Turn region_array into vec.
1115         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
1116         convert_from_eh_region_ranges, find_exception_handler_labels,
1117         current_function_has_exception_handlers, assign_filter_values,
1118         build_post_landing_pads, dw2_build_landing_pads,
1119         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
1120         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
1121         foreach_reachable_handler, can_throw_internal_1,
1122         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
1123         region_array.
1124         (duplicate_eh_region_1): Update region_array.
1125         (duplicate_eh_regions): Resize region_array and avoid recomputing.
1126
1127 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
1128
1129         PR middle-end/22067
1130         * expmed.c (expand_mult): Substitute simple register for op0 when
1131         computing max_cost.
1132
1133 2005-09-17  Richard Henderson  <rth@redhat.com>
1134
1135         * expr.c (emit_move_via_integer): Add force argument, pass it on
1136         to emit_move_change_mode.  Update callers.
1137         (emit_move_complex): Pass true to new force argument.
1138         * function.c (expand_function_end): Move expand_eh_return call
1139         earlier.  Merge sub-word complex values into a pseudo before
1140         copying to the return hard register.
1141
1142 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
1143
1144         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
1145         between different sizes.
1146
1147 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
1148
1149         PR 23903
1150
1151         * passes.c (init_optimization_passes): Register dump files for
1152         IPA passes first.
1153
1154 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
1155
1156         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
1157         * config/s390/s390.c (s390_overlap_p): New function.
1158         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
1159         peephole2, "*xc" peephole2): Added overlap check to the peephole2
1160         condition.
1161
1162 2005-09-16  Richard Guenther  <rguenther@suse.de>
1163
1164         * ipa-pure-const.c (static_execute): Free auxiliar information.
1165         * ipa-type-escape.c (discover_unique_type): Free temporary key.
1166         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
1167
1168 2005-09-15  DJ Delorie  <dj@redhat.com>
1169
1170         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
1171
1172 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
1173
1174         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
1175         to order operands.
1176         (swap_commutative_operands_with_target): New.
1177
1178 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
1179
1180         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
1181         parameter.
1182         Update callers.
1183         (estimate_iters_using_array): New function.
1184         * tree-data-ref.h (estimate_iters_using_array): Prototype
1185         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
1186         Use estimate_iters_using_array instead of analyze_array.
1187
1188 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
1189
1190         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
1191         as addressable.
1192
1193 2005-09-15  Michael Matz  <matz@suse.de>
1194
1195         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
1196
1197 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
1198
1199         PR tree-optimization/23835
1200         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
1201         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
1202
1203 2005-09-14  Richard Henderson  <rth@redhat.com>
1204
1205         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
1206         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
1207
1208 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
1209
1210         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
1211         in the ARRAY_TYPE case.
1212
1213 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
1214
1215         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
1216
1217 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
1218
1219         PR middle-end/22480
1220         * tree-vect-transform.c (vectorizable_operation): Return false for
1221         scalar shift operations and for vector shift operations with
1222         non-invariant shift arguments.  Use scalar tree operand op1 as
1223         a shift operand when vector shift insn pattern uses scalar shift
1224         operand.
1225         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
1226
1227 2005-09-14  Olivier Hainque  <hainque@adacore.com>
1228
1229         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
1230         value if it has side-effects.
1231
1232 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
1233
1234         PR target/22068
1235         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
1236
1237 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
1238
1239         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
1240         passed as NAME as if it were label at start of function code.
1241
1242 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1243
1244         * config/sh/sh.md (*movv4sf_i): Add general register cases to
1245         the constraints.
1246
1247 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
1248
1249         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
1250         as early clobber.  Rewrite so the PIC register is not implicitly used.
1251
1252 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1253
1254         * tree.c (annotate_with_file_line): Compare line numbers before
1255         file names.
1256
1257 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
1258
1259         PR target/23816
1260         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
1261         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
1262
1263 2005-09-13  Ian Lance Taylor  <ian@airs.com>
1264
1265         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
1266         than a HOST_WIDEST_INT to gen_doloop_begin.
1267
1268 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
1269
1270         * tree-dfa.c (dump_variable): Guard against NULL annotations.
1271
1272 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
1273
1274         PR tree-optimize/23817
1275         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
1276
1277 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
1278
1279         PR target/23774
1280         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
1281         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
1282         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
1283         (restore_stack_nonlocal): Likewise.
1284         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
1285
1286 2005-09-12  Ian Lance Taylor  <ian@airs.com>
1287
1288         PR g++/7874
1289         * c.opt (ffriend-injection): New C++ option.
1290         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
1291         (C++ Dialect Options): Document -ffriend-injection.
1292
1293 2005-09-12  Josh Conner  <jconner@apple.com>
1294
1295         PR middle-end/23237
1296         * ipa-reference.c (static_execute): Don't mark variables in
1297         named sections TREE_READONLY.
1298
1299 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
1300
1301         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
1302         stack_tie.
1303
1304 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
1305
1306         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
1307         V_MUST_DEF instead of just the first_use_p.
1308         Don't mark the virtual variables for renaming on the statement which
1309         is being removed.
1310         (pass_dse): Remove TODO_update_ssa.
1311
1312 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
1313
1314         PR middle-end/23290
1315         * stor-layout.c (compute_record_mode): For records with a single
1316         field, actually check the field's mode size against the type size.
1317
1318         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
1319         registers for TARGET_SHMEDIA.
1320         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
1321         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
1322         of GENERAL_REGS and FP_REGS.
1323
1324 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
1325
1326         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
1327
1328 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
1329
1330         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
1331         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
1332         are omitted.  Exclude stack_tie insn too.
1333
1334 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
1335
1336         PR rtl-optimization/23098
1337         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
1338         0.0f is easy.
1339         * config/rs6000/rs6000.md (movdf splitter): Use
1340         const_double_operand predicate for TARGET_POWERPC64.
1341         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
1342         SYMBOL_REF method to ABI_V4.
1343
1344         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
1345         replace_equiv_address.
1346         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
1347         rs6000_sr_alias_set and MEM_NOTRAP.
1348         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
1349
1350 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
1351
1352         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
1353         handle CALL_EXPR again.
1354
1355 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1356
1357         * arm/predicates.md (alignable_memory_operand): Delete.
1358
1359 2005-09-10  Richard Henderson  <rth@redhat.com>
1360
1361         PR debug/23806
1362         * dbxout.c (dbxout_expand_expr): New.
1363         (dbxout_symbol): Use it.
1364
1365 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
1366
1367         * arm.c (arm_gen_rotated_half_load): Delete.
1368         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
1369         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
1370         (thumb_set_return_address): Likewise.
1371         (thumb_load_double_from_address): Use adjust_address.
1372         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
1373         (extendhsisi2_mem, movhi_bytes): Use change_address.
1374         (movhi): Use widen_memory_access.
1375         (reload_out_df): Use replace_equiv_address.
1376         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
1377
1378 2005-09-09  Richard Henderson  <rth@redhat.com>
1379
1380         PR debug/20998
1381         * dbxout.c: Include expr.h.
1382         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
1383         (dbxout_symbol): Handle DECL_VALUE_EXPR.
1384         * Makefile.in (dbxout.o): Add EXPR_H.
1385
1386 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
1387
1388         PR tree-optimization/23509
1389         * tree-cfg.c (replace_uses_by): Use replace_exp.
1390         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
1391         pointers have name_mem_tag or type_mem_tag set.
1392
1393 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
1394
1395         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
1396         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
1397         of wrongly accessing operands.
1398
1399 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
1400
1401         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
1402         * tree-chrec.c: Include tree-scalar-evolution.h.
1403         (chrec_convert): Instantiate the base and step before calling
1404         scev_probably_wraps_p that would fail on parametric evolutions.
1405         Collect all the fails into a single section failed_to_convert,
1406         print a diagnostic, and return chrec_dont_know instead of calling
1407         fold_convert.
1408         * tree-scalar-evolution.c (loop_closed_phi_def): New.
1409         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
1410         phi nodes.
1411         (scev_const_prop): Don't replace the definition of a loop closed ssa
1412         phi node by itself, or by another loop closed ssa phi node.
1413         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
1414         that base and step are defined.
1415
1416 2005-09-09  Richard Guenther  <rguenther@suse.de>
1417
1418         PR c++/23624
1419         * fold-const.c (fold_ternary): Check truth_value_p before
1420         calling invert_truthvalue.
1421
1422 2005-09-09  Nick Clifton  <nickc@redhat.com>
1423
1424         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
1425         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
1426         dimension of these arrays.
1427         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
1428         these arrays.
1429         * longlong.h: Only provide a prototype for the __clz_tab[] array
1430         if this header has not been included from libgcc2.h.
1431         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
1432         defining own types.
1433         Provide prototypes for exported functions.
1434         Use the __clz_tab[] and __popcount_tab[] arrays provided by
1435         libgcc2.c.
1436
1437 2005-09-08  Josh Conner  <jconner@apple.com>
1438
1439         PR c++/21135
1440         PR c++/23180
1441         * expr.c (expand_expr_addr_expr_1): Don't invoke
1442         expand_simple_binop for EXPAND_INITIALIZER.
1443
1444 2005-09-08  Richard Henderson  <rth@redhat.com>
1445
1446         PR debug/23190
1447         * toplev.c (wrapup_global_declaration_1): Split out ...
1448         (wrapup_global_declaration_2): ... from ...
1449         (wrapup_global_declarations): ... here.  Return bool.
1450         (check_global_declaration_1): Split out ...
1451         (check_global_declarations): from here.
1452         (emit_debug_global_declarations): New.
1453         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
1454         check_global_declaration_1, emit_debug_global_declarations): Declare.
1455         * c-decl.c (c_write_global_declarations_1): Don't create a vector
1456         of decls.  Call wrapup_global_declaration_1,
1457         wrapup_global_declaration_2, check_global_declaration_1 directly.
1458         (c_write_global_declarations_2): New.
1459         (ext_block): New.
1460         (c_write_global_declarations): Call c_write_global_declarations_2.
1461         * langhooks.c (write_global_declarations): Call
1462         emit_debug_global_declarations.
1463
1464         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
1465         remove decls that have DECL_RTL_SET_P.
1466         * passes.c (rest_of_decl_compilation): Invoke
1467         cgraph_varpool_finalize_decl for all but functions.
1468
1469 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1470
1471         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
1472         the result of a conversion if the new min and max cannot be compared.
1473
1474 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1475
1476         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
1477         (override_options): Setting s390_sr_alias_set removed.
1478         (save_fpr, save_gprs): Set alias set to vararg or frame.
1479         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
1480         s390_sr_alias_set with get_frame_alias_set ().
1481         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
1482         get_varargs_alias_set ().
1483
1484 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
1485
1486         PR objc/20574
1487         PR objc/19324
1488         * c-parser.c (c_parser_objc_method_definition): If the next
1489         token is not "{", error out and don't start the function.
1490
1491 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
1492
1493         * tree-vrp.c (extract_range_from_expr): Move the check for non
1494         nullness after the check for gimple invariant.
1495
1496 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1497
1498         * tree.c (host_integerp, tree_low_cst): Correct function comment.
1499
1500 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1501
1502         PR target/23747
1503         * config/m32r.md (movmemsi_internal): Canonicalize order of
1504         operands in PLUS component of template.
1505
1506 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1507
1508         * reload1.c (fixup_eh_region_note): Remove assertion.
1509         (fixup_abnormal_edges): Reverted removal of call to
1510         find_many_sub_basic_blocks made on 2005-08-31.
1511
1512 2005-09-07  Richard Henderson  <rth@redhat.com>
1513
1514         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
1515         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
1516         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
1517         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
1518         rearrange for better packing.
1519         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
1520         (lookup_cfa_1): Remove inline marker.
1521         (cfa_equal_p): Split out of ...
1522         (def_cfa_1): ... here.  Use INVALID_REGNUM.
1523         (build_cfa_loc): Handle !cfa->indirect.
1524         (frame_pointer_cfa_offset): New.
1525         (dbx_reg_number): Assert register elimination performed; do
1526         leaf register remapping.
1527         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
1528         (eliminate_reg_to_offset): New.
1529         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
1530         for verifiably local stack frame addresses; re-base to CFA.
1531         (mem_loc_descriptor): Remove can_use_fbreg argument.
1532         (concat_loc_descriptor, loc_descriptor): Likewise.
1533         (containing_function_has_frame_base): Remove.
1534         (rtl_for_decl_location): Don't do register elimination or
1535         leaf register remapping here.
1536         (secname_for_decl): Split out from ..
1537         (add_location_or_const_value_attribute): ... here.
1538         (convert_cfa_to_loc_list): New.
1539         (compute_frame_pointer_to_cfa_displacement): New.
1540         (gen_subprogram_die): Use them.
1541         * tree.h (frame_base_decl): Remove.
1542         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
1543         (prologue_stack_adjust): Remove.
1544         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
1545         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
1546         (set_frame_base_location): Remove.
1547         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
1548         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
1549         (vt_add_function_parameters): Don't eliminate_regs.
1550         (vt_initialize): Don't create frame_base_decl.
1551
1552 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1553
1554         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
1555         version of GNU binutils for 4.x and later.
1556
1557 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
1558
1559         * ggc-page.c (ggc_push_context): Remove.
1560         (ggc_pop_context): Likewise.
1561         * ggc.h (ggc_push_context): Remove.
1562         (ggc_pop_context): Likewise.
1563
1564 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
1565
1566         PR target/8973
1567         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
1568         returning from an interrupt handler.
1569
1570 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
1571
1572         PR target/8972
1573         * config/arc/arc.c (output_shift): Add check for loop count when
1574         optimizing.
1575
1576 2005-09-06  Steven Bosscher  <stevenb@suse.de>
1577
1578         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
1579         form manually.
1580         (abs_replacement): Likewise.
1581         (pass_phiopt): Remove TODO_update_ssa.
1582
1583 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
1584
1585         PR c/23075
1586         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
1587         if "return with no value, in function returning non-void" warning
1588         has been issued.
1589         * tree-cfg.c (execute_warn_function_return): Don't look at
1590         RETURN_EXPRs with TREE_NO_WARNING set.
1591
1592         PR target/22362
1593         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
1594         for internal functions doesn't use registers used by global registers
1595         variables.  Use fewer register parameters if there are global register
1596         variables.
1597
1598 2005-09-06  Olivier Hainque  <hainque@adacore.com>
1599             Eric Botcazou  <ebotcazou@adacore.com>
1600
1601         PR middle-end/14997
1602         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
1603         when we would be extracting outside its bit span (bitpos+bitsize
1604         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
1605         Ada unchecked conversions.
1606
1607 2005-09-06  Steven Bosscher  <stevenb@suse.de>
1608
1609         * tree-ssa-pre.c (try_look_through_load): New function.
1610         (compute_avail): Use it to try to look through loads for some
1611         more useful expressions.
1612
1613 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
1614
1615         * simplify-rtx.c (simplify_binary_operation_1): Correct the
1616         condition for detecting cases like (a&a) and (a^a).
1617
1618 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
1619
1620         * common.opt: Add option ftree-vect-loop-version.
1621         * params.def: Add --param vect-max-version-checks.
1622         * doc/invoke.texi: Document ftree-vect-loop-version and
1623         --param vect-max-version-checks.
1624         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
1625         may_misalign_stmts and defines for accessors.
1626         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
1627         LOOP_VINFO_MAY_MISALIGN_STMTS.
1628         (destroy_loop_vec_info): VEC_free for
1629         LOOP_VINFO_MAY_MISALIGN_STMTS.
1630         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
1631         Update documentation.
1632         (vect_update_misalignment_for_peel): New.
1633         (vect_enhance_data_refs_alignment): Update to choose loop
1634         peeling or loop versioning if appropriate for the (potentially)
1635         unaligned data references in the loop.
1636         (vect_analyze_data_refs_alignment): Remove call to
1637         vect_enhance_data_refs_alignment so the checks can be done
1638         earlier.
1639         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
1640         and move up call to vect_analyze_data_refs_alignment.
1641         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
1642         (vect_transform_loop): Add call to loop_version.
1643
1644 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
1645
1646         PR rtl-optimization/23098
1647         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
1648         * simplify-rtx.c (constant_pool_reference_p): New function.
1649         * rtl.h (constant_pool_reference_p): New prototype.
1650         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
1651         constant_pool_reference_p in condition and
1652         avoid_constant_pool_reference in preparation statements.
1653
1654 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1655
1656         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
1657         STRICT_LOW_PART SETs.
1658
1659 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
1660
1661         PR middle-end/21460
1662         * except.c (sjlj_emit_function_enter): Find the function begin
1663         note even when it's not in first basic block.
1664
1665 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
1666
1667         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
1668         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
1669         * aclocal.m4: Regenerate.
1670
1671 2005-09-05  DJ Delorie  <dj@redhat.com>
1672
1673         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
1674         of macro.
1675
1676 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
1677
1678         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
1679         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
1680         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
1681         Follow spelling conventions.
1682         * doc/invoke.texi: Follow spelling conventions.
1683
1684 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
1685
1686         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
1687         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
1688         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
1689
1690 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
1691
1692         PR target/23683
1693         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
1694         (output_stack_adjust): Use gen_tmp_stack_mem.
1695         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
1696         (sh_set_return_address, sh_allocate_initial_value): Likewise.
1697         (sh_get_pr_initial_val): Likewise.
1698         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
1699         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
1700         * sh.md (divsi_inv_m0): Use gen_const_mem.
1701         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
1702         (movdf_i4+1): Use gen_tmp_stack_mem.
1703         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
1704         (fpu_switch+2): Likewise.
1705         (movv4sf_i, movv16sf_i): Use adjust_address.
1706         (symGOT_load): Set MEM_NOTRAP_P bit.
1707
1708 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1709
1710         PR target/23721
1711         * pa.c (emit_move_sequence): Fix typo in last change.
1712
1713 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
1714
1715         PR rtl-optimization/23454
1716         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
1717         is true.
1718
1719 2005-09-03  Richard Henderson  <rth@redhat.com>
1720             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1721
1722         PR middle-end/23671
1723         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
1724         gen_rtx_MEM.
1725
1726 2005-09-02  Nicolas Pitre <nico@cam.org>
1727
1728         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
1729         to bit_count to 32 bits.
1730
1731 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
1732
1733         PR c++/23167
1734         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
1735         generating synthetic loads from volatile lvalues.
1736
1737 005-09-02  Nick Clifton  <nickc@redhat.com>
1738
1739         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
1740         __ctzhi2, __clzhi2): New functions.
1741
1742 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
1743
1744         PR middle-end/23547
1745         * tree-nested.c (struct var_map_elt): Mark with GTY.
1746         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
1747         var_map_elt.
1748         (lookup_field_for_decl): Allocate new element in GC memory.
1749         (lookup_tramp_for_decl): Likewise.
1750         (convert_nl_goto_reference): Likewise
1751         (create_nesting_tree): Allocate info in GC memory. Likewise for
1752         info->var_map.
1753         (free_nesting_tree): Free with ggc_free instead of free.
1754         (root): New static variable.
1755         (lower_nested_functions): Remove root as local variable.  And zero out
1756         root at the end of the function.
1757
1758 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
1759
1760         PR rtl-optimization/20365
1761         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
1762         to short.  New member ix.
1763         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
1764         (simplify_plus_minus): Initialize ix members before calling qsort.
1765
1766 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
1767
1768         PR tree-optimization/23626
1769         * tree-cfg.c (replace_uses_by): Clean up eh info.
1770
1771 2005-09-01  DJ Delorie  <dj@redhat.com>
1772
1773         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
1774         fprintf.
1775
1776 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
1777
1778         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
1779         (rs6000_split_multireg_move): Use replace_equiv_address instead of
1780         gen_rtx_MEM.
1781
1782 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1783
1784         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
1785         do not issue warning for a variable definition following
1786         a declaration.
1787
1788 2005-09-01  Richard Henderson  <rth@redhat.com>
1789
1790         PR 23668
1791         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
1792         conversion to CONST_VECTOR.
1793
1794 2005-09-01  Richard Henderson  <rth@redhat.com>
1795
1796         PR 23676
1797         * reload1.c (reload_as_needed): Check !CALL_P before calling
1798         fixup_eh_region_note.
1799         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
1800
1801 2005-09-01  DJ Delorie  <dj@redhat.com>
1802
1803         * varasm.c (output_constant): Let the target resolve
1804         conversions of addresses to non-default pointer sizes.
1805
1806 2005-09-01  Nicolas Pitre <nico@cam.org>
1807
1808         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
1809         to alow matching ARM pre-indexed addressing mode.
1810         (arm_override_options): Remove now irrelevant comment.
1811
1812 2005-09-01  Phil Edwards  <phil@codesourcery.com>
1813
1814         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
1815         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
1816         * config/i386/vxworks.h:  Likewise.
1817         * config/i386/t-vxworksae:  New file, for VxWorks AE.
1818         * config/i386/vxworksae.h:  Likewise.
1819
1820 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
1821
1822         PR tree-optimization/23410
1823         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
1824         sequence is not wrapping during the first step.
1825
1826 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
1827
1828         PR debug/7241
1829         * dwarf2out.c (base_type_die): Compare char_type_node with
1830         TYPE_MAIN_VARIANT (type), not type.
1831
1832 2005-09-01  Richard Guenther  <rguenther@suse.de>
1833
1834         PR tree-optimization/15366
1835         * common.opt: Add -finline-functions-called-once.
1836         Put -fearly-inlining in alphabetically ordered place.
1837         * doc/invoke.texi: Document new option.
1838         * ipa-inline.c (cgraph_decide_inlining): Honour
1839         flag_inline_functions_called_once.
1840
1841 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
1842
1843         PR rtl-optimization/23478
1844         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
1845         (alloc_qty): Initialize it.
1846         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
1847         (combine_regs): Combine also n_throwing_calls_crossed fields.
1848         (find_free_reg): Don't attempt to caller-save pseudos crossing
1849         calls that might throw.
1850         * global.c (struct allocno): Add throwing_calls_crossed field.
1851         (global_alloc): Revert 2005-08-22 change.  Initialize
1852         throwing_calls_crossed.
1853         (find_reg): Don't attempt to caller-save pseudos crossing calls that
1854         might throw.
1855
1856 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
1857
1858         PR target/23649
1859         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
1860         (mask64_operand): Reinstate code prior to 2005-06-11 change.
1861         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
1862         (and64_2_operand): Tweak to use predicate.
1863         (and_operand): Adjust for mask_operand changes.
1864         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
1865         (print_operand): Likewise.
1866         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
1867         (mask64_1or2_operand): Delete.
1868         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
1869         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
1870         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
1871         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
1872         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
1873         (rotldi3_internal4): Likewise.
1874         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
1875         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
1876         (ashldi3_internal7): Likewise.
1877         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
1878         (ashldi3_internal, ashldi3_internal9 split): Likewise.
1879         (anddi3 split): Don't match mask64_operand.
1880         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
1881         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
1882         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
1883         't' splitter predicate.
1884         (movdi_internal64 + 2): Revert 2005-06-11 change.
1885
1886 2005-08-31  DJ Delorie  <dj@redhat.com>
1887
1888         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
1889         (m32c_asm_integer): Add support for 32 bit pointers.
1890
1891 2005-08-31  Richard Henderson  <rth@redhat.com>
1892
1893         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
1894         component-like references for setting MEM_NOTRAP_P.
1895
1896         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
1897         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
1898
1899 2005-08-31  Richard Henderson  <rth@redhat.com>
1900
1901         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
1902         into a pseudo before applying gen_lowpart.
1903
1904 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
1905
1906         * doc/install.texi (Specific): Update cctools version required
1907         for full functionality.
1908         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
1909         linkers as -macosx_version_min.
1910
1911 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
1912
1913         PR target/21255
1914         * sh.c (print_operand, %R and %S): Add handling of floating point
1915         registers, memory, constants and invalid operands.
1916
1917 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
1918
1919         * ipa-pure-const.c: Change dump name.
1920
1921 2005-08-31 Uros Bizjak <uros@kss-loka.si>
1922
1923         PR target/23570
1924         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
1925         to "reg_or_0_operand".
1926         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
1927
1928 2005-08-31  Dale Johannesen  <dalej@apple.com>
1929
1930         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
1931         loops that count down.
1932
1933 2005-08-31  Richard Henderson  <rth@redhat.com>
1934
1935         PR rtl-opt/23601
1936         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
1937         (fixup_eh_region_note): New.
1938         (reload_as_needed): Call it.
1939         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
1940         don't call find_many_sub_basic_blocks; call verify_flow_info.
1941         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
1942         (keep_stack_depressed): Likewise.
1943         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
1944
1945 2005-08-31  Richard Henderson  <rth@redhat.com>
1946
1947         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
1948         fp return matching.
1949
1950 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
1951
1952         * expr.c (expand_expr_real_1): Compare size of address
1953         mode to target's address mode size in deciding expansion of
1954         the constant address.
1955
1956 2005-08-31  Richard Guenther  <rguenther@suse.de>
1957
1958         PR middle-end/23477
1959         * expr.c (all_zeros_p): New function.
1960         (expand_expr_real_1): Handle the case of an all-zero
1961         non-addressable constructor separately.
1962
1963 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
1964
1965         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
1966         arguments, adjust all callers.
1967         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
1968
1969 2005-08-30  Richard Henderson  <rth@redhat.com>
1970
1971         PR target/23630
1972         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
1973         whenever the mode sizes match.
1974
1975 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
1976
1977         * calls.c (load_register_parameters): Fix comment typo.
1978         * expr.c (emit_push_insn): Comment formatting.
1979
1980 2005-08-30  Ian Lance Taylor  <ian@airs.com>
1981
1982         * config/i386/x-cygwin (host-cygwin): Change dependency from
1983         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
1984
1985 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
1986
1987         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
1988         parts of 'vals'.
1989
1990 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
1991
1992         PR middle-end/23408
1993         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
1994         call to ggc_collect.
1995
1996 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
1997
1998         PR bootstrap/21268
1999         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
2000         beginning.  Remove $(INCLUDES) from all the rules, if following
2001         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
2002
2003 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
2004
2005         PR middle-end/23484
2006         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
2007         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
2008         not constant, but maxlen is, don't set len to maxlen, rather
2009         set maxlen to len if len is a constant.
2010
2011 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
2012
2013         PR tree-optimization/23475
2014         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
2015         and counts.
2016
2017 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
2018
2019         Fix PR middle-end/22455
2020
2021         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
2022         Checksum only the parts of the tree that exist for the tree code.
2023
2024 2005-08-28  Dale Johannesen  <dalej@apple.com>
2025
2026         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
2027
2028 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
2029
2030         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
2031
2032 2005-08-28  Richard Henderson  <rth@redhat.com>
2033
2034         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
2035         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
2036         of char_type_node.
2037
2038 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
2039
2040         PR ada/23593
2041         * builtins.c (get_memory_rtx): Don't strip nops
2042         in between COMPONENT_REFs.
2043
2044 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
2045
2046         PR middle-end/23463
2047         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
2048         types.
2049         (gimplify_modify_expr): Check for zero sized types and gimplify the
2050         rhs and lhs as statements.
2051
2052 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
2053
2054         PR libgcj/23508
2055         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
2056         state for return address column of signal frames.
2057
2058 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
2059
2060         PR target/23539
2061         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
2062         bytes >= 2 not bytes == 2.
2063         (expand_block_move): Same.
2064
2065 2005-08-27  Richard Guenther  <rguenther@suse.de>
2066
2067         PR target/23575
2068         * config/i386/sse.md (sse2_movsd): Add missing closing
2069         braces.
2070
2071 2005-08-27  Paul Brook  <paul@codesourcery.com>
2072
2073         * genrecog.c (enum decision_type): Add DT_num_insns.
2074         (struct decision_test): Add u.num_insns.
2075         (add_to_sequence): Add DT_num_insns test.
2076         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
2077         (write_cond, debug_decision_2): Ditto.
2078         (change_state): Assume peep2_next_insn never fails.
2079         Remove "afterward" argument.
2080         (write afterward, write_tree): Update to match.
2081         * recog.c (peep2_current_count): New variable.
2082         (peep2_next_insn): Check it.
2083         (peephole2_optimize): Set peep2_current_count.
2084         * recog.h (peep2_current_count): Declare.
2085
2086 2005-08-26  Josh Conner  <jconner@apple.com>
2087
2088         PR middle-end/23584
2089         * ipa-pure-const.c (check_tree): Check for volatile-ness
2090         when considering a dereference.
2091
2092 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
2093
2094         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
2095
2096 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
2097
2098         PR rtl-optimization/23561
2099         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
2100         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
2101         at most LEN bytes long memory fits into the field.
2102         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
2103         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
2104         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
2105
2106 2005-08-26  Richard Henderson  <rth@redhat.com>
2107
2108         PR rtl-opt/23560
2109         * loop.c (biased_biv_may_wrap_p): New.
2110         (maybe_eliminate_biv_1): Use it to suppress non-equality
2111         comparison transformations.  Delete disabled code.
2112
2113 2005-08-26  Ian Lance Taylor  <ian@airs.com>
2114
2115         * combine.c (make_extraction): Avoid reference outside object.
2116
2117 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
2118
2119         * stor-layout.c (finalize_type_size): Restore behaviour for
2120         non-aggregate types to the status quo ante of the patch for
2121         pr 23467.  Document why it matters.
2122
2123 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
2124
2125         PR c/23506
2126         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
2127         array by one element, initialize the BT_LAST element with NULL.
2128
2129 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
2130
2131         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
2132         optimizing for size.
2133         (plus_eqsi): Same.
2134         (compare_plus_eqsi): Same.
2135         (plus_eqsi_compare): Same.
2136         (neg_eq0<mode>): Same.
2137         (neg_eq<mode>): Same.
2138
2139         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
2140         PROCESSOR_POWER4.
2141
2142 2005-08-26  Nick Clifton  <nickc@redhat.com>
2143
2144         * config/v850/v850.c (ep_memory_operand): Return FALSE if
2145         TARGET_EP is not defined.
2146         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
2147         TARGET_EP is enabled.
2148         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
2149         * config/v850/v850.md (save_all_interrupt): Only use the EP
2150         register if TARGET_EP is defined.
2151         (restore_all_interrupt): Likewise.
2152         * config/v850/lib1funcs.asm: Update functions so that the EP
2153         register is only used if __EP__ is defined.
2154
2155 2005-08-26  David Ung  <davidu@mips.com>
2156
2157         * config/mips/mips.c (mips_expand_prologue): Handle case when
2158         generating for MIPS16 and the outgoing argument area is more than
2159         SMALL_OPERAND. Use the frame pointer as temporary to generate the
2160         add instruction.
2161
2162 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
2163
2164         * config/crx/crx.md: Make doloop_end pattern usage controllable
2165         via mloop-nesting=<max-nesting> command line switch. Make sure
2166         the combiner cannot use doloop_end_<mode> in an illegal way.
2167         * config/crx/crx.c: Use regs up to r6 for argument passing.
2168         Refine crx_address_cost (non cst4 displacements are expensive).
2169         * config/crx/crx.opt: Add switch for mloop-nesting=.
2170
2171 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
2172
2173         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
2174         (UNSPEC_MVST): New constant.
2175
2176 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
2177
2178         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
2179         Reject operands containing eliminable registers.
2180         * testsuite/gcc.dg/20050825-1.c: New testcase.
2181
2182 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
2183             Jan Hubicka  <jh@suse.cz>
2184
2185         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
2186
2187 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
2188
2189         PR tree-optimization/23546
2190         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
2191         and REAL_CST nodes.
2192
2193 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
2194
2195         * params.def (PARAM_MIN_SPEC_PROB): New.
2196         * sched-rgn.c (MIN_PROBABILITY): Delete.
2197         (compute_trg_info): Convert to PARAM_VALUE.
2198         * doc/invoke.texi (param): Document min-spec-prob.
2199
2200 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
2201
2202         * config/darwin.h: define __PIC__
2203         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
2204         TARGET_OS_CPP_BUILTINS macro.
2205
2206 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
2207
2208         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
2209         yesterday.
2210
2211 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
2212
2213         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
2214         to duplicate_block.
2215         * cfghooks.c (duplicate_block): Added position where to place
2216         new block as argument.
2217         * cfghooks.h (duplicate_block): Declaration changed.
2218         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
2219         duplicate_block.
2220         * cfglayout.h (copy_bbs): Declaration changed.
2221         * cfgloop.h (loop_version): Declaration changed.
2222         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
2223         position to copy_bbs.
2224         (loop_version): Pass position to duplicate_loop_to_header_edge.
2225         Add place_after argument and position new blocks according to
2226         it.
2227         * modulo-sched.c (sms_schedule): Pass place_after argument
2228         to loop_version.
2229         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
2230         * tree-cfg.c (split_edge_bb_loc): New function.
2231         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
2232         to determine position of new blocks.
2233         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
2234         to loop_version.
2235         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
2236         argument to duplicate_block.
2237         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
2238         Pass position to copy_bbs.
2239
2240 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
2241
2242         * fold-const.c (ptr_difference_const): Use
2243         cst_and_fits_in_hwi instead of host_integerp.
2244
2245 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
2246
2247         * config/darwin.c (gen_pic_offset): New.
2248         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
2249         Use it.
2250
2251 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
2252
2253         PR tree-optimization/23486
2254         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
2255
2256 2005-08-23  Phil Edwards  <phil@codesourcery.com>
2257
2258         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
2259         remove use_collect2.
2260         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
2261
2262         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
2263         configuration files to override the default value.
2264
2265         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
2266         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
2267         * config/vx-common.h:  New file, split out from...
2268         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
2269         * config/vxworksae.h:  New file, for VxWorks AE.
2270         * config/vxworks.opt:  New file.
2271         * config/vxlib.c:  Update for VxWorks 6.
2272
2273         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
2274         other MULTILIB_* variables appropriately.
2275         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
2276         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
2277         * config/rs6000/vxworks.h:  Update for VxWorks 6.
2278         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
2279
2280 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
2281
2282         PR target/20799
2283         * config/darwin.c (machopic_select_section): Remove the hack to
2284         mark "::operator new" and "::operator delete" for coalescing
2285         even though they are not weak.
2286
2287 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
2288
2289         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
2290         * configure: Regenerate.
2291
2292 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
2293
2294         PR middle-end/23517
2295         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
2296         between vectors.
2297         * convert.c (convert_to_integer, convert_to_vector): Likewise.
2298         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
2299         Likewise.
2300
2301 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
2302
2303         * config/rs6000/predicates.md (equality_operator): New.
2304         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
2305         comparison with a large constant.
2306
2307 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
2308
2309         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
2310
2311 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
2312
2313         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
2314         registers is even, and we have a hardware double precision fp,
2315         align the buffer.
2316         (sh_gimplify_va_arg_expr): For floating point arguments, consider
2317         size of current argument when checking if argument was passed in
2318         registers.
2319
2320         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
2321
2322         PR middle-end/23467
2323         * stor-layout.c (finalize_type_size): Dont override
2324         existing alignment with a smaller alignment from the mode.
2325
2326 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
2327
2328         * lambda-code.c (lambda_vector_lexico_pos): Moved...
2329         * lambda.h (lambda_vector_lexico_pos): ... here.
2330         * tree-data-ref.c (build_classic_dist_vector): Return false when
2331         the distance vector is lexicographically negative.
2332
2333 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
2334
2335         PR tree-optimization/23511
2336         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
2337         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
2338
2339 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
2340
2341         PR tree-optimization/22043
2342         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
2343         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
2344         If ALLOW_FLEXARR, handle types ending with flexible array member.
2345         Pass false as second argument to recursive count_type_elements calls.
2346         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
2347         argument to count_type_elements call.
2348         * tree-sra.c (decide_block_copy): Likewise.
2349         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
2350         for a constant-sized object, set cleared as well.  Pass true as
2351         second argument to count_type_elements call.
2352
2353 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
2354
2355         PR target/21571
2356         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
2357         from legitimate_small_data_p, and make global.  Update use.
2358         Remove forward declaration.
2359         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
2360         Declare.
2361         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
2362
2363 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
2364
2365         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
2366         of scratch intermediates.
2367         (eq<mode>_compare): Same.
2368         (neg_eq0<mode>): New.
2369         (neg_eq<mode>): Convert to define_insn_and_split.
2370
2371 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
2372
2373         PR target/23070
2374         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
2375         stdarg functions, set/clear the fp marker even when no variable
2376         args are passed.
2377         * config/rs6000/sysv4.opt (mprototype): Describe.
2378
2379 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
2380
2381         PR rtl-optimization/23478
2382         * regs.h (reg_info): Add throw_calls_crossed.
2383         (REG_N_THROWING_CALLS_CROSSED): Define.
2384         * flow.c (allocate_reg_life_data): Initialize
2385         REG_N_THROWING_CALLS_CROSSED.
2386         (propagate_one_insn, attempt_auto_inc): Update
2387         REG_N_THROWING_CALLS_CROSSED.
2388         * global.c (global_alloc): Don't allocate pseudos across
2389         calls that may throw.
2390
2391 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
2392
2393         PR c/18715
2394         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
2395         value is inbetween the range if we did not find an exact match.
2396
2397 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
2398
2399         * doc/invoke.texi (Option Summary): Add ms1 options.
2400         * doc/extend.texi: Document interrupt handler attribute for ms1.
2401         * doc/md.texi: Document ms1 constraints.
2402         * config.gcc: Add ms1-*-elf.
2403         * config/ms1/ms1.h: New.
2404         * config/ms1/ms1.c: New.
2405         * config/ms1/ms1.md: New.
2406         * config/ms1/ms1-protos.h: New.
2407         * config/ms1/ABI.txt: New.
2408         * config/ms1/crti.asm: New.
2409         * config/ms1/crtn.asm: New.
2410         * config/ms1/lib2extra-funcs.c: New.
2411         * config/ms1/t-ms1: New.
2412         * config/ms1/ms1.opt: New.
2413
2414 2005-08-22 Ira Rosen <irar@il.ibm.com>
2415
2416         * config/rs6000/altivec.md (xorv4sf3): New.
2417         (negv4sf2, neg<mode>2): Likewise.
2418
2419 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
2420
2421         PR target/23485
2422         * config/ia64/ia64.md (divsi3): Check divide by zero.
2423         (udivsi3): Likewise.
2424         (divdi3): Likewise.
2425         (udivdi3): Likewise.
2426
2427 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
2428
2429         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
2430         up to elem_bitsize bits, not max_bitsize.
2431
2432 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
2433
2434         PR tree-optimization/23433
2435         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
2436         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
2437
2438 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
2439
2440         PR tree-optimization/23434
2441         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
2442         the iteration bound is not an INTEGER_CST.
2443
2444 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
2445
2446         * tree-vect-transform.c (get_initial_def_for_reduction): Set
2447         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
2448         NULL if need_epilog_adjust is false.
2449         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
2450         Case 3 always peels first itration, not just for PLUS case, and no need
2451         to use scalar_initial_def here. Create an epilog adjustment only if
2452         scalar_initial_def is not NULL.
2453
2454         (vectorizable_reduction): Remove assert.
2455
2456 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
2457
2458         PR target/23485
2459         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
2460         (__moddi3): Likewise.
2461         (__udivdi3): Likewise.
2462         (__umoddi3): Likewise.
2463         (__divsi3): Likewise.
2464         (__modsi3): Likewise.
2465         (__udivsi3): Likewise.
2466         (__umodsi3): Likewise.
2467
2468 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
2469
2470         * tree-pass.h (TDF_GRAPH): Define.
2471         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
2472         * passes.c (finish_optimization_passes): Only call
2473         finish_graph_dump_file if TDF_GRAPH is set.
2474         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
2475         NULL.  Set TDF_GRAPH bit.
2476         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
2477
2478 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
2479
2480         * arm.h (arm_stack_offsets): Add locals_base field.
2481         * arm.c (arm_get_frame_offsets): Compute it.
2482         (thumb_compute_initial_elimination offset): Make the Thumb frame
2483         pointer point to the base of the local variables.
2484         (thumb_expand_prologue): Update accordingly.
2485         (thumb_expand_epilogue): Likewise.
2486
2487         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
2488         mode of clobbered scratch to DImode.  Handle a case that's known to
2489         need this.
2490
2491 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
2492
2493         * config/rs6000/rs6000.md (gt0<mode>): Delete.
2494         (gt0<mode>_compare): Delete.
2495         (neg_gt0<mode>): Delete.
2496
2497 2005-08-19  Eric Christopher  <echristo@apple.com>
2498
2499         * optabs.h: Change CTI_ to COI_.
2500         * optabs.c: Ditto.
2501
2502 2005-08-19  James E Wilson  <wilson@specifix.com>
2503
2504         * builtins.c (expand_builtin_return_addr): Set
2505         current_function_accesses_prior_frames when count != 0.  Use
2506         frame_pointer_rtx when count == 0.
2507         * function.h (struct function): Add accesses_prior_frames field.
2508         (current_function_accesses_prior_frames): Define.
2509         * reload1.c (init_elim_table): Check
2510         current_function_accesses_prior_frames.
2511         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
2512
2513 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
2514
2515         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
2516         indicator.  Return true if the flowgraph changed during
2517         cleanup.
2518
2519 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
2520
2521         PR 23476
2522         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
2523         conditional expression before testing its value.
2524
2525 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
2526
2527         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
2528
2529 2005-08-19  Devang Patel  <dpatel@apple.com>
2530
2531         PR tree-optimization/23048
2532         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
2533         third parameter. Check whether latch is dominated by exit
2534         block or not.
2535         (if_convertible_loop_p): Supply exit block itself to
2536         if_convertible_bb_p.
2537
2538 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
2539
2540         PR target/23473
2541         * arm.md (arm_load_pic_register): Change argument to the mask of
2542         saved registers.  Call thumb_find_work_register if we need a
2543         scratch register on Thumb.
2544         (arm_expand_prologue): Pass empty register set to
2545         arm_load_pic_register.
2546         (thumb_expand_prologue): Pass live_regs_mask directly to
2547         arm_load_pic_register.
2548         * arm-protos.h (arm_load_pic_register): Update prototype.
2549
2550 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
2551
2552         * sh.c (find_sole_member): New function.
2553         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
2554         if the record's alignment is larger than the size of its only member.
2555
2556 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
2557
2558         PR target/23436
2559         * arm.c (thumb_legitimize_reload_address): New function.
2560         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
2561         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
2562
2563 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
2564
2565         * config/crx/crx.c: Implement crx_decompose_address. Reject
2566         symbolic displacements since CRX register relative adressing
2567         mode can't handle unsigned 32-bit values as displacements.
2568         * config/crx/crx.h: Simplify definitions, remove redundant
2569         parenthesis and obsolete macros.
2570         * config/crx/crx.opt: Add new switch for debugging addresses.
2571         * config/crx/crx-protos.h: Add new declarations for above.
2572
2573 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
2574
2575         PR middle-end/20624
2576         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
2577         looking past it.
2578
2579 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2580
2581         * collect2.c (dup2): Delete.
2582         * configure.ac: Don't check for dup2.
2583
2584         * config.in, configure: Regenerate.
2585
2586 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
2587
2588         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
2589         record with the type of its only member.
2590
2591 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
2592
2593         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
2594         define_insn_and_split.
2595         (plus_ltu<mode>_compare): Same.
2596         (gtu<mode>_compare): Same.
2597         (plus_gtu<mode>_compare): Same.
2598
2599 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
2600
2601         PR tree-optimization/22228
2602         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
2603         todo_flags_start.
2604         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
2605         are recorded in vect_vnames_to_rename for renaming.
2606         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
2607         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
2608         in vect_vnames_to_rename.
2609         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
2610         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
2611
2612 2005-08-18  Jan Hubicka  <jh@suse.cz>
2613
2614         PR c++/22034
2615         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
2616         info only for local statics, not for member variables.
2617
2618 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2619
2620         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
2621
2622 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2623
2624         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
2625
2626 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
2627
2628         PR middle-end/16045
2629         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
2630
2631 2005-08-17  James E Wilson  <wilson@specifix.com>
2632
2633         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
2634         array size check.
2635
2636 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
2637
2638         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
2639         (leu<mode>_compare): Same.
2640         (plus_leu<mode>): Same.
2641         (neg_leu<mode>): Same.
2642         (and_neg_leu<mode): Same.
2643         (ltu<mode>_compare): Same.
2644         (plus_ltu<mode>): Same.
2645         (geu<mode>): Same.
2646         (geu<mode>_compare): Same.
2647         (plus_geu<mode>): Same.
2648         (neg_geu<mode>): Same.
2649         (and_neg_geu<mode>): Same.
2650         (plus_gt<mode>): Same.
2651         (gtu<mode>_compare): Same.
2652         (plus_gtu<mode>): Same.
2653
2654 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
2655
2656         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
2657         Move call_table_data to end.  Delete spurious .text.
2658         (callt_save_all_interrupt): Fix comment typo.
2659
2660 2005-08-17  James E Wilson  <wilson@specifix.com>
2661             Kevin Winchester  <winchester@amirix.com>
2662
2663         PR target/21684
2664         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
2665
2666 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
2667
2668         PR target/23268
2669         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
2670         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
2671
2672 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
2673
2674         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
2675         record with the type of its only member if the modes don't match.
2676
2677         * varasm.c (decode_reg_name): Skip empty additional register names.
2678
2679 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
2680
2681         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
2682         lsm_tmp_name_length): New.
2683         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
2684         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
2685
2686 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2687             Andreas Krebbel  <krebbel1@de.ibm.com>
2688
2689         * config.gcc: Added z9-109 switch.
2690         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
2691         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
2692         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
2693         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
2694         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
2695         for "z9_109" cpu attribute.
2696         * config/s390/s390.c (z9_109_cost): New processor cost structure.
2697         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
2698         (s390_handle_arch_option): Added z9-109 switch.
2699         (override_options): Set respective cost function for z9-109.
2700         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
2701         (legitimate_reload_constant_p): Accept extended immediates.
2702         (print_operand): Three new output modifiers added: k, m and o.
2703         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
2704         (s390_output_mi_thunk): Use extended immediate when possible.
2705         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
2706         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
2707         (CONSTRAINT_LEN): Added length of O constraint.
2708         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
2709         * config/s390/s390.md ("cpu"): New value z9_109 added.
2710         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
2711         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
2712         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
2713         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
2714         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
2715         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
2716         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
2717         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
2718         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
2719         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
2720         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
2721         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
2722         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
2723         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
2724         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
2725         immediates.
2726         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
2727         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
2728         insns for TARGET_EXTIMM.
2729
2730 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2731
2732         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
2733
2734 2005-08-17  Nick Clifton  <nickc@redhat.com>
2735
2736         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
2737         Call default_encode_section_info.
2738
2739 2005-08-17  Steven Bosscher  <stevenb@suse.de>
2740
2741         PR tree-optimization/21574
2742         * tree-ssa-ccp.c (likely_value): If the right hand side is a
2743         constant, return CONSTANT.
2744         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
2745         (ccp_fold, visit_assignment): Likewise.
2746         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
2747
2748 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
2749
2750         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
2751         fold_buildN instead of buildN then fold_initializer or fold.
2752         (build_unary_op): Likewise.
2753         (build_binary_op): Likewise.
2754         * fold-const.c (fold_initializer): Remove.
2755         (fold_build1_initializer): New function.
2756         (fold_build2_initializer): New function.
2757         (fold_build3_initializer): New function.
2758         * tree.h (fold_initializer): Remove.
2759         (fold_build1_initializer): New function.
2760         (fold_build2_initializer): New function.
2761         (fold_build3_initializer): New function.
2762
2763 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
2764
2765         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
2766         (try_move_mult_to_index): Call fold_build2 instead of build2.
2767         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
2768         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
2769         fold_binary_to_constant.
2770         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
2771         fold (build.
2772         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
2773         check if A == gcd (A, B).  Remove TYPE argument.
2774         (analyze_offset) Use fold_build2 instead of fold (build.
2775         (create_data_ref): Likewise.
2776         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
2777         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
2778         then fold.
2779
2780 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
2781
2782         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
2783         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
2784
2785 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
2786
2787         PR tree-opt/23402
2788         * gimplify.c (zero_sized_type): New function.
2789         (gimplify_modify_expr_rhs): If we have a zero sized type,
2790         replace the statement with an empty statement.
2791
2792 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
2793
2794         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
2795         fxsave.
2796
2797 2005-08-16  Ian Lance Taylor  <ian@airs.com>
2798
2799         * doc/tm.texi (Label Output): Correct typo.
2800
2801 2005-08-16  Steven Bosscher  <stevenb@suse.de>
2802
2803         PR target/23376
2804         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
2805         force_operand will work later on using have_insn_for.
2806
2807 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2808
2809         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
2810
2811 2005-08-16  Ian Lance Taylor  <ian@airs.com>
2812
2813         PR c++/23337
2814         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
2815         vector type, don't try to construct it element by element.  Add an
2816         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
2817
2818 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2819
2820         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
2821
2822 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
2823
2824         * doc/invoke.texi (Precompiled Headers): Document some more options
2825         which are known to be safe.
2826
2827 2005-08-16  James E Wilson  <wilson@specifix.com>
2828
2829         PR tree-optimization/21105
2830         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
2831         TREE_OVERFLOW check.
2832
2833 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
2834
2835         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
2836         (neg_ltu<mode>): Same.
2837         (gtu<mode>): Same.
2838         (neg_gtu<mode>): Same.
2839
2840 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2841
2842         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
2843         (fold_builtin_isdigit): Use fold_buildN.
2844         (build_function_call_expr): Likewise.
2845         * c-typeck.c (c_finish_loop): Likewise.
2846
2847 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
2848             Richard Shann <rshann@superh.com>
2849
2850         PR middle-end/20396:
2851         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
2852
2853 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
2854
2855         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
2856
2857 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
2858
2859         PR target/23355
2860         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
2861         arm_compure_save_reg0_reg12_mask to determine when the PIC register
2862         must be saved.
2863
2864 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2865
2866         PR middle-end/23369
2867         * fold-const.c (build_range_check): Disable optimization for function
2868         pointer expressions on targets that require function pointer
2869         canonicalization.
2870
2871 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
2872
2873         * simplify-rtx.c (simplify_const_relational_operation): When
2874         extracting arguments of a COMPARE, recompute the mode as well.
2875
2876 2005-08-15  Ian Lance Taylor  <ian@airs.com>
2877
2878         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
2879
2880 2005-08-15  DJ Delorie  <dj@redhat.com>
2881
2882         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
2883         the stack.
2884         (movsi_splittable): Allow, but split, moves to the stack.
2885         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
2886         stack.
2887
2888 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2889
2890         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
2891         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
2892         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
2893
2894         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
2895         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
2896         Delete HOST_PTR_PRINTF.
2897
2898         * configure, config.in: Regenerate.
2899
2900 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
2901
2902         * config/rs6000/rs6000.md (QHSI): New mode macro.
2903         (wd): Extend mode attr for QImode and HImode
2904         (dbits): New mode attr.
2905         (zero_extend<mode>di2): Convert to mode macro.
2906
2907 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
2908
2909         PR target/21841
2910         * doc/invoke.texi (-mgnu-ld): Update description.
2911         (-mhp-ld): Ditto.
2912
2913 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
2914
2915         PR 23391
2916         * Makefile.in (tree-chrec.o): Depends on real.h.
2917         * tree-chrec.c: Include real.h.
2918         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
2919         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
2920         * tree-scalar-evolution.c (add_to_evolution_1,
2921         interpret_rhs_modify_expr): Ditto.
2922
2923 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
2924
2925         PR 23386
2926         * tree-data-ref.c (estimate_niter_from_size_of_data): When
2927         step is negative compute the estimation from init downwards to zero.
2928
2929 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
2930
2931         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
2932
2933 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
2934
2935         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
2936         constraint.
2937         (legitimate_reload_constant_p): Fix handling of lliXX operands.
2938         Accept double-word constants that can be split.
2939         * config/s390/s390.md ("movti"): Use 'P' constraint.
2940         ("*movdi_31", "*movdf_31"): Likewise.
2941
2942 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
2943
2944         Fix PR tree-optimization/22615
2945
2946         * tree-ssa-structalias.c (solution_set_add): Handle
2947         first_vi_for_offset returning NULL.
2948         (do_da_constraint): Ditto.
2949         (do_sd_constraint): Ditto.
2950         (do_ds_constraint): Ditto
2951         (find_func_aliases): Ditto.
2952         (build_constraint_graph): RHS is allowed be ANYTHING.
2953         (first_vi_for_offset): Return NULL if we couldn't find anything at
2954         the offset.
2955
2956 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
2957
2958         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
2959         over memory as first operand.
2960
2961 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
2962
2963         PR target/23360
2964         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
2965         available for setting it.
2966
2967 2005-08-14  Ira Rosen  <irar@il.ibm.com>
2968
2969         PR tree-optimization/23320
2970         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
2971         data-refs' types instead of base object nullness. Add check for
2972         pointer type data-refs before first location comparison. Remove
2973         assert.
2974
2975 2005-08-14  Andreas Schwab  <schwab@suse.de>
2976
2977         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
2978
2979 2005-08-13  James E Wilson  <wilson@specifix.com>
2980
2981         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
2982         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
2983         -fstack-protector-all, --param ssp-buffer-size): Document.
2984         (-Wvariadic-macros): Alphabetize.
2985         (-fsched-stalled-insns-dep): Add missing 'f'.
2986
2987         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
2988         macros.
2989
2990 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
2991
2992         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
2993         or indirect address operand.
2994         (EXTRA_ADDRESS_CONSTRAINT): New.
2995         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
2996
2997 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
2998
2999         PR tree-optimization/22236
3000         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
3001         successors and predecessors.
3002         * tree-chrec.c (chrec_convert): Before converting, check that
3003         sequences don't wrap.
3004         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
3005         (analyze_array): Extern.
3006         (find_data_references_in_loop): Remove call to
3007         compute_estimated_nb_iterations.
3008         * tree-data-ref.h (analyze_array): Declared.
3009         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
3010         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
3011         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
3012         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
3013         condition.
3014         * tree-ssa-loop-ivcanon.c: Fix documentation.
3015         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
3016         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
3017         (infer_loop_bounds_from_undefined): New.
3018         (estimate_numbers_of_iterations_loop): Use
3019         infer_loop_bounds_from_undefined.
3020         (used_in_pointer_arithmetic_p): New.
3021         (scev_probably_wraps_p): Pass an extra parameter.  Call
3022         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
3023         (convert_step): Fix documentation.
3024         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
3025         Use initial_condition_in_loop_num and evolution_part_in_loop_num
3026         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
3027         scev_probably_wraps_p.
3028
3029 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
3030
3031         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
3032         (s390_register_info): Ignore clobbered_regs information for fixed
3033         registers, and only fixed registers.
3034         (s390_init_frame_layout): Remove redundant call.
3035
3036 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
3037
3038         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
3039         description of -Wold-style-casts.
3040
3041 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3042             Jakub Jelinek  <jakub@redhat.com>
3043
3044         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
3045         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
3046         * config/s390/s390.c (print_operand): New output modifier 'G' added.
3047         (get_thread_pointer): Renamed to s390_get_thread_pointer.
3048         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
3049         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
3050         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
3051         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
3052         ("stack_protect_set", "stack_protect_test"): New expanders.
3053         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
3054         "stack_protect_testdi"): New insn definitions.
3055
3056 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3057
3058         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
3059
3060 2005-08-12  Paul Brook  <paul@codesourcery.com>
3061
3062         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
3063
3064 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3065
3066         * config/s390/predicates.md (setmem_operand): New predicate.
3067         (shift_count_operand): Accept ANDs with special constants as
3068         operand.
3069         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
3070         with special constants.
3071         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
3072         shift_count_operand with setmem_operand.
3073
3074 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3075
3076         * config/s390/s390.c (s390_extract_part, s390_single_part):
3077         Type cast added.
3078         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
3079         (s390_output_mi_thunk): Don't use lg on 31 bit.
3080         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
3081         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
3082
3083 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3084
3085         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
3086         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
3087         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
3088         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
3089         with one of the new macros.
3090
3091 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3092
3093         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
3094         Don't set save_return_addr_p.
3095         (s390_register_info): Make clobbered_regs not depending on
3096         save_return_addr_p.
3097
3098 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3099
3100         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
3101         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
3102
3103 2005-08-11  James E. Wilson  <wilson@specifix.com>
3104
3105         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
3106
3107 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
3108
3109         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
3110         locations gathered by var-tracking in single entry loc_list
3111         over loc_descriptor_from_tree.
3112
3113         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
3114         pass it down to loc_descriptor.
3115         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
3116         (containing_function_has_frame_base): Move earlier in the file.
3117         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
3118         instead of always assuming fbreg can't be used.
3119
3120 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
3121
3122         * config/rs6000/altivec.md: Change constraint "m" to "Z".
3123         * config/rs6000/predicates.md (indexed_or_indirect_operand):
3124         Accept address wrapped in AND for Altivec.
3125         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3126         Strip AND wrapping offset address for Altivec.
3127
3128 2005-08-11  Richard Henderson  <rth@redhat.com>
3129
3130         PR middle-end/23312
3131         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
3132         before using TYPE_IS_SIZETYPE.
3133
3134 2005-08-11  Richard Henderson  <rth@redhat.com>
3135
3136         PR target/22225
3137         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
3138         insn types not present on ev4.
3139         (alphaev5_insn_pipe): Similarly.
3140
3141 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
3142
3143         PR target/23250
3144         * arm.c (arm_override_options): If the user has selected callee-super-
3145         interworking, then enable normal interworking.
3146
3147 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3148
3149         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
3150         redefinition.
3151
3152 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
3153
3154         * doc/rtl.texi: Fix two typos.
3155
3156 2005-08-11  Richard Guenther  <rguenther@suse.de>
3157
3158         PR target/23289
3159         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
3160         cases where we call to/from functions returning void.
3161
3162 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
3163
3164         PR c++/23225
3165         * tree.c (build_pointer_type_for_mode): Robustify.
3166
3167 2005-08-10  James E Wilson  <wilson@specifix.com>
3168
3169         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
3170         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
3171
3172         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
3173         "cum->".
3174
3175 2005-08-10  Eric Christopher  <echristo@apple.com>
3176
3177         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
3178         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
3179         V2DFmode.
3180
3181 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
3182
3183         PR target/21887
3184         * config/darwin.c (machopic_indirect_data_reference): Use a new register
3185         for the high part when generating dynamic-no-pic code.
3186
3187 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
3188
3189         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
3190         (x86_64-*-linux*): Likewise.
3191
3192         * config/i386/crtfastmath.c: New file.
3193         * config/i386/t-crtfm: Likewise.
3194
3195         * config/i386/linux.h (ENDFILE_SPEC): New.
3196         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
3197
3198         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
3199         crtfastmath.o.
3200
3201 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
3202
3203         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
3204         (vec_shl, vec_shr): Document new operations.
3205         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
3206
3207 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
3208
3209         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
3210         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
3211         change predicate to indexed_or_indirect_address.
3212
3213 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
3214
3215         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
3216         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
3217         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
3218         and __aeabi_uwrite8.
3219         * config/arm/unaligned-funcs.c: New file.
3220         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
3221
3222 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
3223
3224         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
3225         Add dump.
3226         * cfglayout.c (pass_insn_locators_initialize): Add dump.
3227         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
3228         Add dump.
3229         * except.c (pass_convert_to_eh_region_ranges): Add dump.
3230         * final.c (pass_shorten_branches): Add dump.
3231         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
3232         (pass_life): Rename dump.
3233         (rest_of_handle_flow2): Remove initial verify_flow_info.
3234         * function.c (pass_instantiate_virtual_regs): Add dump.
3235         * integrate.c (pass_initial_value_sets): Add dump.
3236         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
3237         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
3238         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
3239         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
3240         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
3241         gate_rtl_unrool_and_peel_loops): New.
3242         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
3243         rtl_doloop): Do not look at flags.
3244         * mode-switching.c (pass_mode_switching): Add dump.
3245         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
3246         pass_split_before_regstack): Add dump.
3247         * regmove.c (pass_stack_adjustments): Add dump.
3248         * tree-optimize.c (pass_fixup_cfg): Add dump.
3249
3250 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3251
3252         PR 23309
3253         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
3254         deciding which instruction sequence to use.
3255
3256 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
3257
3258         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
3259         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
3260
3261 2005-08-09  Richard Guenther  <rguenther@suse.de>
3262
3263         * c-common.c (builtin_function_2): Remove.
3264         (def_builtin_1): New function.
3265         (c_common_nodes_and_builtins): Use def_builtin_1 to
3266         build builtin functions.
3267
3268 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
3269
3270         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
3271         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
3272         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
3273         Visual DSP.
3274
3275 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
3276
3277         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
3278         fold_binary instead of fold_build2 since we don't care about the
3279         resulting tree.
3280         (loop_niter_by_eval): Likewise.
3281         (compare_trees): Likewise.
3282         (proved_non_wrapping_p): Likewise.
3283
3284 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
3285
3286         PR c/23161
3287         PR c/23165
3288         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
3289         if the if is really empty.
3290
3291 2005-08-09  Steven Bosscher  <stevenb@suse.de>
3292
3293         PR tree-optimization/23234
3294         * tree-ssa-math-opts.c (place_reciprocal): New enum.
3295         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
3296         argument of the new enum.
3297         (execute_cse_reciprocals): Add reciprocals for function arguments
3298         on the unique successor edge of the entry block.  Update other calls
3299         to execute_cse_reciprocals_1.
3300
3301 2005-08-08  Richard Henderson  <rth@redhat.com>
3302
3303         PR 22439
3304         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
3305
3306 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
3307
3308         * expr.c (write_complex_part): Return after handling MEM.
3309
3310 2005-08-08  Josh Conner  <jconner@apple.com>
3311
3312         PR rtl-optimization/23241
3313         * combine.c (simplify_comparison): Fix error in determining
3314         whether to lift a subreg from comparison.
3315
3316 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
3317
3318         PR target/18506
3319         * config/rs6000/altivec.md (vec_init<mode>): New.
3320         (vec_set<mode>): New.
3321         (vec_extract<mode>): New.
3322         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
3323         (rs6000_expand_vector_set): New.
3324         (rs6000_expand_vector_extract): New.
3325         (rs6000_legitimate_offset_address_p): Offset addresses are valid
3326         for Altivec modes before reload.
3327         (altivec_expand_vec_init_builtin): New.
3328         (get_element_number): New.
3329         (altivec_expand_vec_set_builtin): New.
3330         (altivec_expand_vec_ext_builtin): New.
3331         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
3332         builtins.
3333         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
3334         builtins.
3335         * config/rs6000/rs6000.h (rs6000_builtins): Add
3336         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
3337         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
3338         * config/rs6000/rs6000-protos.h: Declare new functions.
3339
3340 2005-08-08  Jan Hubicka  <jh@suse.cz>
3341
3342         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
3343         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
3344         * i386.md (movdi*): Use pic_32bit_operand.
3345         * predicates.md (pic_32bit_operand): New.
3346
3347 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
3348
3349         PR c++/21166
3350         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
3351
3352 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
3353
3354         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
3355         (test_for_singularity): Use fold_build2.
3356
3357 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3358
3359         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
3360
3361 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
3362
3363         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
3364         (COMMON_ASM_OP) Define.
3365         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
3366         (ix86_encode_section_info): Likewise.
3367         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
3368         SUBTARGET_ENCODE_SECTION_INFO.
3369
3370 2005-08-06  Richard Henderson  <rth@redhat.com>
3371
3372         PR 21894
3373         * tree-nested.c (convert_local_reference): Save and restore val_only
3374         around component_ref and friends.  Clear walk_subtrees by default.
3375
3376 2005-08-06  Peter O'Gorman  <peter@pogma.com>
3377
3378         PR 21366
3379         * gcc.c (process_command): Check the argument to -b has a dash.
3380         * doc/invoke.texi: Update -b and -V docs.
3381
3382 2005-08-06  James E Wilson  <wilson@specifix.com>
3383
3384         * config/mips/cross64.h, config/mips/t-cross64: Delete.
3385
3386 2005-08-06  Michael Matz  <matz@suse.de>
3387
3388         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
3389         member only if only one insn is associated with the value.
3390
3391 2005-08-06  Nick Clifton  <nickc@redhat.com>
3392
3393         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
3394         New define.
3395         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
3396         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
3397         Check symbol flags instead of symbol name mangling.
3398         (xstormy16_asm_output_aligned_common): Likewise.  Also
3399         simplify code since the bss100_section cass is the only case
3400         where the below100 code will be triggered.
3401         (xstormy16_encode_section_info): Encode below100 attribute
3402         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
3403         the name.
3404         (xstormy16_strip_name_encoding): Delete - this function is no
3405         longer needed.
3406         (TARGET_STRIP_NAME_ENCODING): Undefine.
3407         * config/stormy16/stormy16-protos.h: Delete prototype for
3408         xstormy16_strip_name_encoding.
3409
3410 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
3411
3412         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
3413         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
3414         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
3415         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
3416         config/alpha/predicates.md, config/arc/arc.h,
3417         config/arm/arm.h, config/arm/ieee754-df.S,
3418         config/arm/ieee754-sf.S, config/bfin/bfin.c,
3419         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
3420         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
3421         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
3422         config/m68hc11/m68hc11.h, config/mips/mips.c,
3423         config/mips/mips.h, config/mips/openbsd.h,
3424         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
3425         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
3426         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
3427         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
3428         config/sparc/linux.h, config/sparc/linux64.h,
3429         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
3430         doc/extend.texi, doc/gcov.texi, doc/install.texi,
3431         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
3432         typos.  Follow spelling conventions.
3433
3434 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
3435
3436         PR c/23113
3437         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
3438         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
3439         specially.  Check for side effects only for COND_EXPR.
3440         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
3441         return with TREE_NO_WARNING.
3442
3443 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
3444
3445         PR rtl-optimization/23233
3446         * loop.c (combine_movables): Require the modes to be the same.
3447         (move_movables): Remove handling of cases where the replacement
3448         had a different mode to the original.
3449
3450 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
3451
3452         PR tree-optimization/23128
3453         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
3454         subtraction wrap, and set TREE_OVERFLOW if they do.
3455
3456 2005-08-05  Richard Henderson  <rth@redhat.com>
3457
3458         PR 21728
3459         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
3460         FORCED_LABEL labels.
3461
3462 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
3463
3464         PR middle-end/23135
3465         * reload.c (find_reloads_subreg_address): Pass down TYPE
3466         unchanged.  Change all callers except find_reloads_toplev.
3467
3468 2005-08-05  Michael Matz  <matz@suse.de>
3469
3470         * genattrtab.c (current_alternative_string): Remove.
3471         (SIMPLIFY_ALTERNATIVE): Ditto.
3472         (attr_alt_bit_p): Ditto.
3473         (alternative_name): Make const char *.
3474         (evaluate_eq_attr): Remove use of above things.
3475         (simplify_test_exp): Ditto.
3476         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
3477         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
3478
3479 2005-08-04  James E Wilson  <wilson@specifix.com>
3480
3481         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
3482         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
3483         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
3484         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
3485         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
3486
3487 2005-08-04  Richard Henderson  <rth@redhat.com>
3488
3489         PR 21529
3490         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
3491         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
3492         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
3493         if we'd have to instantiate too many members.
3494
3495 2005-08-04  Richard Henderson  <rth@redhat.com>
3496
3497         PR 21291
3498         * tree-outof-ssa.c (coalesce_asm_operands): New.
3499         (coalesce_ssa_name): Use it.  Split out ...
3500         (coalesce_phi_operands, coalesce_result_decls): ... these.
3501
3502 2005-08-04  Paul Brook  <paul@codesourcery.com>
3503
3504         * read-rtl.c (read_quoted_string): Break if EOF.
3505
3506 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
3507
3508         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
3509         (fold_build2): Likewise.
3510         (fold_build3): Likewise.
3511         (fold_build1_stat): New function prototype.