OSDN Git Service

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