OSDN Git Service

2004-11-01 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
2
3         PR bootstrap/18232
4         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
5         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
6         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
7         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
8
9 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
10
11         PR c/18239
12         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
13         parameter declarations.
14
15 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
16
17         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
18         (s390_secondary_input_reload_class)
19         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
20         register.
21         (s390_expand_cmpmem): Enable cmpmem implementation.
22         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
23         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
24         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
25         * config/s390/s390.md ("movcc"): New insn pattern.
26         * doc/md.texi: Document 'c' constraint for s390.
27
28 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
29
30         PR c++/18064
31         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
32         extension.
33
34 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
35
36         Fix PR tree-optimization/17672
37         Fix PR tree-optimization/18168
38         
39         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
40         assert test.
41         (gcc_tree_to_linear_expression): Add extra to existing constant.
42         (depth_of_nest): Factor out function used in various places.
43         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
44         functional changes.
45         (find_induction_var_from_exit_cond): Stop guessing, and just
46         get the right answer :).
47         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
48         Print out message about result of attempt to create perfect nest.
49         (lbv_to_gcc_expression): Add type argument, use it to do math
50         and induction variable creation.
51         (lle_to_gcc_expression): Ditto.
52         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
53         oldiv. Pass type argument to lle_to_gcc_expression and 
54         lbv_to_gcc_expression.
55         Reset number of iterations after transformation.
56         (perfect_nestify): Remove useless pre-allocation, and cleanup
57         a small amount.
58
59         * tree-data-ref.c (build_classic_dist_vector): Return false for
60         dependences completely outside of the loop nest we asked about.
61         (build_classic_dir_vector): Ditto.
62         (compute_data_dependences_for_loop): Only add dependence relations
63         inside the loop we asked about.
64         
65         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
66         Compute immediate uses.
67         
68         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
69         
70 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
71
72         * tree-cfg.c (thread_jumps): Fix a comment typo.
73
74 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
75
76         * tree-cfg.c (thread_jumps): Fix a comment typo.
77
78 2004-10-31  Nicolas Pitre <nico@cam.org>
79
80         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
81         values smaller than 2^32.
82
83 2004-10-31 Jeff Law  <law@redhat.com>
84
85         * cfgloop.h (struct loop): Remove unused "nodes" field.
86         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
87         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
88         instead of calling flow_bb_inside_loop_p for every basic block
89         in the function.
90         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
91
92 2004-10-31  Graham Stott <graham.stott@btinternet.com>
93
94         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
95         INT_5_BITS instead of VAL_5_BITS_P.
96
97 2004-10-31  Roger Sayle  <roger@eyesopen.com>
98
99         PR middle-end/14521
100         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
101         for consistent quoting in diagnostic messages.
102         (expand_call_inline): Likewise.
103         * tree-optimize.c (tree_rest_of_compilation): Likewise.
104         * tree-ssa.c (warn_uninitialized_var): Likewise.
105         (warn_uninitialized_phi): Likewise.
106
107 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
108
109         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
110         mode check.
111
112 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
113
114         * c-common.c: Fix a comment typo.
115
116 2004-10-31  Jason Merrill  <jason@redhat.com>
117
118         PR middle-end/17526
119         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
120         aggregate types that are not BLKmode.
121
122 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
123
124         * c-common.h (objc_lookup_ivar): Add second parameter to
125         prototype.
126         * c-typeck.c (build_external_ref): After looking up symbol,
127         pass it to objc_lookup_ivar() to decide whether it or the
128         ivar should be used, rather than deciding the issue locally.
129         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
130         which is simply returned in the non-ObjC case.
131
132 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
133
134         * sdbout.c (sdbout_symbol): Do not output type .def statements
135         for builtin types.
136
137 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
138
139         * c-common.c (catenate_strings): New.
140         (c_parse_error): Use it.  Don't over-escape.
141
142 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
143
144         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
145         modify the for loop expressions for it.  Remove unnecessary casts.
146         (sh_expand_prologue): Declare reg as unsigned.
147         (sh_gimplify_va_arg_expr): Initinalize lab_over.
148         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
149
150 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
151
152         * doc/invoke.texi (Darwin Options): Improve description of
153         how the subtype is chosen.
154
155 2004-10-30  Roger Sayle  <roger@eyesopen.com>
156
157         PR middle-end/18096
158         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
159         the stack adjustment, "size", is valid for Pmode.  If the stack
160         frame is too large, generate a trap insn and issue a warning.
161
162 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
163
164         * tree-ssa-dom.c: Fix comment typos.
165
166 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
167
168         * config/sh/sh.c (prepare_move_operands): Use operands[0]
169         for the output rtl if no_new_pseudos is set.  Remove redundant
170         line.
171
172 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
173
174         PR c/16666
175         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
176         determining whether to copy parameter types from a previous
177         prototype declaration.
178
179 2004-10-29  Roger Sayle  <roger@eyesopen.com>
180
181         PR rtl-optimization/17581
182         * cselib.c (cselib_process_insn): The last instruction of a libcall
183         block, with the REG_RETVAL note, should be considered in the libcall.
184         * gcse.c (do_local_cprop): Allow constants to be propagated outside
185         of libcall blocks.
186         (adjust_libcall_notes): Use simplify_replace_rtx instead of
187         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
188
189 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
190
191         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
192
193 2004-10-29 Jeff Law  <law@redhat.com>
194
195         * tree-ssa-dom.c (struct edge_info): New structure holding
196         edge equivalences and edge redirection information.
197         (get_eq_expr_value, record_dominating_conditions): Kill.
198         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
199         Call record_edge_info.
200         (allocate_edge_info, free_edge_info): New.
201         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
202         rather than cprop_into_phis.  Free all edge infos before threading
203         jumps.
204         (thread_across_edge): Allocate new edge info structures as needed
205         and store the redirection target into the edge info structure
206         instead of the edge's AUX field.
207         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
208         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
209         Revamp code which finds and records equivalences associated with
210         edges to use saved data in the edge_info structure.
211         (record_equivalencs_from_phis): Similarly.
212         (dom_opt_finalize_block): Revamp code which finds and records
213         equivalences associated with edges to use saved data in the
214         edge_info structure.
215         (build_and_record_new_cond): New function.
216         (record_conditions): Use build_and_record_new_cond to record
217         dominating conditions.
218         (record_edge_info): New function.
219         (record_range): Tighten test for conditions which create
220         useful range records.
221
222 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
223
224         * config/i386/darwin.h (ASM_SPEC): Simplify.
225         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
226         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
227         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
228         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
229         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
230         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
231         (ASM_SPEC): Handle -force_cpusubtype_ALL.
232         * doc/invoke.texi (Darwin Options): Improve documentation for
233         Darwin linker (and libtool) switches.
234
235         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
236
237 2004-10-29  Stan Shebs  <shebs@apple.com>
238
239         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
240
241 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
242
243         * tree-phinodes.c (allocate_phi_node): New.
244         (make_phi_node, resize_phi_node): Use it.
245
246 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
247
248         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
249         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
250
251 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
252
253         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
254         the whole PHI node.
255         * tree.h (tree_phi_node): Tell the garbage collector to chase
256         num_args arguments.
257
258 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
259
260         * opts.c (decode_options): Lower the crossjump threshold for -Os.
261
262 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
263
264         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
265
266 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
267
268         * bitmap.h (bitmap_empty_p): New.
269         (bitmap_and, bitmap_and_into, bitmap_and_compl,
270         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
271         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
272         operation macros.
273         (bitmap_ior_and_compl): Rename to ...
274         (bitmap_ior_and_compl_into): ... here.
275         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
276         (bitmap_ior_and_compl): Rename to ...
277         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
278         flag.
279         (bitmap_union_of_diff): Use renamed bitmap functions.
280         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
281         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
282         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
283         * df.c (df_bb_rd_local_compute)
284         * flow.c (calculate_global_regs_live,
285         init_propagate_block_info): Likewise.
286         * ifcvt.c (find_if_case_1, find_if_case_2,
287         dead_or_predicable): Likewise.
288         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
289         reset_conflicts, conflicts_between_webs): Likewise.
290         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
291         detect_web_parts_to_rebuild): Likewise.
292         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
293         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
294         * tree-sra.c (decide_instantiations): Likewise.
295         * tree-ssa-alias.c (create_name_tags,
296         merge_pointed_to_info): Likewise.
297         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
298         * tree-ssa-loop-im.c (move_computations): Likewise.
299         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
300         * tree-ssa-pre.c (fini_pre): Likewise.
301         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
302         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
303         * tree-vectorizer.c (vectorize_loops): Likewise.
304
305 2004-10-29  Nick Clifton  <nickc@redhat.com>
306
307         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
308         adding the PIC register to the fixed_regs array, also add it
309         to the call_used_regs array.  
310
311 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
312
313         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
314         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
315
316 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
317
318         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
319         (rewrite_blocks): Modify argument, and use it to decide which
320         function to call.
321         (rewrite_def_def_chains): Call rewrite_blocks with true here.
322         (rewrite_into_ssa): and call it with false here.
323         
324 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
325
326         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
327         triggers into gcc_assert.
328
329 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
330
331         PR tree-optimization/16728
332         * tree-flow.h (get_ptr_info): Declare.
333         * tree-ssa-alias.c (get_ptr_info): Make extern.
334         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
335         alias information.
336
337 2004-10-28  Stan Shebs  <shebs@apple.com>
338
339         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
340         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
341         case.
342
343 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
344
345         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
346         prevent their later unnecessary registration.
347         (mf_build_check_statement_for): Remove "addr" argument, and
348         related "__mf_value" generated code.  Update callers.
349         (mf_decl_eligible_p): New function, factored from mx_register_decls.
350         (mx_register_decls): Call it.
351         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
352         to restore support for complex nested expressions.
353         (mudflap_enqueue_decl): Simplify.  Move registration call emission
354         out ...
355         (mudflap_finish_file): ... to here.
356         (mudflap_enqueue_constant): Remove dump code.
357
358 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
359
360         PR 18199
361         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
362         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
363         (dbxout_finish_complex_stabs): Update to match.
364         (dbxout_symbol_location): Call emit_pending_bincls_if_required
365         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
366         dbxout_begin_complex_stabs_noforcetext.
367         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
368         N_GSYM, using new SYM parameter.  Correct logic for special
369         cases for N_FUN.
370
371         * varasm.c (function_section): If DECL is NULL_TREE, don't try
372         to do anything else.  Do not call get_insns if cfun or
373         cfun->emit are NULL.
374
375 2004-10-28  Adam Nemet  <anemet@lnxw.com>
376
377         PR middle-end/18160
378         * c-typeck.c (c_mark_addressable): Issue error if address of a
379         register variable is taken.  Use "%qD" to print DECL_NAME.
380
381 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
382
383         * opts.c (decode_options): Don't run PRE at -Os.
384
385 2004-10-28  Richard Henderson  <rth@redhat.com>
386
387         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
388         zero in the conditional.
389         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
390
391 2004-10-28  Richard Henderson  <rth@redhat.com>
392
393         * cse.c (memory_extend_rtx): Remove.
394         (cse_main): Don't set it.
395         (cse_insn): Use a local buffer instead.
396
397 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
398
399         * profile.c (branch_prob): Call to init_edge_profiler added.
400         * rtl-profile.c (rtl_init_edge_profiler): New function.
401         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
402         call to safe_insert_insn_on_edge.
403         (rtl_profile_hooks): rtl_init_edge_profiler added.
404         * tree-profile.c (tree_init_edge_profiler): New function.
405         (tree_profile_hooks): tree_init_edge_profiler added.
406         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
407
408 2004-10-28  Nick Clifton  <nickc@redhat.com>
409
410         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
411         emit_jump_insn() to generate the return instruction.
412
413 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
414
415         * tree-phinodes.c: Remove trailing whitespace.
416
417 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
418
419         * tree-ssa-loop-ivopts.c: Fix a comment typo.
420         * doc/invoke.texi: Fix a typo.
421
422 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
423
424         * Makefile.in (OBJS-common): Remove duplicates.
425
426 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
427
428         * lambda-code.c (nestify_update_pending_stmts): Remove.
429         (perfect_nestify): Use flush_pending_stmts instead of
430         nestify_update_pending_stmts.
431         * tree-cfg.c (tree_make_forwarder_block): Use
432         flush_pending_stmts.
433         * tree-flow.h: Add a prototype for flush_pending_stmts.
434         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
435         Use flush_pending_stmts.
436         (lv_update_pending_stmts): Remove.
437         (tree_ssa_loop_version): Use flush_pending_stmts instead of
438         lv_update_pending_stmts.
439         * tree-ssa.c (flush_pending_stmts): New.
440
441 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
442
443         PR target/15286
444         * final.c (alter_subreg): Compute correct offset to use with
445         paradoxical SUBREGs of memory operands.
446         * recog.c (general_operand): Allow paradoxical SUBREGs of
447         memory operands after reload.
448         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
449         has failed when passed a hard register.
450
451 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
452
453         * function.c (assign_parm_setup_block): Handle parallels correctly.
454
455 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
456
457         * final.c (shorten_branches): Initialize flags structure.
458
459 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
460
461         * tree.c (int_cst_node, int_cst_hash_table): New variables.
462         (init_ttree): Initialize them.
463         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
464         (build_int_cst_wide): Use hash table for oversized integers.
465
466 2004-10-28  Nick Clifton  <nickc@redhat.com>
467
468         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
469         begin_label.
470
471 2004-10-27  Richard Henderson  <rth@redhat.com>
472
473         PR middle-end/18163
474         * expr.c (emit_group_load): Don't go force temporary for memory
475         or concat source.
476         (emit_group_store): Similarly.
477
478 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
479
480         PR other/18186
481         * common.opt (--param): Fix spelling of parameter.
482
483 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
484
485         PR tree-opt/17529
486         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
487         Don't fold statement.
488         <case ASM_EXPR>: Fold the statement.
489
490 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
491
492         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
493         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
494
495 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
496
497         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
498         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
499         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
500         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
501
502 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
503
504         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
505         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
506         punctuation outside quotes.
507
508 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
509             James E Wilson  <wilson@specifixinc.com>
510
511         PR target/13158
512         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
513         sibcall alloc instruction.
514         (process_set): Handle sibcall alloc instruction.
515
516 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
517
518         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
519         SUBTARGET_ATTRIBUTE_TABLE.
520         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
521         (SUBTARGET_ATTRIBUTE_TABLE): Define.
522         * config/darwin.c (darwin_handle_weak_import_attribute): New.
523         (HAVE_DEAD_STRIP): Delete.
524         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
525         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
526         Prototype.
527
528         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
529
530         * config/darwin.h (GTHREAD_USE_WEAK): Define.
531
532 2004-10-28  Ben Elliston  <bje@au.ibm.com>
533
534         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
535         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
536         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
537         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
538         * tree-sra.c: Include "params.h".
539         (decide_block_copy): Use new parameters.
540         * doc/invoke.texi (Optimize Options): Document new SRA pass
541         parameters sra-max-structure-size and sra-field-structure-ratio.
542
543 2004-10-27  Nicolas Pitre <nico@cam.org>
544
545         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
546
547 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
548
549         PR tree-optimization/18048
550         * fold-const.c (try_move_mult_to_index): New function.
551         (fold): Use try_move_mult_to_index.
552         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
553         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
554         an all-ones unsigned constant without extra bits.
555         * tree.c (build_low_bits_mask): New function.
556         * tree.h (build_low_bits_mask): Declare.
557
558 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
559
560         PR target/17956
561         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
562         final condition.
563         (minsf3): Same.
564         (maxdf3): Same.
565         (mindf3): Same.
566
567 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
568
569         * tree-cfg.c (thread_jumps): Speed up by reordering the two
570         conditions for entering basic blocks into worklist.
571
572 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
573
574         * tree-cfg.c (thread_jumps): Speed up by pretending to have
575         ENTRY_BLOCK_PTR in worklist.
576
577 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
578
579         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
580         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
581
582 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
583
584         Fix PR tree-optimization/17133
585
586         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
587         def kill operand.
588
589         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
590         (get_v_must_def_result_ptr): Modify for new structure of
591         v_must_defs array.
592         (get_v_must_def_kill_ptr): New.
593         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
594         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
595         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
596         (op_iter_init): Initialize new mustu members.
597         (op_iter_next_mustdef): New function.
598         (op_iter_init_mustdef): Ditto.
599
600         * tree-flow.h (rewrite_def_def_chains): New function.
601
602         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
603         (ssa_mark_def_sites): Ditto.
604         (rewrite_stmt): Ditto.
605         (ssa_rewrite_stmt): Ditto.
606         (rewrite_blocks): Factor out from rewrite_into_ssa.
607         (mark_def_block_sites): Ditto.
608         (rewrite_def_def_chains): New function, just rewrites def-def
609         chains without phi node insertion.
610
611         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
612
613         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
614
615         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
616         they include the rhs now.
617
618         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
619         V_MUST_DEF_RESULT.
620
621         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
622         Update callers.
623         (mark_really_necessary_kill_operand_phis): New function.
624         (perform_tree_ssa_dce): Call it.
625         (pass_dce): Add TODO_fix_def_def_chains.
626         (pass_cd_dce): Ditto.
627
628         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
629         well.
630         (rewrite_mem_refs): Ditto.
631
632         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
633         as well.
634
635         * tree-ssa-operands.c (allocate_v_may_def_optype):
636         v_may_def_operand_type_t became v_def_use_operand_type_t.
637         (allocate_v_must_def_optype) Ditto.
638         (finalize_ssa_v_must_defs): Update for new operand type, as well
639         as setting the use portion as well.
640         (copy_virtual_operands): Copy the kill operand as well.
641         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
642         V_MUST_DEF_RESULT.
643
644         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
645         v_def_use_operand_type.
646         (v_must_def_optype_d): Use v_def_use_operand_type.
647         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
648         (V_MUST_DEF_KILL_*): New macros.
649         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
650         members.
651         Rename existing must_i and num_v_must members to mustd_i and
652         num_v_mustd.
653         (SSA_OP_VMUSTDEFKILL): New flag.
654         (SSA_OP_VIRTUAL_KILLS): New flag.
655         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
656         (SSA_OP_ALL_KILLS): New flag.
657         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
658
659         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
660
661         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
662         became V_MUST_DEF_RESULT.
663         (rename_variables_in_bb): Rename kill pointer as well.
664
665         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
666         immediate uses.
667
668 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
669
670         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
671         the block that needs it.
672
673 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
674
675         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
676         ATTRIBUTE_UNUSED.
677
678 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
679
680         * c-lex.c (cb_def_pragma): Clean up code for making location
681         palatable to diagnostic.c.
682
683 2004-10-27  Steven Bosscher  <stevenb@suse.de>
684
685         PR tree-optimization/17757
686         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
687         without any PHI arguments left.  Make sure the argument that
688         we're supposed to remove exists at all.
689
690 2004-10-27  Paul Brook  <paul@codesourcery.com>
691
692         * configure.ac: Don't test for [build] __cxa_atexit when building a
693         cross compiler.
694         * configure: Regenerate.
695
696 2004-10-27  Paul Brook  <paul@codeosurcery.com>
697
698         * configure.ac: Use build_exeext not host_exeext when lookin for
699         target tools.
700         * configure: Regenerate.
701
702 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
703
704         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
705
706 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
707             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
708
709         PR middle-end/14684
710         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
711         to match -fprofile-use.
712
713 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
714
715         * config/rs6000/rs6000.c: Fix a comment typo.
716
717 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
718
719         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
720         counter.
721
722 2004-10-27  Andreas Schwab  <schwab@suse.de>
723
724         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
725         unused.
726         (default_stabs_asm_out_constructor): Likewise.
727
728 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
729
730         * builtins.c (fold_builtin_unordered_cmp): Always bring both
731         operands to the same type.
732
733 2004-10-26  James E Wilson  <wilson@specifixinc.com>
734
735         PR target/18010
736         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
737
738 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
739
740         * dbxout.c: Include obstack.h.
741         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
742         default definition.
743         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
744         Default-define here.
745         (DBX_CONTIN_LENGTH): Move definition with others.
746         (DBX_FINISH_STABS): New target macro.
747         (current_sym_code, current_sym_value, current_sym_addr)
748         (current_sym_nchars, CHARS, dbxout_continue)
749         (print_int_cst_octal, print_octal, print_wide_int)
750         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
751         (stabstr_ob, stabstr_last_contin_point): New variables.
752         (NUMBER_FMT_LOOP): New improper macro.
753         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
754         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
755         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
756         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
757         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
758         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
759         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
760         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
761         New functions and/or proper function-like macros.
762         (CONTIN): Use stabstr_continue, unconditionally.
763         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
764         (dbxout_init): Initialize stabstr_ob.  Check
765         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
766         if it was used.  Use the new interfaces.
767         (dbxout_source_file): Remove file argument; always write to
768         asm_out_file.  Use the new interfaces.
769         (dbxout_type_method_1): Remove second argument which is always
770         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
771         (dbxout_type_methods): Remove write-only variables.  Use the
772         new interfaces.
773         (dbxout_parms): Refactor to remove code duplicated in each of
774         several successive if-else-if blocks.  Use the new interfaces.
775         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
776         (dbxout_source_line, dbxout_finish, dbxout_type_index)
777         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
778         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
779         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
780         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
781         Use the new interfaces.
782         * Makefile.in (dbxout.o): Update dependencies.
783
784         * defaults.h: Don't define ASM_STABD_OP.
785         * output.h: Prototype new dbxout_* interfaces.
786         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
787         * varasm.c: Don't define ASM_STABS_OP.
788         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
789         Use the new dbxout.c interfaces.  Call sorry if neither
790         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
791
792         * xcoffout.h: Don't define ASM_STABS_OP.
793         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
794         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
795         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
796         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
797         do { ... } while (0) idiom.
798
799         * config/alpha/alpha.c (num_source_filenames): Export.
800         * config/alpha/alpha.h (num_source_filenames): Declare.
801         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
802         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
803         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
804         Always use .debugsym.  Update commentary.
805         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
806         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
807         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
808         Use new interfaces.
809         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
810         (macho_branch_islands): Use new interfaces.
811
812         * doc/tm.texi: Update.
813
814 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
815
816         * expr.c (emit_group_store): Do not treat floats as BLKmode.
817         (emit_group_load): Same.
818
819 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
820
821         * c-parse.in (datadef): Use pedwarn rather than error and warning
822         for diagnostic in case of no declaration specifiers.
823
824 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
825
826         PR bootstrap/15747
827         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
828         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
829         can be used to work around this.
830
831 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
832
833         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
834         doubles.
835
836 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
837
838         * stmt.c (expand_case): Update a comment.
839
840 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
841
842         * stmt.c (expand_case): Put an assertion that index_expr is
843         never INTEGER_CST.  Don't special case for constant
844         index_expr.
845
846 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
847
848         PR 18162
849         * c-parse.in (designator): Finish with a semi-colon.
850
851 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
852
853         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
854         into rotlsi3.
855
856 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
857
858         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
859         a default case only.
860
861 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
862
863         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
864         e500 doubles.
865         (spe_build_register_parallel): New.
866         (rs6000_spe_function_arg): Handle e500 doubles.
867         (function_arg): Same.
868         (spe_func_has_64bit_regs_p): Same.
869         (rs6000_function_value): Same.
870         (rs6000_libcall_value): Same.
871         (legitimate_lo_sum_address_p): Return false for e500 doubles.
872
873         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
874         doubles.
875         (DATA_ALIGNMENT): Same.
876         (CANNOT_CHANGE_MODE_CLASS): Same.
877
878 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
879
880         * expr.c (emit_group_load): Handle floats.
881         (emit_group_store): Same.
882
883 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
884
885         * c-lex.c (get_nonpadding_token): Remove.
886         (c_lex_with_flags): Push timevar and eat padding here.  Improve
887         stray token diagnostic.
888         (lex_string): Replace logic with switch statement, eat padding
889         token here.
890
891 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
892
893         PR 18149
894         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
895
896 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
897
898         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
899         to 'non-weak'.
900         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
901         (ASM_MAKE_LABEL_LINKONCE): Delete.
902         (ASM_WEAKEN_DECL): New.
903         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
904         (ASM_DECLARE_FUNCTION_NAME): Likewise.
905         (TEXT_SECTION_ASM_OP): Add a tab.
906         (DATA_SECTION_ASM_OP): Likewise.
907         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
908         data_section on every section change.
909         (EXTRA_SECTIONS): Add a bunch of new extra sections.
910         (EXTRA_SECTION_FUNCTIONS): Likewise.
911         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
912         (JCR_SECTION_NAME): Define.
913         (TARGET_SECTION_TYPE_FLAGS): Don't define.
914         * config/darwin.c (darwin_encode_section_info): A symbol is defined
915         in this file if it is not weak.
916         (textcoal_section): Delete.
917         (datacoal_section): Delete.
918         (darwin_make_decl_one_only): Delete.
919         (machopic_select_section): Handle functions.
920         (darwin_asm_named_section): Add a tab.
921         (darwin_section_type_flags): Delete.
922         (darwin_unique_section): Delete contents.
923         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
924         DECL_WEAK is set.
925         * config/darwin-protos.h (darwin_section_type_flags): Delete.
926         (darwin_make_decl_one_only): Delete.
927         (text_coal_section): New.
928         (text_unlikely_section): New.
929         (text_unlikely_coal_section): New.
930         (const_coal_section): New.
931         (data_coal_section): New.
932         (const_data_coal_section): New.
933         * varasm.c (function_section): Honour
934         USE_SELECT_SECTION_FOR_FUNCTIONS.
935         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
936         TARGET_USES_WEAK_UNWIND_INFO is in effect.
937         * dbxout.c (dbxout_source_file): Don't change sections while
938         a function is being output.
939
940 2004-10-25  David Ayers  <d.ayers@inode.at>
941
942         * c-common.h: Remove RID_ID.
943         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
944         (typespec_reserved_attr): Add rule for TYPENAME
945         non_empty_protocolrefs.
946         (yylexname): Remove special handling of RID_ID.
947
948 2004-10-25  James E Wilson  <wilson@specifixinc.com>
949
950         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
951
952 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
953
954         PR c/16667
955         * c-parse.in (array_designator): New.
956         (designator): Use it.
957         (initelt): Only permit array_designator without '=', not ".foo".
958
959 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
960         * gcc/Makefile.in: removed ggc for cgraphunit.
961         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
962         * gcc/cgraph.h: removed static var analysis data structures and calls.
963         * gcc/cgraphunit.c:
964         cgraph_mark_local_and_external_functions:changed name to
965                 cgraph_mark_local_functions
966         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
967         cgraph_reset_static_var_maps,get_global_static_vars_info,
968         get_global_statics_not_read,get_global_statics_not_written,searchc,
969         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
970         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
971         scan_for_static_refs,cgraph_characterize_statics_local,
972         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
973         removed.
974         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
975         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
976         analysis
977         * gcc/tree-flow.h static_vars_info: removed
978         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
979         removed calls to static vars analysis.
980         get_call_expr_operands: removed callee variable.
981
982 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
983
984         * cfg.c (unchecked_make_edge, redirect_edge_succ,
985         redirect_edge_pred): Use VEC_safe_push instead of
986         VEC_safe_insert.
987         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
988
989 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
990
991         * cfgloopmanip.c (loopify): Take two more arguments true_edge
992         and false_edge.
993         * cfgloop.h: Adjust the corresponding prototype.
994         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
995         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
996
997 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
998
999         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
1000         DECL_INCOMING_RTL is NULL.
1001
1002 2004-10-25  Steven Bosscher  <stevenb@suse.de>
1003
1004         * timevar.def (TV_FIND_REFERENCED_VARS): New.
1005         * tree-dfa.c (pass_referenced_var): Use it.
1006
1007 2004-10-25  Roger Sayle  <roger@eyesopen.com>
1008             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1009
1010         * cse.c: Change encoding of quantity numbers to avoid undefined
1011         pointer arithmetic on qty_table.
1012         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
1013         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
1014         (new_basic_block): Assign "real" quantity numbers from zero.
1015         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
1016         REG_QTY to its unique negative value.
1017         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
1018         (cse_main): Don't include max_reg when determining max_qty.
1019         (cse_basic_block): Avoid subtracting a large offset from qty_table,
1020         which causes undefined C99 behaviour.  Only allocate needed memory.
1021
1022 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
1023
1024         * stmt.c (expand_case): Remove an obsolete comment.
1025
1026 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
1027
1028         PR middle-end/17407
1029         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
1030         layout_type as it is already done by build_array_type.
1031         * tree.c (build_array_type): Layout the type even
1032
1033 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
1034
1035         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
1036
1037 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
1038
1039         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
1040         with wider-than-32-bit HOST_WIDE_INTs.
1041
1042 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
1043
1044         * config/mips/mips.c(mips_output_filename): Remove unused
1045         array ltext_label_name
1046
1047 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
1048
1049         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
1050
1051 2004-10-25  Ben Elliston  <bje@au.ibm.com>
1052
1053         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
1054
1055 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
1056
1057         * predict.c (predict_loops): Call scev_finalize instead of
1058         scev_reset.
1059
1060 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
1061
1062         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
1063         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
1064         config/sh/ushmedia.h, config/sparc/elf.h,
1065         config/sparc/sp64-elf.h: Update copyright.
1066
1067 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
1068
1069         * stmt.c (expand_case): Handle the default label outside of
1070         the for loop.  Remove code to handle a missing default label.
1071
1072 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
1073
1074         * dbxout.c (dbxout_function_decl): Don't use
1075         DBX_OUTPUT_FUNCTION_END.
1076         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
1077         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
1078
1079 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
1080
1081         PR middle-end/17967
1082         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
1083
1084 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
1085
1086         * tree-ssa-dom.c (record_equality): Use loop depth to determine
1087         which way to record the equality as well.
1088         (loop_depth_of_name): New function.
1089
1090 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1091
1092         PR middle-end/17793
1093         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
1094         through the operand if it is a useless type conversion.
1095
1096 2004-10-23  Ben Elliston  <bje@au.ibm.com>
1097
1098         * cfg.c (remove_edge): Use VEC_unordered_remove.
1099         (redirect_edge_succ): Likewise.
1100         (redirect_edge_pred): Likewise.
1101         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
1102
1103 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1104
1105         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
1106         beyond its end.
1107
1108 2004-10-22  Eric Christopher  <echristo@redhat.com>
1109
1110         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
1111         saves.
1112
1113 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
1114
1115         * config/rs6000/spe.md (spe_extendsfdf2): New.
1116         (movdf_e500_double): New.
1117         (spe_truncdfsf2): New.
1118         (spe_absdf2): New.
1119         (spe_nabsdf2): New.
1120         (spe_negdf2): New.
1121         (sub_adddf3): New.
1122         (spe_subdf3): New.
1123         (spe_muldf3): New.
1124         (spe_floatsidf2): New.
1125         (spe_floatunssidf2): New.
1126         (fix_truncdfsi2): New.
1127         (spe_fixuns_truncdfsi2): New.
1128
1129         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
1130         (fpr_truncdfsf2): New.
1131         (negdf2): Change to expander.
1132         (fpr_negdf2): New.
1133         (fpr_nabsdf2): Name pattern.
1134         (adddf3): Change to expander.
1135         (fpr_adddf3): Nem.
1136         (subdf3): Change to expander.
1137         (fpr_subdf3): New.
1138         (muldf3): Change to expander.
1139         (fpr_muldf3): New.
1140         (divdf3): Change to expander.
1141         (fpr_divdf3): New.
1142         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
1143         (cmpdf): Allow for TARGET_E500_DOUBLE.
1144
1145 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1146
1147         * c-semantics.c (re_push_stmt_list): Remove.
1148         * c-common.h: Remove the corresponding prototype.
1149
1150 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1151
1152         * stmt.c (asm_op_is_mem_input): Remove.
1153         * tree.h: Remove the corresponding prototype.
1154
1155 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1156
1157         * tree-gimple.c (is_gimple_constructor_elt): Remove.
1158         * tree-gimple.h: Remove the corresponding prototype.
1159
1160 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1161
1162         * varasm.c (get_pool_mode_for_function, get_pool_offset):
1163         Remove.
1164         * rtl.h: Remove the corresponding prototypes.
1165
1166 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1167
1168         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
1169         edge information when we commit ourselves to threading a
1170         particular jump.
1171
1172 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1173
1174         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
1175         into worklist instead of their indexes.
1176
1177 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1178
1179         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
1180         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
1181         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
1182         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
1183         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
1184         tree-scalar-evolution.c, tree-ssa-dom.c,
1185         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
1186         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
1187         tree-vectorizer.c, vec.h: Fix comment formatting.
1188
1189 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1190
1191         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
1192         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
1193
1194 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1195
1196         * config/ptx4.h, config/mcore/mcore-pe.h,
1197         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
1198
1199 2004-10-22  Peter Barada <peter@the-baradas.com>
1200
1201         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
1202         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
1203         renaming of non-live registers in interrupt functions.
1204         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
1205
1206 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
1207
1208         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
1209         Use integer for loop counter.
1210         (num_ending_zeros): New function.
1211         (number_of_iterations_cond): Use num_ending_zeros.
1212
1213 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
1214
1215         * config.gcc: Add support for --enable-e500_double.
1216
1217         * config/rs6000/e500-double.h: New file.
1218
1219         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
1220         TARGET_E500_DOUBLE.
1221
1222         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
1223         TARGET_E500_DOUBLE.
1224
1225         * config/rs6000/linuxspe.h: Same.
1226
1227         * doc/invoke.texi (Option Summary): Document new options for
1228         mfloat-gprs.
1229         (RS/6000 and PowerPC Options): Same.
1230
1231         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
1232         function.
1233         (rs6000_override_options): Use it.  Use
1234         SUB3TARGET_OVERRIDE_OPTIONS.
1235         Add 8548 to processor_target_table.
1236         (rs6000_legitimate_address): Handle e500 doubles.
1237         (rs6000_legitimize_address): Same.
1238         (rs6000_legitimize_reload_address): Same.
1239         (rs6000_hard_regno_nregs): Same.
1240         (spe_func_has_64bit_regs_p): Same.
1241         (emit_frame_save): Same.
1242         (gen_frame_mem_offset): Same.
1243         (rs6000_dwarf_register_span): Same.
1244         (rs6000_generate_compare): Same.
1245         (easy_fp_constant): Same.
1246         (legitimate_offset_address_p): Same.
1247
1248         * config/rs6000/spe.md: (cmdfeq_gpr): New.
1249         (tstdfeq_gpr): New.
1250         (cmpdfgt_gpr): New.
1251         (tstdfgt_gpr): New.
1252         (tstdfgt_gpr): New.
1253         (cmpdflt_gpr): New.
1254         (tstdflt_gpr): New.
1255         Add new constants.
1256
1257 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1258
1259         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
1260
1261 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
1262
1263         * dbxout.c: Remove unnecessary #undefs.
1264         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
1265         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
1266         definition into use sites.
1267         (cwd): Make local to dbxout_init.
1268         (dbxout_init): Restructure cwd-using logic for clarity.  Use
1269         IS_DIR_SEPARATOR.
1270         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
1271         STABS_GCC_MARKER folded in here.
1272         * system.h: Poison now-unused macros.
1273         * doc/tm.texi: Remove documentation of now-unused macros.
1274
1275 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1276
1277         PR c/17538
1278         * c-opts.c (push_command_line_include): Use the current file
1279         name instead of the main one.
1280
1281 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1282
1283         PR objc/17923
1284         * tree.c (staticp): A CONST_DECL has static storage if either
1285         TREE_STATIC or DECL_EXTERNAL is set.
1286         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
1287         have null names.
1288
1289 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
1290
1291         * expr.c (store_expr): Remove dont_store_target.
1292
1293 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
1294
1295         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
1296
1297 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
1298
1299         * tree-cfg.c (thread_jumps): Move a part of it to ...
1300         (thread_jumps_from_bb): ... here.
1301
1302 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
1303
1304         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
1305         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
1306
1307 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
1308
1309         * expr.c (store_expr): Clean up by renaming want_value to
1310         call_param_p.
1311
1312 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1313
1314         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
1315         fixup pc here.
1316
1317 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
1318
1319         PR 18004.
1320         * expmed.c (store_bit_field): Pass original 'value' before
1321         recursing.
1322
1323 2004-10-21  Nicolas Pitre <nico@cam.org>
1324
1325         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
1326         * config/arm/ieee754-df.S: Ditto.
1327
1328 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
1329
1330         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
1331         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
1332         Default to 0.
1333         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
1334         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
1335         an internal label and an N_SLINE .stabn whose value is the
1336         difference between that label and the function entry label.
1337         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
1338         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
1339         label and an N_SO stab with an empty string referring to it.
1340         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
1341         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
1342         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
1343         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
1344         macro is never defined.
1345         * sdbout.c (sdbout_source_line_counter): Delete.
1346         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
1347         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
1348         only two arguments.
1349         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
1350
1351         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
1352         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
1353         definitions (identical to default).
1354         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
1355         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
1356         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
1357         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
1358         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
1359         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
1360         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
1361         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
1362         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
1363         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
1364         (sym_lineno): Delete.
1365         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
1366         now-unused variable.
1367         (alpha_output_lineno): Delete.
1368         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
1369         * config/mips/mips.c (mips_output_filename): Don't use
1370         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
1371         (mips_output_lineno): Delete.
1372         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
1373         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
1374         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
1375         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
1376         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
1377         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
1378         * config/mmix/mmix.h: Likewise.
1379         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
1380         * config/mmix/mmix-protos.h: Don't prototype it.
1381         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
1382         no need to #undef ASM_OUTPUT_SOURCE_LINE.
1383         * config/arm/aout.h: Remove RISCiX-specific definition of
1384         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
1385         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
1386         ASM_OUTPUT_SOURCE_LINE.
1387         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
1388         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
1389         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
1390
1391         * doc/tm.texi: Update.
1392
1393 2004-10-20  Richard Henderson  <rth@redhat.com>
1394
1395         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
1396
1397 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
1398
1399         * configure.ac: Revert my previous patch.
1400         * configure: Regenerate.
1401
1402 2004-10-20  Ben Elliston  <bje@au.ibm.com>
1403
1404         * config/rs6000/rs6000.c
1405         (rs6000_va_start): Use build_va_arg_indirect_ref.
1406         (rs6000_gimplify_va_arg): Likewise.
1407
1408 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
1409
1410         PR java/15575
1411         * configure.ac: Declare AM_LANGINFO_CODESET.
1412         * aclocal.m4: Define AM_LANGINFO_CODESET.
1413         * configure, config.in: Rebuilt.
1414
1415 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
1416
1417         * expr.c (store_expr): Remove code that is run when
1418         want_value & 1 is nonzero.
1419
1420 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
1421
1422         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
1423         from function pointer to void *.
1424
1425 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1426
1427         PR target/18032
1428         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
1429         the frame pointer adjustment when exception handling is enabled.
1430
1431 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
1432
1433         * stor-layout.c: Fix a comment typo.
1434
1435 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
1436
1437         * expr.c (store_field): Remove two arguments value_mode and
1438         unsignedp.
1439         (expand_assignment, store_constructor_field,
1440         expand_expr_real_1): Adjust calls to store_field.
1441
1442 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
1443
1444         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
1445
1446         PR target/17317
1447         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
1448         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
1449         base and index register for loads.
1450
1451         * config/arc/t-arc: Fix multilib handling.
1452
1453 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
1454
1455         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
1456         don't inspect BLOCK_FOR_INSN for barriers.
1457         * emit-rtl.c (emit_barrier_before): Revert last change.
1458         (emit_barrier_after, emit_barrier): Ditto.
1459
1460         * doc/extend.texi (Extended Asm): Warn and provide example
1461         solution for using a call-clobbered asm register.
1462         (Local Reg Vars): Similar.  Cross-reference example.
1463
1464 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
1465
1466         * tree-cfg.c (group_case_labels): Look at the second to last
1467         case statement for combing with the default case.
1468
1469 2004-10-19  Richard Hendeson  <rth@redhat.com>
1470
1471         PR 17962
1472         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
1473
1474 2004-10-19  Richard Hendeson  <rth@redhat.com>
1475
1476         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
1477         succeeds, only expand the result.
1478
1479 2004-10-19  Richard Hendeson  <rth@redhat.com>
1480
1481         PR middle-end/17885
1482         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
1483         of INDIRECT_REF.
1484
1485 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
1486
1487         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
1488         loop with goto.
1489
1490 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
1491
1492         * expr.c (expand_assignment): Remove the last argument.
1493         Change the return type to void.
1494         * expr.h: Update the prototype of expand_assignment.
1495         * function.c (assign_parm_setup_reg): Update a call to
1496         expand_assignment.
1497         * stmt.c (expand_asm_expr): Likewise.
1498
1499 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
1500
1501         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
1502         unnecessary assignments to temp.  Return const0_rtx.
1503
1504 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1505
1506         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
1507
1508 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
1509
1510         * configure.ac (powerpc-*-darwin*): Require assembler to support
1511         .machine directive.
1512         * configure: Regenerate.
1513
1514 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1515
1516         * reload1.c (ior_hard_reg_set): Remove.
1517         (finish_spills): Use IOR_HARD_REG_SET instead of
1518         ior_hard_reg_set.
1519
1520 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1521
1522         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
1523         the currently visited word to right.
1524
1525 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1526
1527         PR middle-end/18045
1528         * expmed.c (expand_smod_pow2): Handle modes whose size
1529         is greater than that of HOST_WIDE_INT.
1530
1531 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
1532
1533         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
1534
1535 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1536             Roger Sayle  <roger@eyesopen.com>
1537
1538         PR middle-end/17813
1539         * dojump.c (discard_pending_stack_adjust): New function.
1540         (clear_pending_stack_adjust): Call it.
1541         * expr.h (discard_pending_stack_adjust): Declare it.
1542         * explow.c (emit_stack_save): Emit pending stack adjustments
1543         before saving the stack pointer.
1544         (emit_stack_restore): Discard pending stack adjustments before
1545         restoring the stack pointer.
1546
1547 2004-10-18  Richard Henderson  <rth@redhat.com>
1548
1549         * c-common.c (handle_mode_attribute): Allow scalar->vector
1550         type changes yet.
1551
1552 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1553
1554         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
1555         value to expand_assignment.
1556
1557 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1558
1559         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
1560         thread_jumps.
1561         (thread_jumps): Iterate until no new forwarder block arises.
1562
1563 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1564
1565         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
1566         (thread_jumps): Use forwardable as cache of
1567         tree_forwarder_block_p throughout the function.
1568
1569 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1570
1571         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
1572
1573 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
1574
1575         PR middle-end/15014
1576         PR middle-end/16973
1577         * tree-cfg.c (remove_bb): If we have a label expression in the
1578         basic block and the label we have taken the address, move the
1579         label expression to the basic block which is previous in the
1580         linked list.
1581         (tree_verify_flow_info): Fix printing out the label name of the
1582         problematic label expression.
1583
1584 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
1585
1586         PR rtl-optimization/18002
1587         * simplify-rtx.c (mode_signbit_p): Externalize function...
1588         * rtl.h (mode_signbit_p): ... to here.
1589         * combine.c (simplify_shift_const): Recognize PLUS signbit as
1590         canonical form of XOR signbit and move to outer op.
1591
1592 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1593
1594         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
1595         Update all callers.
1596         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
1597         Don't call fold_stmt more than once, use bsi_replace.
1598
1599 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1600
1601         PR tree-optimization/17656
1602         * tree-ssa.c (replace_immediate_uses): When replacing a
1603         constant, if the call to fold_stmt produced a different
1604         statement, get an appropriate statement pointer by scanning
1605         STMT's basic block.
1606
1607 2004-10-18  Richard Henderson  <rth@redhat.com>
1608
1609         * pointer-set.c (hash1): Don't use libm functions in fallback case.
1610
1611 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
1612
1613         PR bootstrap/17684
1614         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
1615         (stage1-start): Remove and copy libunwind.a and
1616         libunwind*$(SHLIB_EXT) instead of libunwind*.
1617         (stage2-start): Likewise.
1618         (stage3-start): Likewise.
1619         (stage4-start): Likewise.
1620         (stageprofile-start): Likewise.
1621         (stagefeedback-start): Likewise.
1622
1623         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
1624         the shared library to be created and don't remove the existing
1625         shared library.
1626         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
1627         * config/i386/t-nwld (SHLIB_LINK): Likewise.
1628         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
1629         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
1630         * config/sh/t-linux (SHLIB_LINK): Likewise.
1631         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
1632         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
1633         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
1634         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1635
1636         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
1637         files.
1638
1639 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1640
1641         * basic-block.h (reg_set_iterator): New.
1642         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
1643         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
1644         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
1645         * caller-save.c (save_call_clobbered_regs): Adjust to the new
1646         style.
1647         * cfgcleanup.c (thread_jump): Likewise.
1648         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1649         * conflict.c (conflict_graph_compute): Likewise.
1650         * flow.c (verify_local_live_at_start, update_life_info,
1651         initialize_uninitialized_subregs, propagate_one_insn,
1652         init_propagate_block_info, free_propagate_block_info,
1653         propagate_block, dump_regset): Likewise.
1654         * global.c (global_conflicts): Likewise.
1655         * graph.c (start_bb): Likewise.
1656         * local-alloc.c (update_equiv_regs): Likewise.
1657         * loop.c (load_mems): Likewise.
1658         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
1659         find_reg, finish_spills): Likewise.
1660         * resource.c (mark_target_live_regs): Likewise.
1661         * sched-deps.c (sched_analyze_insn): Likewise.
1662         * sched-rgn.c (sched-rgn.c): Likewise.
1663         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1664
1665 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
1666
1667         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
1668         operand 1 instead of 2
1669
1670 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1671
1672         * loop-unroll.c: Fix comment typos.
1673
1674 2004-10-18  Revital Eres  <eres@il.ibm.com>
1675
1676         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
1677         * loop-unroll.c: Include varray.h.
1678         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
1679         opt_info and expand it to support variable expansion.
1680         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
1681         expand it to support variable expansion.
1682         (pt_info_start_duplication): Rename si_info_start_duplication.
1683         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
1684         to the variable expansion optimization.
1685         (free_opt_info): Rename free_si_info.
1686         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
1687         expand_var_during_unrolling, insert_var_expansion_initialization,
1688         combine_var_copies_in_loop_exit, release_var_copies,
1689         get_expansion): New functions.
1690         (peel_loop_completely, unroll_loop_constant_iterations,
1691         unroll_loop_runtime_iterations, peel_loop_simple,
1692         unroll_loop_stupid): Change uses of struct si_info
1693         to struct opt_info
1694         and add uses of fvariable-expansion-in-unroller flag.
1695         * params.def: Add parameter to restrict the number of expansions.
1696         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
1697         the number of expansions.
1698         * common.opt: (fvariable-expansion-in-unroller): New flag.
1699         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
1700
1701 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
1702
1703         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1704         __GXX_MERGED_TYPEINFO_NAMES to 0.
1705
1706 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
1707
1708         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
1709         handle barriers in a bb by checking that it points to a NULL bb.
1710         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
1711         (emit_barrier_after, emit_barrier): Ditto.
1712
1713 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
1714
1715         * doc/extend.texi (Attribute Syntax): Clarify details of
1716         attributes on parameters.
1717
1718 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
1719
1720         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
1721         loop.
1722
1723 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1724
1725         Revert:
1726         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1727
1728         * c-typeck.c (default_function_array_conversion): Always create
1729         &a[0] for array types.
1730         (build_unary_op): Do not fold &a[x] into a + x.
1731
1732 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1733
1734         PR middle-end/17925
1735         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
1736         block if there is a goto with a locus.
1737
1738 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1739
1740         * config/elfos.h, config/gofast.h, config/interix.h,
1741         config/netbsd.h, config/svr3.h, config/vxworks.h,
1742         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
1743         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1744         config/alpha/netbsd.h, config/arm/arm-modes.def,
1745         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
1746         config/cris/aout.h, config/frv/frv-modes.def,
1747         config/i386/beos-elf.h, config/i386/gas.h,
1748         config/i386/i386-coff.h, config/i386/i386-modes.def,
1749         config/i386/linux.h, config/i386/linux64.h,
1750         config/i386/mingw32.h, config/i386/netbsd-elf.h,
1751         config/i386/netbsd64.h, config/i386/sco5.h,
1752         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
1753         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
1754         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
1755         config/mips/mips-modes.def, config/mips/sdb.h,
1756         config/mips/vr.h, config/mips/vxworks.h,
1757         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1758         config/pa/pa32-linux.h, config/rs6000/40x.md,
1759         config/rs6000/7450.md, config/rs6000/8540.md,
1760         config/rs6000/linuxspe.h, config/rs6000/power4.md,
1761         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
1762         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
1763         config/s390/s390-modes.def, config/sh/elf.h,
1764         config/sh/sh-modes.def, config/sh/sh64.h,
1765         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
1766         config/stormy16/stormy16.md, config/v850/v850-protos.h,
1767         config/vax/vax.md: Update copyright.
1768
1769 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1770
1771         * expr.c (expand_expr_real_1): Remove an obsolete comment.
1772
1773 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1774
1775         * c-typeck.c (default_function_array_conversion): Always create
1776         &a[0] for array types.
1777         (build_unary_op): Do not fold &a[x] into a + x.
1778
1779 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
1780
1781         * pointer-set.c (hash1): Use integer part of 2^64 / phi
1782         instead 2^32 / phi if long is 64-bit.
1783
1784 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1785
1786         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
1787         RID_PTRVALUE.
1788         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
1789         declarations.
1790         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
1791         __ptrextent__, __ptrvalue and __ptrvalue__.
1792         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
1793         entries.
1794
1795 2004-10-16  Dale Johannesen  <dalej@apple.com>
1796
1797         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
1798
1799 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1800
1801         PR tree-optimization/17766
1802         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
1803         (dom_info_available_p): Declare.
1804         * cfghooks.c (split_block, make_forwarder_block): Use
1805         dom_info_available_p.
1806         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1807         free_dominance_info, verify_dominators): Ditto.
1808         (dom_info_available_p): New function.
1809         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
1810         (thread_jumps): Use dom_info_available_p.
1811         * tree-complex.c (expand_complex_div_wide): Ditto.
1812         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1813
1814 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1815
1816         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
1817         (find_best_candidate): Take also important candidates into account.
1818         (find_optimal_iv_set): Initialize important_candidates bitmap.
1819
1820 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1821
1822         PR tree-optimization/17560
1823         * predict.c (tree_estimate_probability): Mark irreducible
1824         loops.
1825
1826 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1827
1828         PR rtl-optimization/17723
1829         * cfgcleanup.c (merge_memattrs): Handle case when
1830         MEM_SIZE == NULL_RTX.
1831
1832 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
1833
1834         * toplev.c (dump_file_name): Change type to be const.
1835
1836 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1837
1838         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
1839         non_lvalue to stop something being a null pointer constant.
1840
1841 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
1842
1843         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
1844         available for TARGET_FPRS.
1845         (FUNCTION_VALUE_REGNO_P): Same.
1846
1847 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
1848
1849         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1850         -maltivec in same style as other ISA options.
1851
1852 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
1853
1854         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
1855         definition.
1856
1857 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1858
1859         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
1860         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
1861         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
1862         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
1863         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
1864         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
1865         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
1866         predict.def, predict.h, protoize.c, reload.h, resource.h,
1867         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
1868         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
1869         unwind-sjlj.c, value-prof.h: Update copyright.
1870
1871 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1872
1873         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
1874
1875 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
1876
1877         * tree-optimize.c (execute_one_pass): Stop timer right after
1878         executing the pass.
1879
1880 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1881
1882         Revert:
1883         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1884         PR middle-end/17967
1885         Revert:
1886                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1887                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1888
1889 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1890
1891         * configure.ac: Add .machine power4 directive when testing for
1892         mfcr field.
1893         * configure: Regenerate.
1894
1895 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1896
1897         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
1898
1899 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1900
1901         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
1902         always.
1903
1904 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
1905
1906         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
1907         for 'f' if !TARGET_FPRS.
1908
1909 2004-10-14  Richard Henderson  <rth@redhat.com>
1910
1911         PR debug/14492
1912         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
1913
1914 2004-10-14  Richard Henderson  <rth@redhat.com>
1915
1916         PR c/17023
1917         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
1918         as error_mark_node.
1919         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
1920         instaed of current_function_decl non-null.
1921
1922 2004-10-14  Matt Austern  <austern@apple.com>
1923
1924         * pointer-set.c: New file, special-purpose hash table.
1925         * pointer-set.h: New file.
1926         * tree.h (struct pointer_set_t): Declare as opaque type.
1927         (tree_walk): Last argument is pointer_set_t* now.
1928         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
1929         (walk_type_fields):
1930         (walk_tree): Convert from htab_t to pointer_set_t for keeping
1931         track of which nodes have already been visited.
1932         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
1933         * cgraphunit.c (cgraph_create_edges): Likewise.
1934         (cgraph_characterize_statics_local): Likewise.
1935         * tree-dfa.c (collect_dfa_stats): Likewise.
1936         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
1937         pointer_set_t* now.
1938         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
1939         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
1940         of walk_subtrees is pointer_set_t* now.
1941         * Makefile.in (OBJS-common): add pointer-set.o
1942         (tree-inline.o): Depends on pointer-set.h
1943         (tree-dfa.o): Likewise
1944         (cgraphunit.o): Likewise
1945
1946 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1947
1948         * config/rs6000/darwin.h (ASM_SPEC): Delete.
1949         (TARGET_ASM_FILE_START): Define.
1950         * config/darwin.h (ASM_SPEC): Define.
1951         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
1952         -mlong-double-128, it's the default.  Update comment about reason
1953         for force_cpusubtype_ALL.
1954         * config/rs6000/darwin-vecsave.asm: Supply .machine.
1955         * config/rs6000/darwin-world.asm: Likewise.
1956         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
1957         (symbolic_operand): Delete #if 0ed code.
1958
1959 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1960
1961         * stmt.c (add_case_node): Make sure that we have integer
1962         constant before calling tree_int_cst_compare.
1963
1964 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1965
1966         PR middle-end/17967
1967         Revert:
1968                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1969                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1970
1971 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
1972
1973         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
1974         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
1975         -m64.
1976
1977 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
1978
1979         * reload.c (find_reloads): When reloading a PLUS with constant
1980         operand, make sure the constant is pushed to the constant pool
1981         if required.
1982         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
1983         reload bug workaround.
1984         (s390_expand_plus_operand): Likewise.
1985
1986 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1987
1988         * opts.c (common_handle_option): Do not enable
1989         flag_speculative_prefetching for -fprofile-generate/use.
1990
1991 2004-10-14  Devang Patel  <dpatel@apple.com>
1992
1993         PR 17635
1994         * tree-if-conv.c (process_phi_nodes): Process latch block.
1995         (combine_blocks): Process latch block and update loop structure.
1996
1997 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
1998
1999         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
2000         (vect_update_ivs_after_vectorizer):
2001         (vect_transform_for_unknown_loop_bound):
2002         (tree_duplicate_loop_to_edge):
2003         (allocate_new_names):
2004         (rename_use_op):
2005         (rename_def_op):
2006         (rename_variables_in_bb):
2007         (free_new_names):
2008         (rename_variables_in_loop):
2009         (copy_phi_nodes):
2010         (update_phis_for_duplicate_loop):
2011         (update_phi_nodes_for_guard):
2012         (make_loop_iterate_ntimes):
2013         (tree_duplicate_loop_to_edge_cfg):
2014         (add_loop_guard):
2015         (vect_analyze_loop_with_symbolic_num_of_iters):
2016         (verify_loop_for_duplication):
2017         (vect_gen_niters_for_prolog_loop):
2018         (vect_update_niters_after_peeling):
2019         (vect_update_inits_of_dr):
2020         (vect_update_inits_of_drs):
2021         (vect_build_loop_niters):
2022         (vect_do_peeling_for_alignment): New functions.
2023         (vect_transform_loop): Add unknown and known but indivisible loop
2024         bound support; add peeling for unalignment support.
2025         (vect_analyze_loop_form): Support symbolic number of iterations.
2026         (vect_transform_loop_bound): New input parameter.
2027         (vect_get_loop_niters): Change input parameter type.
2028         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
2029         (vectorizable_store): Allow unaligned access.
2030         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
2031         (vect_analyze_data_refs_alignment): Allowed one unaligned
2032         store.
2033         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
2034         to use tree.
2035         (LOOP_VINFO_INT_NITERS): New macro.
2036         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
2037         (do_peeling_for_alignment):
2038         (unaligned_drs): New members of _loop_vec_info.
2039         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
2040
2041 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
2042
2043         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
2044         (struct tree_string): Remove "const" qualifier for "str".
2045
2046 2004-10-14  Ira Rosen  <irar@il.ibm.com>
2047
2048         * tree-vectorizer.c (vect_analyze_data_refs): Call
2049         vect_get_base_and_bit_offset to get memory tag for array ref.
2050         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
2051
2052 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
2053
2054         * configure.ac: Use $LN_S for creating symlinks (not $LN).
2055         * configure: Regenerate.
2056
2057 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2058
2059         * doc/install.texi (*-*-solaris2*): Update with info about kernel
2060         patches to solve spurious testsuite failures.
2061
2062 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
2063
2064         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
2065         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
2066         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
2067         gcc_assert under ENABLE_CHECKING.
2068         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
2069         get_vectype_for_scalar_type).
2070
2071         (vect_get_vec_def_for_operand): Remove redundant variables.
2072         (vect_transform_loop): Likewise.
2073
2074 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
2075
2076         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
2077         global for -mcaller-super-interworking.
2078         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
2079         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
2080         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
2081         not need a frame pointer.
2082         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
2083         the soft frame pointer offset.
2084         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
2085         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
2086         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
2087         the stack.  Use frame_pointer_needed to choose between them.
2088         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
2089         (interwork_with_frame): New macro.
2090         (interwork): Add _interwork_{r7,r11}_call_via_rN().
2091
2092 2004-10-14  Ben Elliston  <bje@au.ibm.com>
2093
2094         PR other/17900
2095         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
2096         up the filename looking for a previous directory separator.
2097
2098 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2099
2100         * c-tree.h (enum c_typespec_kind, struct c_typespec,
2101         parser_xref_tag): New.
2102         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
2103         typedef_p.
2104         (declspecs_add_type): Adjust prototypes.
2105         * c-parse.in (%union): Add tstype.
2106         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
2107         typespec_reserved_attr, typespec_nonreserved_nonattr,
2108         structsp_attr, structsp_nonattr): Change to tstype.  Update
2109         actions.
2110         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
2111         (declspecs_add_type): Update to take struct c_typespec argument.
2112         Set tag_defined_p and typedef_p as appropriate.
2113         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
2114         Update to return struct c_typespec.
2115         (shadow_tag_warned): Don't let empty declarations with qualifiers
2116         or storage class specifiers redeclare a tag if a previous
2117         declaration is visible.
2118
2119 2004-10-13  Richard Henderson  <rth@redhat.com>
2120
2121         PR debug/15860
2122         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
2123         for DECL_INCOMING_RTL.
2124
2125 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
2126
2127         PR target/17984
2128         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
2129         trunc_int_for_mode for constants used in shortened mode.
2130
2131 2004-10-13  Richard Henderson  <rth@redhat.com>
2132
2133         PR c/17384
2134         * c-common.c (handle_mode_attribute): Disallow mode changes that
2135         alter the CODE of the top-level type.
2136
2137         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
2138         integer from internal limits macros.
2139         * config/i386/mm3dnow.h (__v2sf): Fix base type.
2140
2141 2004-10-13  Richard Henderson  <rth@redhat.com>
2142
2143         PR debug/13841
2144         * function.c (instantiate_decl): Recurse for CONCAT.
2145
2146 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
2147
2148         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
2149         andi./andis.
2150         (anddi3): Same.
2151         (extzvdi_internal1): Add attribute "compare".
2152         (extzvdi_internal2): Same.
2153
2154 2004-10-12  Tom Tromey  <tromey@redhat.com>
2155
2156         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
2157
2158 2004-10-13  Dale Johannesen  <dalej@apple.com>
2159
2160         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
2161
2162 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
2163
2164         * toplev.c (compile_file): Call mudflap_finish_file from here ...
2165         * c-decl.c (c_write_global_declarations): ... instead of here ...
2166         * cp/decl.c (cp_finish_file): ... and here.
2167         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
2168
2169 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
2170
2171         * tree-ssa-dom.c (record_range): Free the element if we are not
2172         going to use it.
2173
2174 2004-10-13  Tom Tromey  <tromey@redhat.com>
2175
2176         PR java/15578:
2177         * gcc.c (option_map): Added --extdirs and --encoding.
2178
2179 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2180
2181         PR target/14454
2182         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
2183         sparc_can_output_mi_thunk.
2184         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
2185         handling of vcall offset.
2186         (sparc_can_output_mi_thunk): New predicate.
2187         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
2188         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
2189         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
2190
2191         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
2192
2193         * config/sparc/sparc.md (movdi): Remove redundant test.
2194
2195 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
2196
2197         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
2198         TDF_IPA from -fdump-tree-*-all.
2199
2200 2004-10-13  Paul Brook  <paul@codesourcery.com>
2201
2202         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
2203         * config/arm/arm.c (thumb_find_work_register): Update comments.
2204         (arm_load_pic_register): Add argument for scratch register.
2205         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
2206         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
2207
2208 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
2209
2210         * tree-data-ref.c: Fix comment typos.
2211
2212 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
2213             Zdenek Dvorak  <dvorakz@suse.cz>
2214
2215         PR tree-optimization/17724
2216         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
2217
2218 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
2219
2220         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
2221         (altivec_builtin_mask_for_store): Likewise.
2222         (altivec_init_builtins): Use lang_hooks.builtin_function to
2223         create the decls for builtin_altivec_mask_for_load/store.
2224
2225 2004-10-13  Nick Clifton  <nickc@redhat.com>
2226
2227         * config/c4x/c4x.c: Remove inclusion of loop.h.
2228
2229 2004-10-12  Ben Elliston  <bje@au.ibm.com>
2230
2231         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
2232         (ei_container): New; renamed.
2233         (ei_start, ei_last): New macros.
2234         (ei_start_1, ei_last_1): Renamed from ei_start.
2235         (ei_last_1, ei_end_p): Use ei_container() where applicable.
2236         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
2237         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
2238
2239 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
2240
2241         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
2242         * cfgloop.c (initialize_loops_parallel_p): New.
2243         (flow_loops_find): Initialize the parallel_p field to true for all
2244         the loops.
2245         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
2246         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
2247         the size of the data accessed in the loop.
2248         (struct nb_iter_bound): Moved...
2249         * cfgloop.h (struct nb_iter_bound): ... here.
2250         (estimated_nb_iterations, parallel_p): New fields in struct loop.
2251         (record_estimate): Declare extern here.
2252         * tree-chrec.c: Fix comments.
2253         (nb_vars_in_chrec): New function.
2254         * tree-chrec.h (nb_vars_in_chrec): Declared here.
2255         * tree-data-ref.c: Don't include lambda.h, that is already included
2256         in tree-data-ref.h.
2257         (tree_fold_divides_p): Don't check for integer_onep.
2258         (tree_fold_bezout): Removed.
2259         (gcd): New static duplicated function.
2260         (int_divides_p, dump_subscript): New.
2261         (dump_data_dependence_relation): Use dump_subscript.
2262         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
2263         estimate_niter_from_size_of_data): New.
2264         (analyze_array_indexes, analyze_array): Call
2265         estimate_niter_from_size_of_data during the detection of array
2266         references.  Pass in a pointer to the statement that contains the
2267         array reference.
2268         (all_chrecs_equal_p): New.
2269         (compute_distance_vector): Renamed compute_subscript_distance.
2270         Deal with multivariate conflict functions.
2271         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
2272         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
2273         (non_affine_dependence_relation): New.
2274         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
2275         analyze_siv_subscript, analyze_miv_subscript,
2276         analyze_overlapping_iterations, subscript_dependence_tester):
2277         Initialize and return last_conflicts function.
2278         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
2279         compute_overlap_steps_for_affine_1_2): New.
2280         (analyze_siv_subscript_affine_cst): Removed.
2281         (analyze_subscript_affine_affine): Disprove dependences based on the
2282         iteration domains.  Solve the univariate dependence case as before,
2283         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
2284         Implement the multivariate case of 2 versus 1 variables.
2285         (build_classic_dist_vector, build_classic_dir_vector): Implement some
2286         unhandled cases.
2287         (find_data_references_in_loop): Compute and initialize
2288         loop->estimated_nb_iterations and loop->parallel_p.
2289         (analyze_all_data_dependences): Modify the debug dump order.
2290         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
2291         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
2292         (SUB_LAST_CONFLICT, subscript->last_conflict,
2293         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
2294         DDR_AFFINE_P, DDR_SIZE_VECT): New.
2295         (find_data_references_in_loop, initialize_data_dependence_relation,
2296         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
2297
2298 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
2299
2300         * configure: Regenerate.
2301
2302 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
2303
2304         PR 17892
2305         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
2306         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
2307         and constant folding of floating point MULT_EXPR/PLUS_EXPR
2308         expressions.
2309
2310 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
2311
2312         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
2313         (s390_gimplify_va_arg): Likewise.
2314
2315 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
2316
2317         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
2318         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
2319         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
2320         * regclass.c (record_address_regs): Remove ifdef.  Use
2321         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
2322         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
2323         definition.
2324         (scan_rtx_address, replace_oldest_value_addr): Use
2325         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
2326         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
2327         unnecessary definitions.
2328         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
2329         and MODE_BASE_REG_REG_CLASS.
2330         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
2331         (MODE_BASE_REG_REG_CLASS): Define.
2332         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
2333         (REG_MODE_OK_FOR_REG_BASE_P): Define.
2334         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
2335         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
2336
2337 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
2338
2339         * tree-ssa-alias.c (verify_name_tags): New function.
2340         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
2341         (verify_alias_info): Call verify_name_tags.
2342
2343 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
2344
2345         PR rtl-optimization/17931
2346         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
2347         ZERO_EXTRACT in it.
2348
2349 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
2350
2351         * arm.c (arm_print_operand): Use output_operand_lossage where possible
2352         rather than aborting.
2353
2354 2004-10-12  Paul Brook  <paul@coudesourcery.com>
2355
2356         * config.gcc: Add armv6{k,z,zk}
2357         * config/arm/arm-cores.def: Add arm1176 and mpcore.
2358         * config/arm/tune.md: Regenerate.
2359         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
2360         Define.
2361         (all_architectures): Add armv6k, armv6z, armv6zk.
2362         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
2363         * doc/invoke.texi: Document new arch and cpu values.
2364
2365 2004-10-12  Paul Brook  <paul@coodesourcery.com>
2366
2367         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
2368         meabi=4.
2369
2370 2004-10-12  Paul Brook  <paul@codesourcery.com>
2371
2372         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
2373         Handle negative constants.
2374
2375 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
2376
2377         PR c/17301
2378         * c-typeck.c (convert_arguments): Return error_mark_node if there
2379         are too few arguments.
2380         (build_function_call): Handle error_mark_node return from
2381         convert_arguments.
2382
2383 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
2384
2385         * configure.ac (symbolic_link): Replace with $LN_S.
2386         (Assembler/Linker): Hard link from gas and binutils trees.
2387         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
2388         * configure: Regenerate.
2389
2390 2004-10-12  Paul Brook  <paul@codesourcery.com>
2391
2392         * configure.ac: Don't look for host assembler when building a canadian
2393         cross.
2394         * configure: Regenerate.
2395
2396 2004-10-11  Roger Sayle  <roger@eyesopen.com>
2397
2398         PR other/17361
2399         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
2400         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
2401         line options for "-lang-asm" and if found allow any of the C-family
2402         front-end options.
2403         (c_common_handle_option): Remove last use of permit_fortran_options.
2404
2405 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
2406
2407         * config/s390/s390.c (print_operand): Support 'S' format flag.
2408         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
2409         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
2410         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
2411         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
2412         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
2413         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
2414         ("*movstricthi"): Likewise.
2415         ("*load_multiple_di", "*load_multiple_si"): Likewise.
2416         ("*store_multiple_di", "*store_multiple_si"): Likewise.
2417         ("*sethiqisi", "*sethihisi"): Likewise.
2418         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
2419         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
2420         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
2421         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
2422         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
2423
2424         ("*tmhi_full"): Fix incorrect op_type attribute.
2425
2426         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
2427         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
2428         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
2429         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
2430
2431 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
2432
2433         PR middle-end/16266
2434         * function.c (temp_slots_at_level): Fix typo which creates too
2435         many temp stack slots levels.
2436
2437 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
2438
2439         * config/s390/s390.c (s390_trampoline_template): Generate shorter
2440         trampoline code.
2441         (s390_trampoline_instantiate): Adapt.
2442         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
2443
2444 2004-10-11  Roger Sayle  <roger@eyesopen.com>
2445
2446         PR middle-end/17657
2447         * stmt.c (add_case_node): Add additional type argument.  Declare
2448         as static to match prototype.  Convert the upper and lower bounds
2449         to the specified index type.  Optimize away case ranges/values
2450         that are outside the index type's bounds.  Truncate case ranges
2451         that span the index type's bounds.
2452         (expand_case): Avoid unnessary computation and memory allocation
2453         when index type is error_mark_node.  Pass index_type as required
2454         by change to add_case_node API.  No need to convert case range
2455         bounds to index_type, this is now done by add_case_node.
2456
2457 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
2458
2459         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
2460         * config/s390/s390.c (s390_offset_p): New function.
2461         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
2462         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
2463         transform Q->Q alternatives to *clc pattern.
2464         ("*clc"): Move.
2465         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
2466         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
2467         to transform Q->Q alternatives to *mvc pattern.
2468         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
2469         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
2470         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
2471         transform Q->Q alternatives to *nc pattern.
2472         ("*nc"): New insn.  New peephole to merge adjacent NCs.
2473         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
2474         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
2475         transform Q->Q alternatives to *oc pattern.
2476         ("*oc"): New insn.  New peephole to merge adjacent OCs.
2477         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
2478         transform Q->Q alternatives to *xc pattern.
2479         ("*xc"): New insn.  New peephole to merge adjacent XCs.
2480         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
2481
2482 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
2483
2484         * gimplify.c (gimple_push_condition): Make sure that we don't
2485         have any saved condition cleanup if we were at the top level.
2486
2487 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
2488
2489         * config/frv/frv.md (*adddi3_internal): Change name to...
2490         (adddi3): ...replacing the exisiting define_expand.  Combine
2491         alternatives.  Fix the range of the constant constraints ('J' instead
2492         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
2493         to extract the lower and upper halves of the DImode operands.
2494         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
2495         (adddi3_lower): Fix the range of the constant constraints and
2496         remove the bogus operands[2] check.
2497         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
2498         operand 2.  Use addxi to handle constant operands.
2499         (subdi3_lower, subdi3_upper): Don't handle constant operands.
2500
2501 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
2502
2503         * gengtype-lex.l: Add commented } & ) characters to unconfuse
2504         editor's paren matching. Allow #define inside a struct.
2505
2506 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
2507
2508         PR middle-end/17703
2509         part of PR c++/17657
2510         * fold-const.c (fold_build_cleanup_point_expr): New function.
2511         * tree.h (fold_build_cleanup_point_expr): Prototype.
2512
2513 2004-10-10  Eric Christopher  <echristo@redhat.com>
2514
2515         * dwarf2out.c: Move attribute to subprogram declaration
2516         instead of subroutine type.
2517
2518 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2519
2520         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
2521         hoist_insn_after, and hoist_insn_to_edge.
2522         * rtl.h: Remove the prototypes for reg_referenced_between_p,
2523         no_jumps_between_p, and insn_dependent_p.
2524         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
2525         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
2526         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
2527         hoist_insn_to_edge): Remove.
2528
2529 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2530
2531         PR c/17881
2532         * c-decl.c (grokparms): Don't warn for parameters of incomplete
2533         type in declarations that are not definitions except for the case
2534         of parameters of void type.
2535
2536 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2537
2538         * tree-cfg.c: Fix comment typos.
2539
2540 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2541
2542         PR c/17301
2543         * builtins.c (expand_builtin_va_start): Check for too few
2544         arguments to va_start.
2545
2546 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2547
2548         PR c/17189
2549         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
2550         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
2551         pedantic.
2552         * c-parse.in (component_decl): Don't pedwarn here for unnamed
2553         fields.
2554
2555 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
2556
2557         PR tree-optimization/17906
2558         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
2559         copy non-gimple reg arguments.
2560
2561 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2562
2563         PR rtl-optimization/17853
2564         * simplify-rtx.c (simplify_relational_operation): Correct comment.
2565         Reorganize handling of comparison operations with floating point
2566         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
2567         Likewise, introduce support for comparison operations with vector
2568         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
2569
2570         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
2571         * doc/tm.texi: Likewise.
2572
2573 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2574
2575         * regs.h (struct reg_info_def): Remove the last_node_uid and
2576         changes_mode fields.
2577         (REGNO_LAST_NOTE_UID): Don't define.
2578         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
2579         * regmove.c (copy_src_to_dest): Likewise.
2580
2581 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2582
2583         PR middle-end/17894
2584         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
2585         relational comparison operator op needs to be swapped/reversed when
2586         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
2587
2588 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2589
2590         PR tree-opt/17902
2591         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
2592         instead of bsi_start.
2593         (value_replacement): Likewise.
2594         (abs_replacement): Likewise
2595
2596 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2597
2598         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
2599         (expand_gimple_cond_expr, expand_gimple_tailcall,
2600         expand_gimple_basic_block): Use it to dump RTL for each stmt.
2601         (tree_expand_cfg): Announce full RTL function dump.
2602         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
2603         not the graph version.
2604         * tree-pretty-print.c (dump_generic_node): Allow empty statements
2605         in the arms of a COND_EXPR for lowered nodes.
2606
2607 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
2608
2609         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
2610         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
2611         strtoufix16, strtoufix32, strtoufix64): Declare.
2612
2613 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2614
2615         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
2616         for an out-of-range floating point constant.
2617         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
2618         warning if the target format does not support infinities.
2619
2620 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2621
2622         * emit-rtl.c (last_label_num, base_label_num): Remove.
2623         (max_label_num): Always return label_num.
2624         (set_new_last_label_num, restore_emit_status): Remove.
2625         (init_emit): Don't initialize last_label_num.
2626         * function.c (pop_function_context_from): Don't call
2627         restore_emit_status.
2628         * function.h: Remove the prototype for restore_emit_status.
2629         * rtl.h: Remove the prototype for set_new_last_label_num.
2630
2631 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2632
2633         * stmt.c (expand_decl_init): Remove.
2634         * tree.h: Remove the corresponding prototype.
2635
2636 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2637
2638         * integrate.c (try_constants, subst_constants, mark_stores):
2639         Remove.
2640         * integrate.h: Remove the prototype for try_constants.
2641
2642 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2643
2644         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
2645         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
2646         comments about its relevance to errors.
2647         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
2648
2649 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2650
2651         PR c/16999
2652         * c-ppoutput.c (cb_ident): Don't quote string as it is already
2653         quoted.
2654
2655 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
2656
2657         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
2658         reference_node_pool.
2659
2660 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2661
2662         * tree-cfg.c: Fix a comment typo.
2663
2664 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
2665
2666         * config/s390/s390.c (s390_register_info): Don't save fprs for
2667         -msoft-float.
2668         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
2669
2670 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
2671
2672         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
2673         (TARGET_DEFAULT): Use symbolic values.
2674         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
2675         (TARGET_DEFAULT): Use symbolic values.
2676         * config/s390/s390.c (s390_backchain_string): Initialize to
2677         TARGET_DEFAULT_BACKCHAIN.
2678
2679 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2680
2681         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
2682         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
2683         code.
2684         (expand_builtin_strcat): Accept a type parameter.
2685         (fold_builtin_mempcpy): Accept a type and endp parameter.
2686
2687         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
2688         Accept an `exp' instead of an `arglist'.
2689
2690 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
2691
2692         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
2693         reverting my 2004-09-07 patch to use build_int_cst.
2694
2695 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2696
2697         PR target/17245
2698         * config/sparc/sparc.c (input_operand): Remove redundant code
2699         for handling LO_SUM.
2700         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
2701         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
2702         Otherwise only accept it for TFmode if quad move insns are available.
2703
2704 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2705
2706         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
2707         common cases will be caught earlier than others.
2708
2709 2004-10-08  Michael Matz  <matz@suse.de>
2710
2711         * loop-doloop.c (doloop_optimize): Extend count.
2712
2713 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2714
2715         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
2716         (prefetch): Convert to expander.
2717
2718 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2719
2720         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
2721         first argument of CALL.
2722         (tls_local_dynamic): Likewise.
2723
2724 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2725
2726         * c-typeck.c (enum impl_conv): New.
2727         (convert_for_assignment): Use it.  Take tree for function called
2728         instead of its name.  Handle ObjC selectors for diagnostics at
2729         start of function.  Select diagnostic text within the function
2730         using full sentences for diagnsotics.  Use %qE to name functions
2731         in diagnostics.
2732         (convert_arguments, build_modify_expr,
2733         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
2734         callers to convert_for_assignment.
2735         (warn_for_assignment): Remove.
2736
2737 2004-10-08  Nick Clifton  <nickc@redhat.com>
2738
2739         * config/sh/symbian.c (symbian_possibly_export_base_class):
2740         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
2741         TYPE_CONTAINS_VPTR_P.
2742
2743 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2744
2745         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
2746         fixed registers form all_used_regs. Update call_really_used_regs.
2747         (CALL_REALLY_USED_REGISTERS): Define.
2748         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
2749         with call_really_used_regs.
2750
2751 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
2752
2753         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
2754         for -profile as well as -p and -pg.
2755
2756 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
2757
2758         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
2759
2760 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2761
2762         * tree-cfg.c (tree_block_forwards_to): Remove.
2763         * tree-flow.h: Remove the corresponding prototype.
2764
2765 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2766
2767         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
2768         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
2769
2770 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
2771
2772         Radar 3813796
2773         * config/rs6000/rs6000.c (rs6000_generate_compare): When
2774         flag_trapping_math is in effect, don't generate subtract
2775         instructions.
2776
2777 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
2778
2779         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
2780         * config/s390/s390.c (s390_narrow_logical_operator): New function.
2781         (s390_extra_constraint_str): Add 'A' constraints.
2782         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
2783         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
2784         (CONSTRAINT_LEN): Likewise.
2785         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
2786         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
2787         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
2788         ("*iordi3"): Add OI alternative and splitter.
2789         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2790         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
2791         ("*xordi3"): Add XI alternative and splitter.
2792         ("*xorsi3", "*xorhi3"): Likewise.
2793
2794 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2795
2796         * config/mips/mips.c (mips_function_rodata_section): New function.
2797         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
2798
2799 2004-10-07  Devang Patel  <dpatel@apple.com>
2800
2801         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
2802         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
2803         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
2804         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
2805         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
2806         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
2807         UNSPEC_VCONDU_V16QI): New constant defines.
2808         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
2809         vconduv16qi): New patterns.
2810         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
2811         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
2812         (get_vec_cmp_insn): Same.
2813         (get_vsel_insn): Same.
2814         (rs6000_emit_vector_compare): Same.
2815         (rs6000_emit_vector_select): Same.
2816         (INSN_NOT_AVAILABLE): New.
2817
2818 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2819
2820         PR tree-optimization/17749
2821         * tree-tailcall.c (find_tail_calls): Check that parameter is
2822         a gimple_reg.
2823
2824 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2825
2826         * config/ia64/ia64.c: Fix a comment typo.
2827
2828 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2829
2830         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
2831
2832 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2833
2834         PR c++/17115
2835         * tree-inline.c (expand_call_inline): Do not warn for functions
2836         marked with attribute noinline.
2837
2838 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2839
2840         PR target/17862
2841         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
2842         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
2843
2844         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
2845         of 0 as 4th argument to pass_by_reference.
2846         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
2847
2848 2004-10-06  Eric Christopher  <echristo@redhat.com>
2849
2850         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
2851         attribute.
2852
2853 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2854
2855         PR target/17770
2856         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
2857
2858 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2859
2860         PR rtl-optimization/17791
2861         * loop-doloop.c (doloop_modify): Take number of iterations as
2862         argument.
2863         (doloop_optimize): Extend or shorten the number of iterations
2864         when changing mode of counter register.
2865         * loop-iv.c (lowpart_subreg): Export.
2866         * rtl.h (lowpart_subreg): Declare.
2867
2868 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2869
2870         PR tree-optimization/17806
2871         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
2872         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
2873         flags moved to split_edge.
2874
2875 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2876
2877         PR middle-end/17835
2878         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
2879         before tentatively building the conditional move sequence.
2880
2881 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2882
2883         PR target/16815
2884         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
2885         check.
2886         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
2887         function_arg_padding.
2888
2889 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2890
2891         PR bootstrap/17857
2892         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
2893
2894 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2895
2896         * hooks.c (hook_int_void_1, hook_void_int): Remove.
2897         * hooks.h: Remove the corresponding prototypes.
2898
2899 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2900
2901         PR middle-end/17849
2902         * tree-nested.c (walk_stmt_info): Add changed field.
2903         (convert_nonlocal_reference): Set changed to when we
2904         change a decl to unnested decl.
2905         <case ADDR_EXPR>: Instead of checking if the immediate part
2906         of the ADDR_EXPR changed, check the field changed.
2907         Use recompute_tree_invarant_for_addr_expr instead of unsetting
2908         TREE_INVARIANT.
2909         (convert_local_reference):  Set changed to when we
2910         change a decl to unnested decl.
2911         <case ADDR_EXPR>: Instead of checking if the immediate part
2912         of the ADDR_EXPR changed, check the field changed.
2913         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
2914
2915 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2916
2917         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2918         * dwarf2out.c (dwarf2out_init): Remove references to
2919         DWARF2_GENERATE_TEXT_SECTION_LABEL.
2920         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
2921         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2922
2923 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2924
2925         * c-typeck.c (convert_arguments): Take expression for called
2926         function rather than its name.  Handle ObjC selectors directly
2927         rather than relying on warn_for_assignment to do so.  Call warning
2928         directly rather than warn_for_assignment.  Use %qE in diagnostics.
2929         Say "argument" rather than "arg" in diagnostics.
2930         (build_function_call): Update call to convert_arguments.
2931
2932 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2933
2934         PR debug/17787
2935         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
2936         ENUMs specially instead of just saying we do.
2937
2938 2004-10-06  Eric Christopher  <echristo@redhat.com>
2939
2940         * dwarf2.h: Sync with include/elf/dwarf2.h
2941
2942 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2943
2944         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
2945         and TREE_VEC nodes.
2946
2947 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2948
2949         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
2950         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2951
2952 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2953
2954         * lambda-code.c (compute_nest_using_fourier_motzkin): New
2955         function.
2956         (lambda_compute_auxillary_space): Split from here.
2957
2958 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2959
2960         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
2961         * tree-flow.h: Add prototype.
2962         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
2963         expr_invariant_in_loop.
2964
2965 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2966
2967         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2968         EXIT_BLOCK_PTR.
2969
2970 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
2971
2972         * config/s390/s390-protos.h (s_imm_operand): Remove.
2973         (s390_pool_operand): Add prototype.
2974         * config/s390/s390.c (general_s_operand): Remove.
2975         (s_imm_operand): Remove.
2976         (s_operand): Merge contents of general_s_operand.
2977         (s390_pool_operand): New function.
2978         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
2979         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
2980         ("*cmpdi_ccu"): Merge Q->Q alternative.
2981         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
2982         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
2983         ("*cli"): Remove.
2984         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
2985         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
2986         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
2987
2988 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
2989
2990         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
2991         call ia64_function_arg_boundary.
2992         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
2993         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
2994         (ia64_function_arg_advance): Do not put 128 bit floats into
2995         FP registers.
2996
2997 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2998
2999         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
3000         Accept an expression instead of an arglist.
3001         (expand_builtin_stpcpy): Accept an expression instead of an
3002         arglist.
3003
3004 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3005
3006         PR target/16007
3007         * doc/install.texi (*-*-solaris2*): Mention potential problem
3008         with Sun assembler + GNU linker and C++ programs.
3009         Document status of binutils 2.15 release.
3010
3011 2004-10-06  Jan Hubicka  <jh@suse.cz>
3012
3013         * cse.c (cse_main): Kill push/pop context.
3014
3015 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
3016
3017         * pretty-print.c: Include tree.h.
3018         (pp_base_prepare_to_format): New function, logic from
3019         text_specifies_location.
3020         (pp_base_format_text): Use gcc_assert.
3021         * pretty-print.h (pp_prepare_to_format): New macro.
3022         (pp_base_prepare_to_format): Prototype.
3023         * diagnostic.c (text_specifies_location): Delete.
3024         (bug_report_request): Delete.
3025         (diagnostic_set_info): Don't call text_specifies_location.
3026         (diagnostic_action_after_output): Put text from
3027         bug_report_request inline here.  Use gcc_unreachable.
3028         (diagnostic_report_current_function): Fix comment.
3029         (diagnostic_report_diagnostic): Clarify logic for error recursion.
3030         Call pp_prepare_to_format before diagnostic_starter.
3031         (trim_filename): Use IS_DIR_SEPARATOR.
3032         (fatal_error, internal_error): Use gcc_unreachable.
3033         (error_recursion): Call diagnostic_action_after_output to
3034         issue the bug_report_request message and exit.
3035         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
3036
3037         * c-parse.in: Add list of diagnostic messages to insulate
3038         translation template from version of yacc/bison used to
3039         compile the grammar.
3040
3041 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
3042
3043         PR 16406
3044         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
3045
3046 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
3047
3048         * basic-block.h: Remove the prototype for
3049         flow_preorder_transversal_compute.
3050         * cfganal.c (dfst_node): Remove.
3051         (flow_preorder_transversal_compute): Likewise.
3052         * rtl.h: Remove the prototype for get_jump_table_offset.
3053         * rtlanal.c (get_jump_table_offset): Remove.
3054
3055 2004-10-05  Richard Henderson  <rth@redhat.com>
3056
3057         PR 17756
3058         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
3059
3060 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
3061
3062         PR bootstrap/17817
3063         * Makefile.in: Stage the build directory too.
3064
3065 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
3066
3067         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
3068
3069         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
3070         (frv_emit_move): Same.
3071
3072         * config/frv/frv.c (frv_emit_move): New.
3073         (frv_legitimize_address): New.
3074
3075         * config/frv/frv.md ("movsi"): Call frv_emit_move.
3076         ("movqi"): Same.
3077         ("movhi"): Same.
3078         ("movdi"): Same.
3079         ("movsf"): Same.
3080         ("movdf"): Same.
3081
3082 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
3083
3084         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
3085         system headers.
3086
3087 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
3088
3089         * c-decl.c (pushdecl): When an extern declaration at block scope
3090         refers to a visible entity with internal linkage, use the old DECL
3091         rather than the new one.
3092
3093 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
3094
3095         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
3096         comments.
3097
3098 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
3099
3100         * tree-cfg.c (thread_jumps): Remove a duplicate check for
3101         an infinite loop.
3102
3103 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
3104
3105         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
3106         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
3107         blocks.
3108
3109 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
3110
3111         * tree-cfg.c (cleanup_tree_cfg): Don't call
3112         delete_unreachable_blosk() after thread_jumps().
3113         (thread_jumps): Always remove basic blocks as they become
3114         unreachable.
3115
3116 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
3117
3118         * tree-cfg.c (cleanup_tree_cfg): Remove variable
3119         something_changed.  Simplify the while loop.
3120
3121 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3122
3123         * builtins.c (expand_builtin_memmove): Delete duplicate code
3124         and accept a tree type for the result.
3125         (expand_builtin_bcopy): Accept a tree type for the result.
3126         (fold_builtin_memmove): Accept an arglist and tree type for
3127         the result.
3128
3129 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
3130
3131         * config/s390/s390.c (s390_dump_pool): Remove return value.
3132         Use gen_pool_align, gen_pool_section_start/end instead of
3133         gen_pool_start/end_31/64.
3134         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
3135         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
3136         ("pool_start_31", "pool_end_31"): Remove.
3137         ("pool_start_64", "pool_end_64"): Likewise.
3138         ("pool_align", "pool_section_start", "pool_section_end": New insns.
3139
3140         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
3141         (TARGET_CANNOT_COPY_INSN_P): Define.
3142         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
3143         (struct constant_pool): New member 'execute'.
3144         (s390_add_execute, s390_find_execute): New functions.
3145         (s390_execute_label, s390_execute_target): Likewise.
3146         (s390_dump_pool): Output in-pool execute target templates.
3147         (s390_dump_execute): New function.
3148         (s390_alloc_pool, s390_free_pool): Handle execute templates.
3149         (s390_mainpool_start, s390_mainpool_finish): Likewise.
3150         (s390_chunkify_start, s390_chunkify_finish): Likewise.
3151         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
3152         ("*execute"): New insn pattern.
3153         ("movmem_short", "*movmem_short"): Use splitters to generate
3154         explicit execute pattern, remove embedded execute.
3155         ("clrmem_short", "*clrmem_short"): Likewise.
3156         ("cmpmem_short", "*cmpmem_short"): Likewise.
3157
3158 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
3159
3160         * tree-ssa.c (verify_ssa): Verify phi arguments only
3161         contain renamed names.
3162
3163 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
3164
3165         * config/rs6000/linux.h: Formatting, whitespace.
3166         * config/rs6000/linux64.h: Likewise.
3167         * config/rs6000/rs6000-protos.h: Likewise.
3168         * config/rs6000/rs6000.c: Likewise.
3169         (easy_vector_splat_const): Add fall thru comments.
3170         (output_vec_const_move): Likewise.
3171
3172 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
3173
3174         * Makefile.in: Update -Wno-error exceptions for move to build dir.
3175
3176 2004-10-05  Chao-Ying Fu  <fu@mips.com>
3177             Richard Sandiford  <rsandifo@redhat.com>
3178
3179         * doc/invoke.texi (-mpaired-single): Link to the new description of the
3180         built-in functions.  Document dependencies.
3181         (-mips3d): Add link here too.
3182         * doc/extend.texi (MIPS Paired-Single Support): New section.
3183
3184 2004-10-04  Chao-ying Fu  <fu@mips.com>
3185
3186         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
3187
3188 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
3189
3190         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3191         Initialize OPT_STATS to 0.
3192
3193 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
3194
3195         * tree-data-ref.c: Fix comment typos.
3196
3197 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
3198
3199         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
3200         the predicate cannot be computed, don't initialize the result to
3201         false.
3202
3203 2004-10-01  Eric Christopher  <echristo@redhat.com>
3204
3205         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
3206         locally defined enum.
3207         * dwarf2out.c (add_calling_convention_attribute): Don't
3208         emit DW_CC_normal.
3209
3210 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
3211
3212         PR c/17178, PR c/17820
3213         * c-decl.c (pop_scope): Do not warn about unused static
3214         variables as they warned in the middle-end.
3215
3216 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3217
3218         * builtins.c (expand_builtin_memcpy): Delete duplicate code
3219         and make the first parameter the expression not the arglist.
3220
3221 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
3222
3223         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
3224         as valid modes to expand address expressions.
3225
3226 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
3227
3228         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
3229         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
3230         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
3231         code formatting conventions.
3232
3233 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
3234
3235         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
3236
3237 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
3238
3239         PR tree-optimization/16632
3240         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
3241         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
3242         where | is used instead of &.
3243
3244 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
3245
3246         * ginclude/stddef.h: Fix a comment typo.
3247
3248 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3249
3250         PR target/17443
3251         * config.gcc (i?86-*-solaris2*): Restore correct logic
3252         for --enable-threads option.
3253         (sparc64-*-solaris2*): Likewise.
3254         (sparc-*-solaris2*): Likewise.
3255
3256 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
3257
3258         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
3259         (OS_MISSING_POWERPC64): Move, and comment.
3260         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
3261         (OS_MISSING_POWERPC64): Move, and comment.
3262
3263 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
3264
3265         * arm.c (output_call_mem): Add missing \t.
3266
3267 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3268
3269         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
3270         expand_builtin_strncmp): Delete duplicate code.
3271
3272 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
3273
3274         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
3275         take check-base and -limit arguments.
3276         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
3277         check ranges for ARRAY_REF and COMPONENT_REF.
3278         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
3279         instrumentation.
3280
3281 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
3282
3283         * c-objc-common.c (c_tree_printer): Correct description of %E.
3284         Don't fall through after printing an expression.
3285
3286 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
3287
3288         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
3289
3290 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
3291
3292         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
3293         delete_unrechable_blocks() only when necessary.
3294
3295 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
3296
3297         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
3298         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
3299         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
3300         __gthread_recursive_mutex_unlock): New functions.
3301
3302 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
3303
3304         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
3305         * config/s390/tpf-eh.c: Remove file.
3306         * config/s390/tpf-unwind.h: New file.
3307         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
3308         (MD_UNWIND_SUPPORT): Define.
3309
3310 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
3311
3312         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
3313
3314 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
3315
3316         * config/s390/s390-protos.h (s390_comparison): Add prototype.
3317         * config/s390/s390.c (s390_comparison): New function.
3318         (s390_branch_condition_mask): Return -1 for invalid comparisons.
3319         (s390_branch_condition_mnemonic): Assert valid comparison.
3320         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
3321         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
3322         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
3323         s390_comparison instead of comparison_operator.
3324
3325         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
3326         ("cmpmemdi"): Remove.
3327         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
3328         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
3329         ("cmpint_si"): Rename to ...
3330         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
3331         ("cmpint_di", "*cmpint_di"): Likewise.
3332         * config/s390/s390.c (s390_canonicalize_comparison): Remove
3333         redundant UNSPEC_CMPINT conversions.
3334         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
3335
3336 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
3337
3338         * collect2.c (COLLECT_PARSE_FLAG): Remove.
3339         (main): Remove a reference to COLLECT_PARSE_FLAG
3340         * system.h: Poison COLLECT_PARSE_FLAG.
3341         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
3342
3343 2004-10-01  Paul Brook  <paul@codesourcery.com>
3344
3345         * config/arm/crti.asm: Give _init and _fini function type.
3346
3347 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
3348
3349         * common.opt (ftree-loop-ivcanon): Enable by default.
3350         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3351         Enable complete loop unrolling.
3352         (canonicalize_induction_variables, tree_unroll_loops_completely):
3353         Reset scev info.
3354
3355 2004-10-01  Paul Brook  <paul@codesourcery.com>
3356
3357         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
3358         not register number.
3359         (thumb_find_work_register): Search full register range.
3360
3361 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
3362
3363         PR tree-opt/17343
3364         * tree-cfg.c (group_case_labels): Get the label and not
3365         the case expr for the default case.
3366         When the label we looking at is the default, decrement the
3367         new_size.
3368
3369 2004-10-01  Jan Hubicka  <jh@suse.cz>
3370
3371         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
3372         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3373         * toplev.h (tree_rest_of_compilation): Update prototype.
3374         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
3375
3376 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
3377
3378         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
3379         cleanup_control_flow() out of the while loop.
3380
3381 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
3382
3383         * tree-vectorizer.c (vectorizable_operation): Fail unless
3384         the mode for the vector type is indeed a vector mode.
3385
3386 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
3387
3388         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
3389         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
3390         of convert.
3391         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
3392         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
3393         follow_ssa_edge_in_rhs): Ditto.
3394         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
3395         (dump_iv): Dump base_object.
3396         (dump_use, dump_cand): Use dump_iv.
3397         (determine_base_object): New function.
3398         (alloc_iv): Initialize base_object field.
3399         (record_use): Clear the ssa_name field of iv.
3400         (get_computation_cost_at): Do not use difference of addresses of
3401         two different objects.
3402         (may_eliminate_iv): Do not require the loop to have just single exit.
3403         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
3404         (nonzero_p): New function.
3405         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
3406         tree_simplify_using_condition, simplify_using_initial_conditions,
3407         loop_niter_by_eval, find_loop_niter_by_eval,
3408         estimate_numbers_of_iterations_loop, compare_trees,
3409         upper_bound_in_type, lower_bound_in_type,
3410         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
3411         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
3412         instead of integer_(non)zerop.
3413
3414 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
3415
3416         Revert
3417         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3418
3419         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3420         and TI_VA_LIST_FPR_COUNTER_FIELD.
3421         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3422         * tree-pass.h (pass_stdarg): Add.
3423         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3424         * tree-stdarg.c: New file.
3425         * Makefile.in (OBJS-common): Add tree-stdarg.o.
3426         (tree-stdarg.o): Add dependencies.
3427         * function.h (struct function): Add va_list_gpr_size and
3428         va_list_fpr_size fields.
3429         * function.c (allocate_struct_function): Initialize them.
3430
3431         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3432         va_list_{g,f}pr_counter_field.
3433         (ix86_setup_incoming_varargs): Don't do anything if reg_save
3434         area will not be used.  Only save registers that tree-stdarg.c
3435         detected they need saving.
3436         (ix86_va_start): Don't set up fields that won't be used.
3437
3438         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3439         va_list_{g,f}pr_counter_field.
3440         (setup_incoming_varargs): Don't do anything if reg_save
3441         area will not be used.  Only save registers that tree-stdarg.c
3442         detected they need saving.
3443         (rs6000_va_start): Don't set up fields that won't be used.
3444
3445 2004-09-30  Eric Christopher  <echristo@redhat.com>
3446
3447         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
3448         sh abi.
3449         * dwarf2out.c (add_calling_convention_attribute): New function.
3450         (gen_subroutine_type_die): Use.
3451         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
3452         * target.h (gcc_target): Add dwarf_calling_convention.
3453         * hooks.c (hook_int_tree_0): New function.
3454         * hooks.h: Prototype.
3455         * config/sh/sh.c: Include dwarf2.h.
3456         (sh_dwarf_calling_convention): New function.
3457         (TARGET_DWARF_CALLING_CONVENTION): Use.
3458         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
3459
3460 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3461
3462         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3463         expand_builtin_strrchr, expand_builtin_strpbrk,
3464         expand_builtin_strncat, expand_builtin_strspn,
3465         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
3466         code.
3467
3468 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3469
3470         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
3471         prototype.
3472         (s390_logical_operator_ok_p): Likewise.
3473         * config/s390/s390.c (s390_expand_logical_operator): New function.
3474         (s390_logical_operator_ok_p): Likewise.
3475         * config/s390/s390.md ("anddi3"): New expander.
3476         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
3477         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
3478         ("andsi3"): Use s390_expand_logical_operator.
3479         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
3480         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
3481         ("andhi3"): New expander.
3482         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
3483         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
3484         ("andqi3"): New expander.
3485         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
3486         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
3487         ("iordi3"): New expander.
3488         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
3489         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.