OSDN Git Service

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