OSDN Git Service

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