OSDN Git Service

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