OSDN Git Service

* stmt.c (expand_case): Update a comment.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * stmt.c (expand_case): Update a comment.
4
5 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
6
7         * stmt.c (expand_case): Put an assertion that index_expr is
8         never INTEGER_CST.  Don't special case for constant
9         index_expr.
10
11 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
12
13         PR 18162
14         * c-parse.in (designator): Finish with a semi-colon.
15
16 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
17
18         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting 
19         into rotlsi3.
20
21 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
22
23         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
24         a default case only.
25
26 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
27
28         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
29         e500 doubles.
30         (spe_build_register_parallel): New.
31         (rs6000_spe_function_arg): Handle e500 doubles.
32         (function_arg): Same.
33         (spe_func_has_64bit_regs_p): Same.
34         (rs6000_function_value): Same.
35         (rs6000_libcall_value): Same.
36         (legitimate_lo_sum_address_p): Return false for e500 doubles.
37
38         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
39         doubles.
40         (DATA_ALIGNMENT): Same.
41         (CANNOT_CHANGE_MODE_CLASS): Same.
42
43 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
44
45         * expr.c (emit_group_load): Handle floats.
46         (emit_group_store): Same.
47
48 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
49
50         * c-lex.c (get_nonpadding_token): Remove.
51         (c_lex_with_flags): Push timevar and eat padding here.  Improve
52         stray token diagnostic.
53         (lex_string): Replace logic with switch statement, eat padding
54         token here.
55
56 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
57
58         PR 18149
59         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
60
61 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
62
63         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
64         to 'non-weak'.
65         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
66         (ASM_MAKE_LABEL_LINKONCE): Delete.
67         (ASM_WEAKEN_DECL): New.
68         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
69         (ASM_DECLARE_FUNCTION_NAME): Likewise.
70         (TEXT_SECTION_ASM_OP): Add a tab.
71         (DATA_SECTION_ASM_OP): Likewise.
72         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
73         data_section on every section change.
74         (EXTRA_SECTIONS): Add a bunch of new extra sections.
75         (EXTRA_SECTION_FUNCTIONS): Likewise.
76         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
77         (JCR_SECTION_NAME): Define.
78         (TARGET_SECTION_TYPE_FLAGS): Don't define.
79         * config/darwin.c (darwin_encode_section_info): A symbol is defined
80         in this file if it is not weak.
81         (textcoal_section): Delete.
82         (datacoal_section): Delete.
83         (darwin_make_decl_one_only): Delete.
84         (machopic_select_section): Handle functions.
85         (darwin_asm_named_section): Add a tab.
86         (darwin_section_type_flags): Delete.
87         (darwin_unique_section): Delete contents.
88         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
89         DECL_WEAK is set.
90         * config/darwin-protos.h (darwin_section_type_flags): Delete.
91         (darwin_make_decl_one_only): Delete.
92         (text_coal_section): New.
93         (text_unlikely_section): New.
94         (text_unlikely_coal_section): New.
95         (const_coal_section): New.
96         (data_coal_section): New.
97         (const_data_coal_section): New.
98         * varasm.c (function_section): Honour
99         USE_SELECT_SECTION_FOR_FUNCTIONS.
100         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
101         TARGET_USES_WEAK_UNWIND_INFO is in effect.
102         * dbxout.c (dbxout_source_file): Don't change sections while
103         a function is being output.
104
105 2004-10-25  David Ayers  <d.ayers@inode.at>
106
107         * c-common.h: Remove RID_ID.
108         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
109         (typespec_reserved_attr): Add rule for TYPENAME
110         non_empty_protocolrefs.
111         (yylexname): Remove special handling of RID_ID.
112
113 2004-10-25  James E Wilson  <wilson@specifixinc.com>
114
115         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
116
117 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
118
119         PR c/16667
120         * c-parse.in (array_designator): New.
121         (designator): Use it.
122         (initelt): Only permit array_designator without '=', not ".foo".
123
124 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
125         * gcc/Makefile.in: removed ggc for cgraphunit.
126         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
127         * gcc/cgraph.h: removed static var analysis data structures and calls.
128         * gcc/cgraphunit.c: 
129         cgraph_mark_local_and_external_functions:changed name to 
130                 cgraph_mark_local_functions
131         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
132         cgraph_reset_static_var_maps,get_global_static_vars_info,
133         get_global_statics_not_read,get_global_statics_not_written,searchc,
134         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
135         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
136         scan_for_static_refs,cgraph_characterize_statics_local,
137         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
138         removed.
139         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
140         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
141         analysis 
142         * gcc/tree-flow.h static_vars_info: removed 
143         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
144         removed calls to static vars analysis.
145         get_call_expr_operands: removed callee variable.
146
147 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
148
149         * cfg.c (unchecked_make_edge, redirect_edge_succ,
150         redirect_edge_pred): Use VEC_safe_push instead of
151         VEC_safe_insert.
152         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
153
154 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
155
156         * cfgloopmanip.c (loopify): Take two more arguments true_edge
157         and false_edge.
158         * cfgloop.h: Adjust the corresponding prototype.
159         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
160         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
161
162 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
163
164         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
165         DECL_INCOMING_RTL is NULL.
166
167 2004-10-25  Steven Bosscher  <stevenb@suse.de>
168
169         * timevar.def (TV_FIND_REFERENCED_VARS): New.
170         * tree-dfa.c (pass_referenced_var): Use it.
171
172 2004-10-25  Roger Sayle  <roger@eyesopen.com>
173             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
174
175         * cse.c: Change encoding of quantity numbers to avoid undefined
176         pointer arithmetic on qty_table.
177         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
178         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
179         (new_basic_block): Assign "real" quantity numbers from zero.
180         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
181         REG_QTY to its unique negative value.
182         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
183         (cse_main): Don't include max_reg when determining max_qty.
184         (cse_basic_block): Avoid subtracting a large offset from qty_table,
185         which causes undefined C99 behaviour.  Only allocate needed memory.
186
187 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
188
189         * stmt.c (expand_case): Remove an obsolete comment.
190
191 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
192
193         PR middle-end/17407
194         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
195         layout_type as it is already done by build_array_type.
196         * tree.c (build_array_type): Layout the type even
197
198 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
199
200         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
201
202 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
203
204         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
205         with wider-than-32-bit HOST_WIDE_INTs.
206
207 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
208
209         * config/mips/mips.c(mips_output_filename): Remove unused 
210         array ltext_label_name
211
212 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
213
214         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
215
216 2004-10-25  Ben Elliston  <bje@au.ibm.com>
217
218         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
219
220 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
221
222         * predict.c (predict_loops): Call scev_finalize instead of
223         scev_reset.
224
225 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
226
227         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
228         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
229         config/sh/ushmedia.h, config/sparc/elf.h,
230         config/sparc/sp64-elf.h: Update copyright.
231
232 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
233
234         * stmt.c (expand_case): Handle the default label outside of
235         the for loop.  Remove code to handle a missing default label.
236
237 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
238
239         * dbxout.c (dbxout_function_decl): Don't use
240         DBX_OUTPUT_FUNCTION_END.
241         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
242         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
243
244 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
245
246         PR middle-end/17967
247         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
248
249 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
250
251         * tree-ssa-dom.c (record_equality): Use loop depth to determine
252         which way to record the equality as well.
253         (loop_depth_of_name): New function.
254
255 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
256
257         PR middle-end/17793
258         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
259         through the operand if it is a useless type conversion.
260
261 2004-10-23  Ben Elliston  <bje@au.ibm.com>
262
263         * cfg.c (remove_edge): Use VEC_unordered_remove.
264         (redirect_edge_succ): Likewise.
265         (redirect_edge_pred): Likewise.
266         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
267
268 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
269
270         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
271         beyond its end.
272
273 2004-10-22  Eric Christopher  <echristo@redhat.com>
274
275         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
276         saves.
277
278 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
279
280         * config/rs6000/spe.md (spe_extendsfdf2): New.
281         (movdf_e500_double): New.
282         (spe_truncdfsf2): New.
283         (spe_absdf2): New.
284         (spe_nabsdf2): New.
285         (spe_negdf2): New.
286         (sub_adddf3): New.
287         (spe_subdf3): New.
288         (spe_muldf3): New.
289         (spe_floatsidf2): New.
290         (spe_floatunssidf2): New.
291         (fix_truncdfsi2): New.
292         (spe_fixuns_truncdfsi2): New.
293
294         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
295         (fpr_truncdfsf2): New.
296         (negdf2): Change to expander.
297         (fpr_negdf2): New.
298         (fpr_nabsdf2): Name pattern.
299         (adddf3): Change to expander.
300         (fpr_adddf3): Nem.
301         (subdf3): Change to expander.
302         (fpr_subdf3): New.
303         (muldf3): Change to expander.
304         (fpr_muldf3): New.
305         (divdf3): Change to expander.
306         (fpr_divdf3): New.
307         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
308         (cmpdf): Allow for TARGET_E500_DOUBLE.
309
310 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
311
312         * c-semantics.c (re_push_stmt_list): Remove.
313         * c-common.h: Remove the corresponding prototype.
314
315 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
316
317         * stmt.c (asm_op_is_mem_input): Remove.
318         * tree.h: Remove the corresponding prototype.
319
320 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
321
322         * tree-gimple.c (is_gimple_constructor_elt): Remove.
323         * tree-gimple.h: Remove the corresponding prototype.
324
325 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
326
327         * varasm.c (get_pool_mode_for_function, get_pool_offset):
328         Remove.
329         * rtl.h: Remove the corresponding prototypes.
330
331 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
332
333         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
334         edge information when we commit ourselves to threading a
335         particular jump.
336
337 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
338
339         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
340         into worklist instead of their indexes.
341
342 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
343
344         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
345         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
346         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
347         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
348         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
349         tree-scalar-evolution.c, tree-ssa-dom.c,
350         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
351         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
352         tree-vectorizer.c, vec.h: Fix comment formatting.
353
354 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
355
356         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
357         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
358
359 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
360
361         * config/ptx4.h, config/mcore/mcore-pe.h,
362         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
363
364 2004-10-22  Peter Barada <peter@the-baradas.com>
365
366         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
367         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
368         renaming of non-live registers in interrupt functions.
369         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
370
371 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
372
373         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
374         Use integer for loop counter.
375         (num_ending_zeros): New function.
376         (number_of_iterations_cond): Use num_ending_zeros.
377
378 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
379
380         * config.gcc: Add support for --enable-e500_double.
381
382         * config/rs6000/e500-double.h: New file.
383
384         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
385         TARGET_E500_DOUBLE.
386
387         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
388         TARGET_E500_DOUBLE.
389
390         * config/rs6000/linuxspe.h: Same.
391
392         * doc/invoke.texi (Option Summary): Document new options for
393         mfloat-gprs.
394         (RS/6000 and PowerPC Options): Same.
395
396         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
397         function.
398         (rs6000_override_options): Use it.  Use
399         SUB3TARGET_OVERRIDE_OPTIONS.
400         Add 8548 to processor_target_table.
401         (rs6000_legitimate_address): Handle e500 doubles.
402         (rs6000_legitimize_address): Same.
403         (rs6000_legitimize_reload_address): Same.
404         (rs6000_hard_regno_nregs): Same.
405         (spe_func_has_64bit_regs_p): Same.
406         (emit_frame_save): Same.
407         (gen_frame_mem_offset): Same.
408         (rs6000_dwarf_register_span): Same.
409         (rs6000_generate_compare): Same.
410         (easy_fp_constant): Same.
411         (legitimate_offset_address_p): Same.
412
413         * config/rs6000/spe.md: (cmdfeq_gpr): New.
414         (tstdfeq_gpr): New.
415         (cmpdfgt_gpr): New.
416         (tstdfgt_gpr): New.
417         (tstdfgt_gpr): New.
418         (cmpdflt_gpr): New.
419         (tstdflt_gpr): New.
420         Add new constants.
421
422 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
423
424         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
425
426 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
427
428         * dbxout.c: Remove unnecessary #undefs.
429         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
430         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
431         definition into use sites.
432         (cwd): Make local to dbxout_init.
433         (dbxout_init): Restructure cwd-using logic for clarity.  Use
434         IS_DIR_SEPARATOR.
435         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
436         STABS_GCC_MARKER folded in here.
437         * system.h: Poison now-unused macros.
438         * doc/tm.texi: Remove documentation of now-unused macros.
439
440 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
441
442         PR c/17538
443         * c-opts.c (push_command_line_include): Use the current file
444         name instead of the main one.
445
446 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
447
448         PR objc/17923
449         * tree.c (staticp): A CONST_DECL has static storage if either
450         TREE_STATIC or DECL_EXTERNAL is set.
451         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
452         have null names.
453
454 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
455
456         * expr.c (store_expr): Remove dont_store_target.
457
458 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
459
460         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
461
462 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
463
464         * tree-cfg.c (thread_jumps): Move a part of it to ...
465         (thread_jumps_from_bb): ... here.
466
467 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
468
469         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
470         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
471
472 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
473
474         * expr.c (store_expr): Clean up by renaming want_value to
475         call_param_p.
476
477 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
478
479         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
480         fixup pc here.
481
482 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
483
484         PR 18004.
485         * expmed.c (store_bit_field): Pass original 'value' before
486         recursing.
487
488 2004-10-21  Nicolas Pitre <nico@cam.org>
489
490         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
491         * config/arm/ieee754-df.S: Ditto.
492
493 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
494
495         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
496         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
497         Default to 0.
498         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
499         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
500         an internal label and an N_SLINE .stabn whose value is the
501         difference between that label and the function entry label.
502         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
503         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
504         label and an N_SO stab with an empty string referring to it.
505         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
506         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
507         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
508         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
509         macro is never defined.
510         * sdbout.c (sdbout_source_line_counter): Delete.
511         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
512         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
513         only two arguments.
514         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
515
516         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
517         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
518         definitions (identical to default).
519         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
520         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
521         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
522         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
523         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
524         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
525         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
526         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
527         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
528         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
529         (sym_lineno): Delete.
530         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
531         now-unused variable.
532         (alpha_output_lineno): Delete.
533         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
534         * config/mips/mips.c (mips_output_filename): Don't use
535         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
536         (mips_output_lineno): Delete.
537         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
538         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
539         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
540         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
541         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
542         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
543         * config/mmix/mmix.h: Likewise.
544         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
545         * config/mmix/mmix-protos.h: Don't prototype it.
546         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
547         no need to #undef ASM_OUTPUT_SOURCE_LINE.
548         * config/arm/aout.h: Remove RISCiX-specific definition of
549         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
550         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
551         ASM_OUTPUT_SOURCE_LINE.
552         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
553         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
554         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
555
556         * doc/tm.texi: Update.
557
558 2004-10-20  Richard Henderson  <rth@redhat.com>
559
560         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
561
562 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
563
564         * configure.ac: Revert my previous patch.
565         * configure: Regenerate.
566
567 2004-10-20  Ben Elliston  <bje@au.ibm.com>
568
569         * config/rs6000/rs6000.c
570         (rs6000_va_start): Use build_va_arg_indirect_ref.
571         (rs6000_gimplify_va_arg): Likewise.
572
573 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
574
575         PR java/15575
576         * configure.ac: Declare AM_LANGINFO_CODESET.
577         * aclocal.m4: Define AM_LANGINFO_CODESET.
578         * configure, config.in: Rebuilt.
579
580 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
581
582         * expr.c (store_expr): Remove code that is run when
583         want_value & 1 is nonzero.
584
585 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
586
587         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
588         from function pointer to void *.
589
590 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
591
592         PR target/18032
593         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
594         the frame pointer adjustment when exception handling is enabled.
595
596 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
597
598         * stor-layout.c: Fix a comment typo.
599
600 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
601
602         * expr.c (store_field): Remove two arguments value_mode and
603         unsignedp.
604         (expand_assignment, store_constructor_field,
605         expand_expr_real_1): Adjust calls to store_field.
606
607 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
608
609         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
610
611         PR target/17317
612         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
613         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
614         base and index register for loads.
615
616         * config/arc/t-arc: Fix multilib handling.
617
618 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
619
620         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
621         don't inspect BLOCK_FOR_INSN for barriers.
622         * emit-rtl.c (emit_barrier_before): Revert last change.
623         (emit_barrier_after, emit_barrier): Ditto.
624
625         * doc/extend.texi (Extended Asm): Warn and provide example
626         solution for using a call-clobbered asm register.
627         (Local Reg Vars): Similar.  Cross-reference example.
628
629 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
630
631         * tree-cfg.c (group_case_labels): Look at the second to last
632         case statement for combing with the default case.
633
634 2004-10-19  Richard Hendeson  <rth@redhat.com>
635
636         PR 17962
637         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
638
639 2004-10-19  Richard Hendeson  <rth@redhat.com>
640
641         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
642         succeeds, only expand the result.
643
644 2004-10-19  Richard Hendeson  <rth@redhat.com>
645
646         PR middle-end/17885
647         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
648         of INDIRECT_REF.
649
650 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
651
652         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
653         loop with goto.
654
655 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
656
657         * expr.c (expand_assignment): Remove the last argument.
658         Change the return type to void.
659         * expr.h: Update the prototype of expand_assignment.
660         * function.c (assign_parm_setup_reg): Update a call to
661         expand_assignment.
662         * stmt.c (expand_asm_expr): Likewise.
663
664 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
665
666         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
667         unnecessary assignments to temp.  Return const0_rtx.
668
669 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
670
671         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
672
673 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
674
675         * configure.ac (powerpc-*-darwin*): Require assembler to support
676         .machine directive.
677         * configure: Regenerate.
678
679 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
680
681         * reload1.c (ior_hard_reg_set): Remove.
682         (finish_spills): Use IOR_HARD_REG_SET instead of
683         ior_hard_reg_set.
684
685 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
686
687         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
688         the currently visited word to right.
689
690 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
691
692         PR middle-end/18045
693         * expmed.c (expand_smod_pow2): Handle modes whose size
694         is greater than that of HOST_WIDE_INT.
695
696 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
697
698         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
699
700 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
701             Roger Sayle  <roger@eyesopen.com>
702
703         PR middle-end/17813
704         * dojump.c (discard_pending_stack_adjust): New function.
705         (clear_pending_stack_adjust): Call it.
706         * expr.h (discard_pending_stack_adjust): Declare it.
707         * explow.c (emit_stack_save): Emit pending stack adjustments
708         before saving the stack pointer.
709         (emit_stack_restore): Discard pending stack adjustments before
710         restoring the stack pointer.
711
712 2004-10-18  Richard Henderson  <rth@redhat.com>
713
714         * c-common.c (handle_mode_attribute): Allow scalar->vector
715         type changes yet.
716
717 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
718
719         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
720         value to expand_assignment.
721
722 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
723
724         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
725         thread_jumps.
726         (thread_jumps): Iterate until no new forwarder block arises.
727
728 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
729
730         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
731         (thread_jumps): Use forwardable as cache of
732         tree_forwarder_block_p throughout the function.
733
734 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
735
736         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
737
738 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
739
740         PR middle-end/15014
741         PR middle-end/16973
742         * tree-cfg.c (remove_bb): If we have a label expression in the
743         basic block and the label we have taken the address, move the
744         label expression to the basic block which is previous in the
745         linked list.
746         (tree_verify_flow_info): Fix printing out the label name of the
747         problematic label expression.
748
749 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
750
751         PR rtl-optimization/18002
752         * simplify-rtx.c (mode_signbit_p): Externalize function...
753         * rtl.h (mode_signbit_p): ... to here.
754         * combine.c (simplify_shift_const): Recognize PLUS signbit as
755         canonical form of XOR signbit and move to outer op.
756
757 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
758
759         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
760         Update all callers.
761         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
762         Don't call fold_stmt more than once, use bsi_replace.
763
764 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
765
766         PR tree-optimization/17656
767         * tree-ssa.c (replace_immediate_uses): When replacing a
768         constant, if the call to fold_stmt produced a different
769         statement, get an appropriate statement pointer by scanning
770         STMT's basic block.
771
772 2004-10-18  Richard Henderson  <rth@redhat.com>
773
774         * pointer-set.c (hash1): Don't use libm functions in fallback case.
775
776 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
777
778         PR bootstrap/17684
779         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
780         (stage1-start): Remove and copy libunwind.a and
781         libunwind*$(SHLIB_EXT) instead of libunwind*.
782         (stage2-start): Likewise.
783         (stage3-start): Likewise.
784         (stage4-start): Likewise.
785         (stageprofile-start): Likewise.
786         (stagefeedback-start): Likewise.
787
788         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
789         the shared library to be created and don't remove the existing
790         shared library.
791         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
792         * config/i386/t-nwld (SHLIB_LINK): Likewise.
793         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
794         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
795         * config/sh/t-linux (SHLIB_LINK): Likewise.
796         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
797         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
798         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
799         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
800
801         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
802         files.
803
804 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
805
806         * basic-block.h (reg_set_iterator): New.
807         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
808         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
809         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
810         * caller-save.c (save_call_clobbered_regs): Adjust to the new
811         style.
812         * cfgcleanup.c (thread_jump): Likewise.
813         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
814         * conflict.c (conflict_graph_compute): Likewise.
815         * flow.c (verify_local_live_at_start, update_life_info,
816         initialize_uninitialized_subregs, propagate_one_insn,
817         init_propagate_block_info, free_propagate_block_info,
818         propagate_block, dump_regset): Likewise.
819         * global.c (global_conflicts): Likewise.
820         * graph.c (start_bb): Likewise.
821         * local-alloc.c (update_equiv_regs): Likewise.
822         * loop.c (load_mems): Likewise.
823         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
824         find_reg, finish_spills): Likewise.
825         * resource.c (mark_target_live_regs): Likewise.
826         * sched-deps.c (sched_analyze_insn): Likewise.
827         * sched-rgn.c (sched-rgn.c): Likewise.
828         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
829
830 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
831
832         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
833         operand 1 instead of 2
834
835 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
836
837         * loop-unroll.c: Fix comment typos.
838
839 2004-10-18  Revital Eres  <eres@il.ibm.com>
840
841         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
842         * loop-unroll.c: Include varray.h.
843         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
844         opt_info and expand it to support variable expansion.
845         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
846         expand it to support variable expansion.
847         (pt_info_start_duplication): Rename si_info_start_duplication.
848         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
849         to the variable expansion optimization.
850         (free_opt_info): Rename free_si_info.
851         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
852         expand_var_during_unrolling, insert_var_expansion_initialization,
853         combine_var_copies_in_loop_exit, release_var_copies,
854         get_expansion): New functions.
855         (peel_loop_completely, unroll_loop_constant_iterations,
856         unroll_loop_runtime_iterations, peel_loop_simple,
857         unroll_loop_stupid): Change uses of struct si_info
858         to struct opt_info
859         and add uses of fvariable-expansion-in-unroller flag.
860         * params.def: Add parameter to restrict the number of expansions.
861         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
862         the number of expansions.
863         * common.opt: (fvariable-expansion-in-unroller): New flag.
864         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
865
866 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
867
868         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
869         __GXX_MERGED_TYPEINFO_NAMES to 0.
870
871 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
872
873         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
874         handle barriers in a bb by checking that it points to a NULL bb.
875         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
876         (emit_barrier_after, emit_barrier): Ditto.
877
878 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
879
880         * doc/extend.texi (Attribute Syntax): Clarify details of
881         attributes on parameters.
882
883 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
884
885         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
886         loop.
887
888 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
889
890         Revert:
891         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
892
893         * c-typeck.c (default_function_array_conversion): Always create
894         &a[0] for array types.
895         (build_unary_op): Do not fold &a[x] into a + x.
896
897 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
898
899         PR middle-end/17925
900         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
901         block if there is a goto with a locus.
902
903 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
904
905         * config/elfos.h, config/gofast.h, config/interix.h,
906         config/netbsd.h, config/svr3.h, config/vxworks.h,
907         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
908         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
909         config/alpha/netbsd.h, config/arm/arm-modes.def,
910         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
911         config/cris/aout.h, config/frv/frv-modes.def,
912         config/i386/beos-elf.h, config/i386/gas.h,
913         config/i386/i386-coff.h, config/i386/i386-modes.def,
914         config/i386/linux.h, config/i386/linux64.h,
915         config/i386/mingw32.h, config/i386/netbsd-elf.h,
916         config/i386/netbsd64.h, config/i386/sco5.h,
917         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
918         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
919         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
920         config/mips/mips-modes.def, config/mips/sdb.h,
921         config/mips/vr.h, config/mips/vxworks.h,
922         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
923         config/pa/pa32-linux.h, config/rs6000/40x.md,
924         config/rs6000/7450.md, config/rs6000/8540.md,
925         config/rs6000/linuxspe.h, config/rs6000/power4.md,
926         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
927         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
928         config/s390/s390-modes.def, config/sh/elf.h,
929         config/sh/sh-modes.def, config/sh/sh64.h,
930         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
931         config/stormy16/stormy16.md, config/v850/v850-protos.h,
932         config/vax/vax.md: Update copyright.
933
934 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
935
936         * expr.c (expand_expr_real_1): Remove an obsolete comment.
937
938 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
939
940         * c-typeck.c (default_function_array_conversion): Always create
941         &a[0] for array types.
942         (build_unary_op): Do not fold &a[x] into a + x.
943
944 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
945
946         * pointer-set.c (hash1): Use integer part of 2^64 / phi
947         instead 2^32 / phi if long is 64-bit.
948
949 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
950
951         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
952         RID_PTRVALUE.
953         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
954         declarations.
955         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
956         __ptrextent__, __ptrvalue and __ptrvalue__.
957         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
958         entries.
959
960 2004-10-16  Dale Johannesen  <dalej@apple.com>
961
962         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
963
964 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
965
966         PR tree-optimization/17766
967         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
968         (dom_info_available_p): Declare.
969         * cfghooks.c (split_block, make_forwarder_block): Use
970         dom_info_available_p.
971         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
972         free_dominance_info, verify_dominators): Ditto.
973         (dom_info_available_p): New function.
974         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
975         (thread_jumps): Use dom_info_available_p.
976         * tree-complex.c (expand_complex_div_wide): Ditto.
977         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
978
979 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
980
981         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
982         (find_best_candidate): Take also important candidates into account.
983         (find_optimal_iv_set): Initialize important_candidates bitmap.
984
985 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
986
987         PR tree-optimization/17560
988         * predict.c (tree_estimate_probability): Mark irreducible
989         loops.
990
991 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
992
993         PR rtl-optimization/17723
994         * cfgcleanup.c (merge_memattrs): Handle case when
995         MEM_SIZE == NULL_RTX.
996
997 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
998
999         * toplev.c (dump_file_name): Change type to be const.
1000
1001 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1002
1003         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
1004         non_lvalue to stop something being a null pointer constant.
1005
1006 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
1007
1008         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
1009         available for TARGET_FPRS.
1010         (FUNCTION_VALUE_REGNO_P): Same.
1011
1012 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
1013
1014         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1015         -maltivec in same style as other ISA options.
1016
1017 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
1018
1019         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
1020         definition.
1021
1022 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1023
1024         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
1025         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
1026         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
1027         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
1028         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
1029         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
1030         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
1031         predict.def, predict.h, protoize.c, reload.h, resource.h,
1032         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
1033         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
1034         unwind-sjlj.c, value-prof.h: Update copyright.
1035
1036 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1037
1038         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
1039
1040 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
1041
1042         * tree-optimize.c (execute_one_pass): Stop timer right after
1043         executing the pass.
1044
1045 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1046
1047         Revert:
1048         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1049         PR middle-end/17967
1050         Revert:
1051                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1052                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1053
1054 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1055
1056         * configure.ac: Add .machine power4 directive when testing for
1057         mfcr field.
1058         * configure: Regenerate.
1059
1060 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1061
1062         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
1063
1064 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1065
1066         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
1067         always.
1068
1069 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
1070
1071         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
1072         for 'f' if !TARGET_FPRS.
1073
1074 2004-10-14  Richard Henderson  <rth@redhat.com>
1075
1076         PR debug/14492
1077         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
1078
1079 2004-10-14  Richard Henderson  <rth@redhat.com>
1080
1081         PR c/17023
1082         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
1083         as error_mark_node.
1084         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
1085         instaed of current_function_decl non-null.
1086
1087 2004-10-14  Matt Austern  <austern@apple.com>
1088
1089         * pointer-set.c: New file, special-purpose hash table.
1090         * pointer-set.h: New file.
1091         * tree.h (struct pointer_set_t): Declare as opaque type.
1092         (tree_walk): Last argument is pointer_set_t* now.
1093         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
1094         (walk_type_fields):
1095         (walk_tree): Convert from htab_t to pointer_set_t for keeping
1096         track of which nodes have already been visited.
1097         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
1098         * cgraphunit.c (cgraph_create_edges): Likewise.
1099         (cgraph_characterize_statics_local): Likewise.
1100         * tree-dfa.c (collect_dfa_stats): Likewise.
1101         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
1102         pointer_set_t* now.
1103         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
1104         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
1105         of walk_subtrees is pointer_set_t* now.
1106         * Makefile.in (OBJS-common): add pointer-set.o
1107         (tree-inline.o): Depends on pointer-set.h
1108         (tree-dfa.o): Likewise
1109         (cgraphunit.o): Likewise
1110
1111 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1112
1113         * config/rs6000/darwin.h (ASM_SPEC): Delete.
1114         (TARGET_ASM_FILE_START): Define.
1115         * config/darwin.h (ASM_SPEC): Define.
1116         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
1117         -mlong-double-128, it's the default.  Update comment about reason
1118         for force_cpusubtype_ALL.
1119         * config/rs6000/darwin-vecsave.asm: Supply .machine.
1120         * config/rs6000/darwin-world.asm: Likewise.
1121         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
1122         (symbolic_operand): Delete #if 0ed code.
1123
1124 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1125
1126         * stmt.c (add_case_node): Make sure that we have integer
1127         constant before calling tree_int_cst_compare.
1128
1129 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1130
1131         PR middle-end/17967
1132         Revert:
1133                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1134                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1135
1136 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
1137
1138         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
1139         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
1140         -m64.
1141
1142 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
1143
1144         * reload.c (find_reloads): When reloading a PLUS with constant
1145         operand, make sure the constant is pushed to the constant pool
1146         if required.
1147         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
1148         reload bug workaround.
1149         (s390_expand_plus_operand): Likewise.
1150
1151 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1152
1153         * opts.c (common_handle_option): Do not enable
1154         flag_speculative_prefetching for -fprofile-generate/use.
1155
1156 2004-10-14  Devang Patel  <dpatel@apple.com>
1157
1158         PR 17635
1159         * tree-if-conv.c (process_phi_nodes): Process latch block.
1160         (combine_blocks): Process latch block and update loop structure.
1161
1162 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
1163
1164         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
1165         (vect_update_ivs_after_vectorizer):
1166         (vect_transform_for_unknown_loop_bound):
1167         (tree_duplicate_loop_to_edge):
1168         (allocate_new_names):
1169         (rename_use_op):
1170         (rename_def_op):
1171         (rename_variables_in_bb):
1172         (free_new_names):
1173         (rename_variables_in_loop):
1174         (copy_phi_nodes):
1175         (update_phis_for_duplicate_loop):
1176         (update_phi_nodes_for_guard):
1177         (make_loop_iterate_ntimes):
1178         (tree_duplicate_loop_to_edge_cfg):
1179         (add_loop_guard):
1180         (vect_analyze_loop_with_symbolic_num_of_iters):
1181         (verify_loop_for_duplication):
1182         (vect_gen_niters_for_prolog_loop):
1183         (vect_update_niters_after_peeling):
1184         (vect_update_inits_of_dr):
1185         (vect_update_inits_of_drs):
1186         (vect_build_loop_niters):
1187         (vect_do_peeling_for_alignment): New functions.
1188         (vect_transform_loop): Add unknown and known but indivisible loop
1189         bound support; add peeling for unalignment support.
1190         (vect_analyze_loop_form): Support symbolic number of iterations.
1191         (vect_transform_loop_bound): New input parameter.
1192         (vect_get_loop_niters): Change input parameter type.
1193         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
1194         (vectorizable_store): Allow unaligned access.
1195         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
1196         (vect_analyze_data_refs_alignment): Allowed one unaligned
1197         store.
1198         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
1199         to use tree.
1200         (LOOP_VINFO_INT_NITERS): New macro.
1201         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
1202         (do_peeling_for_alignment):
1203         (unaligned_drs): New members of _loop_vec_info.
1204         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
1205
1206 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
1207
1208         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
1209         (struct tree_string): Remove "const" qualifier for "str".
1210
1211 2004-10-14  Ira Rosen  <irar@il.ibm.com>
1212
1213         * tree-vectorizer.c (vect_analyze_data_refs): Call
1214         vect_get_base_and_bit_offset to get memory tag for array ref.
1215         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
1216
1217 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
1218
1219         * configure.ac: Use $LN_S for creating symlinks (not $LN).
1220         * configure: Regenerate.
1221
1222 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1223
1224         * doc/install.texi (*-*-solaris2*): Update with info about kernel
1225         patches to solve spurious testsuite failures.
1226
1227 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
1228
1229         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
1230         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
1231         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
1232         gcc_assert under ENABLE_CHECKING.
1233         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
1234         get_vectype_for_scalar_type).
1235
1236         (vect_get_vec_def_for_operand): Remove redundant variables.
1237         (vect_transform_loop): Likewise.
1238
1239 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
1240
1241         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
1242         global for -mcaller-super-interworking.
1243         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
1244         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
1245         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
1246         not need a frame pointer.
1247         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
1248         the soft frame pointer offset.
1249         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
1250         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
1251         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
1252         the stack.  Use frame_pointer_needed to choose between them.
1253         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
1254         (interwork_with_frame): New macro.
1255         (interwork): Add _interwork_{r7,r11}_call_via_rN().
1256
1257 2004-10-14  Ben Elliston  <bje@au.ibm.com>
1258
1259         PR other/17900
1260         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
1261         up the filename looking for a previous directory separator.
1262
1263 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
1264
1265         * c-tree.h (enum c_typespec_kind, struct c_typespec,
1266         parser_xref_tag): New.
1267         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
1268         typedef_p.
1269         (declspecs_add_type): Adjust prototypes.
1270         * c-parse.in (%union): Add tstype.
1271         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
1272         typespec_reserved_attr, typespec_nonreserved_nonattr,
1273         structsp_attr, structsp_nonattr): Change to tstype.  Update
1274         actions.
1275         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
1276         (declspecs_add_type): Update to take struct c_typespec argument.
1277         Set tag_defined_p and typedef_p as appropriate.
1278         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
1279         Update to return struct c_typespec.
1280         (shadow_tag_warned): Don't let empty declarations with qualifiers
1281         or storage class specifiers redeclare a tag if a previous
1282         declaration is visible.
1283
1284 2004-10-13  Richard Henderson  <rth@redhat.com>
1285
1286         PR debug/15860
1287         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
1288         for DECL_INCOMING_RTL.
1289
1290 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
1291
1292         PR target/17984
1293         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
1294         trunc_int_for_mode for constants used in shortened mode.
1295
1296 2004-10-13  Richard Henderson  <rth@redhat.com>
1297
1298         PR c/17384
1299         * c-common.c (handle_mode_attribute): Disallow mode changes that
1300         alter the CODE of the top-level type.
1301
1302         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
1303         integer from internal limits macros.
1304         * config/i386/mm3dnow.h (__v2sf): Fix base type.
1305
1306 2004-10-13  Richard Henderson  <rth@redhat.com>
1307
1308         PR debug/13841
1309         * function.c (instantiate_decl): Recurse for CONCAT.
1310
1311 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
1312
1313         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
1314         andi./andis.
1315         (anddi3): Same.
1316         (extzvdi_internal1): Add attribute "compare".
1317         (extzvdi_internal2): Same.
1318
1319 2004-10-12  Tom Tromey  <tromey@redhat.com>
1320
1321         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
1322
1323 2004-10-13  Dale Johannesen  <dalej@apple.com>
1324
1325         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
1326
1327 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
1328
1329         * toplev.c (compile_file): Call mudflap_finish_file from here ...
1330         * c-decl.c (c_write_global_declarations): ... instead of here ...
1331         * cp/decl.c (cp_finish_file): ... and here.
1332         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
1333
1334 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
1335
1336         * tree-ssa-dom.c (record_range): Free the element if we are not
1337         going to use it.
1338
1339 2004-10-13  Tom Tromey  <tromey@redhat.com>
1340
1341         PR java/15578:
1342         * gcc.c (option_map): Added --extdirs and --encoding.
1343
1344 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1345
1346         PR target/14454
1347         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
1348         sparc_can_output_mi_thunk.
1349         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
1350         handling of vcall offset.
1351         (sparc_can_output_mi_thunk): New predicate.
1352         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
1353         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
1354         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
1355
1356         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
1357
1358         * config/sparc/sparc.md (movdi): Remove redundant test.
1359
1360 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
1361
1362         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
1363         TDF_IPA from -fdump-tree-*-all.
1364
1365 2004-10-13  Paul Brook  <paul@codesourcery.com>
1366
1367         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
1368         * config/arm/arm.c (thumb_find_work_register): Update comments.
1369         (arm_load_pic_register): Add argument for scratch register.
1370         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
1371         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
1372
1373 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
1374
1375         * tree-data-ref.c: Fix comment typos.
1376
1377 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
1378             Zdenek Dvorak  <dvorakz@suse.cz>
1379
1380         PR tree-optimization/17724
1381         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
1382
1383 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
1384
1385         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
1386         (altivec_builtin_mask_for_store): Likewise.
1387         (altivec_init_builtins): Use lang_hooks.builtin_function to
1388         create the decls for builtin_altivec_mask_for_load/store.
1389
1390 2004-10-13  Nick Clifton  <nickc@redhat.com>
1391
1392         * config/c4x/c4x.c: Remove inclusion of loop.h.
1393
1394 2004-10-12  Ben Elliston  <bje@au.ibm.com>
1395
1396         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
1397         (ei_container): New; renamed.
1398         (ei_start, ei_last): New macros.
1399         (ei_start_1, ei_last_1): Renamed from ei_start.
1400         (ei_last_1, ei_end_p): Use ei_container() where applicable.
1401         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
1402         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
1403
1404 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
1405
1406         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
1407         * cfgloop.c (initialize_loops_parallel_p): New.
1408         (flow_loops_find): Initialize the parallel_p field to true for all
1409         the loops.
1410         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
1411         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
1412         the size of the data accessed in the loop.
1413         (struct nb_iter_bound): Moved...
1414         * cfgloop.h (struct nb_iter_bound): ... here.
1415         (estimated_nb_iterations, parallel_p): New fields in struct loop.
1416         (record_estimate): Declare extern here.
1417         * tree-chrec.c: Fix comments.
1418         (nb_vars_in_chrec): New function.
1419         * tree-chrec.h (nb_vars_in_chrec): Declared here.
1420         * tree-data-ref.c: Don't include lambda.h, that is already included
1421         in tree-data-ref.h.
1422         (tree_fold_divides_p): Don't check for integer_onep.
1423         (tree_fold_bezout): Removed.
1424         (gcd): New static duplicated function.
1425         (int_divides_p, dump_subscript): New.
1426         (dump_data_dependence_relation): Use dump_subscript.
1427         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
1428         estimate_niter_from_size_of_data): New.
1429         (analyze_array_indexes, analyze_array): Call
1430         estimate_niter_from_size_of_data during the detection of array
1431         references.  Pass in a pointer to the statement that contains the
1432         array reference.
1433         (all_chrecs_equal_p): New.
1434         (compute_distance_vector): Renamed compute_subscript_distance.
1435         Deal with multivariate conflict functions.
1436         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
1437         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
1438         (non_affine_dependence_relation): New.
1439         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1440         analyze_siv_subscript, analyze_miv_subscript,
1441         analyze_overlapping_iterations, subscript_dependence_tester):
1442         Initialize and return last_conflicts function.
1443         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
1444         compute_overlap_steps_for_affine_1_2): New.
1445         (analyze_siv_subscript_affine_cst): Removed.
1446         (analyze_subscript_affine_affine): Disprove dependences based on the
1447         iteration domains.  Solve the univariate dependence case as before,
1448         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
1449         Implement the multivariate case of 2 versus 1 variables.
1450         (build_classic_dist_vector, build_classic_dir_vector): Implement some
1451         unhandled cases.
1452         (find_data_references_in_loop): Compute and initialize
1453         loop->estimated_nb_iterations and loop->parallel_p.
1454         (analyze_all_data_dependences): Modify the debug dump order.
1455         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
1456         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
1457         (SUB_LAST_CONFLICT, subscript->last_conflict,
1458         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
1459         DDR_AFFINE_P, DDR_SIZE_VECT): New.
1460         (find_data_references_in_loop, initialize_data_dependence_relation,
1461         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
1462
1463 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
1464
1465         * configure: Regenerate.
1466
1467 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
1468
1469         PR 17892
1470         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
1471         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
1472         and constant folding of floating point MULT_EXPR/PLUS_EXPR
1473         expressions.
1474
1475 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
1476
1477         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
1478         (s390_gimplify_va_arg): Likewise.
1479
1480 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
1481
1482         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
1483         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
1484         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
1485         * regclass.c (record_address_regs): Remove ifdef.  Use
1486         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1487         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
1488         definition.
1489         (scan_rtx_address, replace_oldest_value_addr): Use
1490         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1491         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
1492         unnecessary definitions.
1493         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
1494         and MODE_BASE_REG_REG_CLASS.
1495         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
1496         (MODE_BASE_REG_REG_CLASS): Define.
1497         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
1498         (REG_MODE_OK_FOR_REG_BASE_P): Define.
1499         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
1500         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
1501
1502 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
1503
1504         * tree-ssa-alias.c (verify_name_tags): New function.
1505         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
1506         (verify_alias_info): Call verify_name_tags.
1507
1508 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
1509
1510         PR rtl-optimization/17931
1511         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
1512         ZERO_EXTRACT in it.
1513
1514 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
1515
1516         * arm.c (arm_print_operand): Use output_operand_lossage where possible
1517         rather than aborting.
1518
1519 2004-10-12  Paul Brook  <paul@coudesourcery.com>
1520
1521         * config.gcc: Add armv6{k,z,zk}
1522         * config/arm/arm-cores.def: Add arm1176 and mpcore.
1523         * config/arm/tune.md: Regenerate.
1524         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
1525         Define.
1526         (all_architectures): Add armv6k, armv6z, armv6zk.
1527         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
1528         * doc/invoke.texi: Document new arch and cpu values.
1529
1530 2004-10-12  Paul Brook  <paul@coodesourcery.com>
1531
1532         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
1533         meabi=4.
1534
1535 2004-10-12  Paul Brook  <paul@codesourcery.com>
1536
1537         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
1538         Handle negative constants.
1539
1540 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
1541
1542         PR c/17301
1543         * c-typeck.c (convert_arguments): Return error_mark_node if there
1544         are too few arguments.
1545         (build_function_call): Handle error_mark_node return from
1546         convert_arguments.
1547
1548 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
1549
1550         * configure.ac (symbolic_link): Replace with $LN_S.
1551         (Assembler/Linker): Hard link from gas and binutils trees.
1552         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
1553         * configure: Regenerate.
1554
1555 2004-10-12  Paul Brook  <paul@codesourcery.com>
1556
1557         * configure.ac: Don't look for host assembler when building a canadian
1558         cross.
1559         * configure: Regenerate.
1560
1561 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1562
1563         PR other/17361
1564         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
1565         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
1566         line options for "-lang-asm" and if found allow any of the C-family
1567         front-end options.
1568         (c_common_handle_option): Remove last use of permit_fortran_options.
1569
1570 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1571
1572         * config/s390/s390.c (print_operand): Support 'S' format flag.
1573         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
1574         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
1575         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
1576         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
1577         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
1578         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
1579         ("*movstricthi"): Likewise.
1580         ("*load_multiple_di", "*load_multiple_si"): Likewise.
1581         ("*store_multiple_di", "*store_multiple_si"): Likewise.
1582         ("*sethiqisi", "*sethihisi"): Likewise.
1583         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
1584         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
1585         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
1586         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
1587         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
1588
1589         ("*tmhi_full"): Fix incorrect op_type attribute.
1590
1591         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
1592         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
1593         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
1594         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
1595
1596 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
1597
1598         PR middle-end/16266
1599         * function.c (temp_slots_at_level): Fix typo which creates too
1600         many temp stack slots levels.
1601
1602 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1603
1604         * config/s390/s390.c (s390_trampoline_template): Generate shorter
1605         trampoline code.
1606         (s390_trampoline_instantiate): Adapt.
1607         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
1608
1609 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1610
1611         PR middle-end/17657
1612         * stmt.c (add_case_node): Add additional type argument.  Declare
1613         as static to match prototype.  Convert the upper and lower bounds
1614         to the specified index type.  Optimize away case ranges/values
1615         that are outside the index type's bounds.  Truncate case ranges
1616         that span the index type's bounds.
1617         (expand_case): Avoid unnessary computation and memory allocation
1618         when index type is error_mark_node.  Pass index_type as required
1619         by change to add_case_node API.  No need to convert case range
1620         bounds to index_type, this is now done by add_case_node.
1621
1622 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1623
1624         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
1625         * config/s390/s390.c (s390_offset_p): New function.
1626         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
1627         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
1628         transform Q->Q alternatives to *clc pattern.
1629         ("*clc"): Move.
1630         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
1631         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
1632         to transform Q->Q alternatives to *mvc pattern.
1633         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
1634         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
1635         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
1636         transform Q->Q alternatives to *nc pattern.
1637         ("*nc"): New insn.  New peephole to merge adjacent NCs.
1638         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
1639         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
1640         transform Q->Q alternatives to *oc pattern.
1641         ("*oc"): New insn.  New peephole to merge adjacent OCs.
1642         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
1643         transform Q->Q alternatives to *xc pattern.
1644         ("*xc"): New insn.  New peephole to merge adjacent XCs.
1645         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
1646
1647 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
1648
1649         * gimplify.c (gimple_push_condition): Make sure that we don't
1650         have any saved condition cleanup if we were at the top level.
1651
1652 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
1653
1654         * config/frv/frv.md (*adddi3_internal): Change name to...
1655         (adddi3): ...replacing the exisiting define_expand.  Combine
1656         alternatives.  Fix the range of the constant constraints ('J' instead
1657         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
1658         to extract the lower and upper halves of the DImode operands.
1659         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
1660         (adddi3_lower): Fix the range of the constant constraints and
1661         remove the bogus operands[2] check.
1662         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
1663         operand 2.  Use addxi to handle constant operands.
1664         (subdi3_lower, subdi3_upper): Don't handle constant operands.
1665
1666 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
1667
1668         * gengtype-lex.l: Add commented } & ) characters to unconfuse
1669         editor's paren matching. Allow #define inside a struct.
1670
1671 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
1672
1673         PR middle-end/17703
1674         part of PR c++/17657
1675         * fold-const.c (fold_build_cleanup_point_expr): New function.
1676         * tree.h (fold_build_cleanup_point_expr): Prototype.
1677
1678 2004-10-10  Eric Christopher  <echristo@redhat.com>
1679
1680         * dwarf2out.c: Move attribute to subprogram declaration
1681         instead of subroutine type.
1682
1683 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
1684
1685         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
1686         hoist_insn_after, and hoist_insn_to_edge.
1687         * rtl.h: Remove the prototypes for reg_referenced_between_p,
1688         no_jumps_between_p, and insn_dependent_p.
1689         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
1690         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
1691         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
1692         hoist_insn_to_edge): Remove.
1693
1694 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1695
1696         PR c/17881
1697         * c-decl.c (grokparms): Don't warn for parameters of incomplete
1698         type in declarations that are not definitions except for the case
1699         of parameters of void type.
1700
1701 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
1702
1703         * tree-cfg.c: Fix comment typos.
1704
1705 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1706
1707         PR c/17301
1708         * builtins.c (expand_builtin_va_start): Check for too few
1709         arguments to va_start.
1710
1711 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1712
1713         PR c/17189
1714         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
1715         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
1716         pedantic.
1717         * c-parse.in (component_decl): Don't pedwarn here for unnamed
1718         fields.
1719
1720 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
1721
1722         PR tree-optimization/17906
1723         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
1724         copy non-gimple reg arguments.
1725
1726 2004-10-09  Roger Sayle  <roger@eyesopen.com>
1727
1728         PR rtl-optimization/17853
1729         * simplify-rtx.c (simplify_relational_operation): Correct comment.
1730         Reorganize handling of comparison operations with floating point
1731         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
1732         Likewise, introduce support for comparison operations with vector
1733         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
1734
1735         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
1736         * doc/tm.texi: Likewise.
1737
1738 2004-10-09  Steven Bosscher  <stevenb@suse.de>
1739
1740         * regs.h (struct reg_info_def): Remove the last_node_uid and
1741         changes_mode fields.
1742         (REGNO_LAST_NOTE_UID): Don't define.
1743         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
1744         * regmove.c (copy_src_to_dest): Likewise.
1745
1746 2004-10-09  Roger Sayle  <roger@eyesopen.com>
1747
1748         PR middle-end/17894
1749         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
1750         relational comparison operator op needs to be swapped/reversed when
1751         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
1752
1753 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1754
1755         PR tree-opt/17902
1756         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
1757         instead of bsi_start.
1758         (value_replacement): Likewise.
1759         (abs_replacement): Likewise
1760
1761 2004-10-09  Steven Bosscher  <stevenb@suse.de>
1762
1763         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
1764         (expand_gimple_cond_expr, expand_gimple_tailcall,
1765         expand_gimple_basic_block): Use it to dump RTL for each stmt.
1766         (tree_expand_cfg): Announce full RTL function dump.
1767         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
1768         not the graph version.
1769         * tree-pretty-print.c (dump_generic_node): Allow empty statements
1770         in the arms of a COND_EXPR for lowered nodes.
1771
1772 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
1773
1774         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
1775         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
1776         strtoufix16, strtoufix32, strtoufix64): Declare.
1777
1778 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1779
1780         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
1781         for an out-of-range floating point constant.
1782         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
1783         warning if the target format does not support infinities.
1784
1785 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1786
1787         * emit-rtl.c (last_label_num, base_label_num): Remove.
1788         (max_label_num): Always return label_num.
1789         (set_new_last_label_num, restore_emit_status): Remove.
1790         (init_emit): Don't initialize last_label_num.
1791         * function.c (pop_function_context_from): Don't call
1792         restore_emit_status.
1793         * function.h: Remove the prototype for restore_emit_status.
1794         * rtl.h: Remove the prototype for set_new_last_label_num.
1795
1796 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1797
1798         * stmt.c (expand_decl_init): Remove.
1799         * tree.h: Remove the corresponding prototype.
1800
1801 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1802
1803         * integrate.c (try_constants, subst_constants, mark_stores):
1804         Remove.
1805         * integrate.h: Remove the prototype for try_constants.
1806
1807 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1808
1809         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
1810         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
1811         comments about its relevance to errors.
1812         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
1813
1814 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1815
1816         PR c/16999
1817         * c-ppoutput.c (cb_ident): Don't quote string as it is already
1818         quoted.
1819
1820 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
1821
1822         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
1823         reference_node_pool.
1824
1825 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1826
1827         * tree-cfg.c: Fix a comment typo.
1828
1829 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1830
1831         * config/s390/s390.c (s390_register_info): Don't save fprs for
1832         -msoft-float.
1833         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
1834
1835 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
1836
1837         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
1838         (TARGET_DEFAULT): Use symbolic values.
1839         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
1840         (TARGET_DEFAULT): Use symbolic values.
1841         * config/s390/s390.c (s390_backchain_string): Initialize to
1842         TARGET_DEFAULT_BACKCHAIN.
1843
1844 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1845
1846         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
1847         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
1848         code.
1849         (expand_builtin_strcat): Accept a type parameter.
1850         (fold_builtin_mempcpy): Accept a type and endp parameter.
1851
1852         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
1853         Accept an `exp' instead of an `arglist'.
1854
1855 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
1856
1857         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
1858         reverting my 2004-09-07 patch to use build_int_cst.
1859
1860 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1861
1862         PR target/17245
1863         * config/sparc/sparc.c (input_operand): Remove redundant code
1864         for handling LO_SUM.
1865         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
1866         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
1867         Otherwise only accept it for TFmode if quad move insns are available.
1868
1869 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1870
1871         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
1872         common cases will be caught earlier than others.
1873
1874 2004-10-08  Michael Matz  <matz@suse.de>
1875
1876         * loop-doloop.c (doloop_optimize): Extend count.
1877
1878 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1879
1880         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
1881         (prefetch): Convert to expander.
1882
1883 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1884
1885         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
1886         first argument of CALL.
1887         (tls_local_dynamic): Likewise.
1888
1889 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1890
1891         * c-typeck.c (enum impl_conv): New.
1892         (convert_for_assignment): Use it.  Take tree for function called
1893         instead of its name.  Handle ObjC selectors for diagnostics at
1894         start of function.  Select diagnostic text within the function
1895         using full sentences for diagnsotics.  Use %qE to name functions
1896         in diagnostics.
1897         (convert_arguments, build_modify_expr,
1898         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
1899         callers to convert_for_assignment.
1900         (warn_for_assignment): Remove.
1901
1902 2004-10-08  Nick Clifton  <nickc@redhat.com>
1903
1904         * config/sh/symbian.c (symbian_possibly_export_base_class):
1905         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
1906         TYPE_CONTAINS_VPTR_P.
1907
1908 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1909
1910         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
1911         fixed registers form all_used_regs. Update call_really_used_regs.
1912         (CALL_REALLY_USED_REGISTERS): Define.
1913         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
1914         with call_really_used_regs.
1915
1916 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
1917
1918         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
1919         for -profile as well as -p and -pg.
1920
1921 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
1922
1923         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
1924
1925 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1926
1927         * tree-cfg.c (tree_block_forwards_to): Remove.
1928         * tree-flow.h: Remove the corresponding prototype.
1929
1930 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1931
1932         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
1933         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
1934
1935 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
1936
1937         Radar 3813796
1938         * config/rs6000/rs6000.c (rs6000_generate_compare): When
1939         flag_trapping_math is in effect, don't generate subtract
1940         instructions.
1941
1942 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
1943
1944         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
1945         * config/s390/s390.c (s390_narrow_logical_operator): New function.
1946         (s390_extra_constraint_str): Add 'A' constraints.
1947         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
1948         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
1949         (CONSTRAINT_LEN): Likewise.
1950         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
1951         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
1952         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
1953         ("*iordi3"): Add OI alternative and splitter.
1954         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
1955         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
1956         ("*xordi3"): Add XI alternative and splitter.
1957         ("*xorsi3", "*xorhi3"): Likewise.
1958
1959 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1960
1961         * config/mips/mips.c (mips_function_rodata_section): New function.
1962         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
1963
1964 2004-10-07  Devang Patel  <dpatel@apple.com>
1965
1966         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
1967         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
1968         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
1969         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
1970         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
1971         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
1972         UNSPEC_VCONDU_V16QI): New constant defines.
1973         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
1974         vconduv16qi): New patterns.
1975         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
1976         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
1977         (get_vec_cmp_insn): Same.
1978         (get_vsel_insn): Same.
1979         (rs6000_emit_vector_compare): Same.
1980         (rs6000_emit_vector_select): Same.
1981         (INSN_NOT_AVAILABLE): New.
1982
1983 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
1984
1985         PR tree-optimization/17749
1986         * tree-tailcall.c (find_tail_calls): Check that parameter is
1987         a gimple_reg.
1988
1989 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1990
1991         * config/ia64/ia64.c: Fix a comment typo.
1992
1993 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1994
1995         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
1996
1997 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1998
1999         PR c++/17115
2000         * tree-inline.c (expand_call_inline): Do not warn for functions
2001         marked with attribute noinline.
2002
2003 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2004
2005         PR target/17862
2006         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
2007         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
2008
2009         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
2010         of 0 as 4th argument to pass_by_reference.
2011         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
2012
2013 2004-10-06  Eric Christopher  <echristo@redhat.com>
2014
2015         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
2016         attribute.
2017
2018 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2019
2020         PR target/17770
2021         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
2022
2023 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2024
2025         PR rtl-optimization/17791
2026         * loop-doloop.c (doloop_modify): Take number of iterations as
2027         argument.
2028         (doloop_optimize): Extend or shorten the number of iterations
2029         when changing mode of counter register.
2030         * loop-iv.c (lowpart_subreg): Export.
2031         * rtl.h (lowpart_subreg): Declare.
2032
2033 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2034
2035         PR tree-optimization/17806
2036         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
2037         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
2038         flags moved to split_edge.
2039
2040 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2041
2042         PR middle-end/17835
2043         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
2044         before tentatively building the conditional move sequence.
2045
2046 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2047
2048         PR target/16815
2049         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
2050         check.
2051         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
2052         function_arg_padding.
2053
2054 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2055
2056         PR bootstrap/17857
2057         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
2058
2059 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2060
2061         * hooks.c (hook_int_void_1, hook_void_int): Remove.
2062         * hooks.h: Remove the corresponding prototypes.
2063
2064 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2065
2066         PR middle-end/17849
2067         * tree-nested.c (walk_stmt_info): Add changed field.
2068         (convert_nonlocal_reference): Set changed to when we
2069         change a decl to unnested decl.
2070         <case ADDR_EXPR>: Instead of checking if the immediate part
2071         of the ADDR_EXPR changed, check the field changed.
2072         Use recompute_tree_invarant_for_addr_expr instead of unsetting
2073         TREE_INVARIANT.
2074         (convert_local_reference):  Set changed to when we
2075         change a decl to unnested decl.
2076         <case ADDR_EXPR>: Instead of checking if the immediate part
2077         of the ADDR_EXPR changed, check the field changed.
2078         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
2079
2080 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2081
2082         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2083         * dwarf2out.c (dwarf2out_init): Remove references to
2084         DWARF2_GENERATE_TEXT_SECTION_LABEL.
2085         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
2086         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2087
2088 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2089
2090         * c-typeck.c (convert_arguments): Take expression for called
2091         function rather than its name.  Handle ObjC selectors directly
2092         rather than relying on warn_for_assignment to do so.  Call warning
2093         directly rather than warn_for_assignment.  Use %qE in diagnostics.
2094         Say "argument" rather than "arg" in diagnostics.
2095         (build_function_call): Update call to convert_arguments.
2096
2097 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2098
2099         PR debug/17787
2100         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
2101         ENUMs specially instead of just saying we do.
2102
2103 2004-10-06  Eric Christopher  <echristo@redhat.com>
2104
2105         * dwarf2.h: Sync with include/elf/dwarf2.h
2106
2107 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2108
2109         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
2110         and TREE_VEC nodes.
2111
2112 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2113
2114         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
2115         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2116
2117 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2118
2119         * lambda-code.c (compute_nest_using_fourier_motzkin): New
2120         function.
2121         (lambda_compute_auxillary_space): Split from here.
2122
2123 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2124
2125         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
2126         * tree-flow.h: Add prototype.
2127         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
2128         expr_invariant_in_loop.
2129
2130 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2131
2132         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2133         EXIT_BLOCK_PTR.
2134
2135 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
2136
2137         * config/s390/s390-protos.h (s_imm_operand): Remove.
2138         (s390_pool_operand): Add prototype.
2139         * config/s390/s390.c (general_s_operand): Remove.
2140         (s_imm_operand): Remove.
2141         (s_operand): Merge contents of general_s_operand.
2142         (s390_pool_operand): New function.
2143         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
2144         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
2145         ("*cmpdi_ccu"): Merge Q->Q alternative.
2146         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
2147         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
2148         ("*cli"): Remove.
2149         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
2150         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
2151         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
2152
2153 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
2154
2155         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
2156         call ia64_function_arg_boundary.
2157         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
2158         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
2159         (ia64_function_arg_advance): Do not put 128 bit floats into
2160         FP registers.
2161
2162 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2163
2164         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
2165         Accept an expression instead of an arglist.
2166         (expand_builtin_stpcpy): Accept an expression instead of an
2167         arglist.
2168
2169 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2170
2171         PR target/16007
2172         * doc/install.texi (*-*-solaris2*): Mention potential problem
2173         with Sun assembler + GNU linker and C++ programs.
2174         Document status of binutils 2.15 release.
2175
2176 2004-10-06  Jan Hubicka  <jh@suse.cz>
2177
2178         * cse.c (cse_main): Kill push/pop context.
2179
2180 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
2181
2182         * pretty-print.c: Include tree.h.
2183         (pp_base_prepare_to_format): New function, logic from
2184         text_specifies_location.
2185         (pp_base_format_text): Use gcc_assert.
2186         * pretty-print.h (pp_prepare_to_format): New macro.
2187         (pp_base_prepare_to_format): Prototype.
2188         * diagnostic.c (text_specifies_location): Delete.
2189         (bug_report_request): Delete.
2190         (diagnostic_set_info): Don't call text_specifies_location.
2191         (diagnostic_action_after_output): Put text from
2192         bug_report_request inline here.  Use gcc_unreachable.
2193         (diagnostic_report_current_function): Fix comment.
2194         (diagnostic_report_diagnostic): Clarify logic for error recursion.
2195         Call pp_prepare_to_format before diagnostic_starter.
2196         (trim_filename): Use IS_DIR_SEPARATOR.
2197         (fatal_error, internal_error): Use gcc_unreachable.
2198         (error_recursion): Call diagnostic_action_after_output to
2199         issue the bug_report_request message and exit.
2200         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
2201
2202         * c-parse.in: Add list of diagnostic messages to insulate
2203         translation template from version of yacc/bison used to
2204         compile the grammar.
2205
2206 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
2207
2208         PR 16406
2209         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
2210
2211 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2212
2213         * basic-block.h: Remove the prototype for
2214         flow_preorder_transversal_compute.
2215         * cfganal.c (dfst_node): Remove.
2216         (flow_preorder_transversal_compute): Likewise.
2217         * rtl.h: Remove the prototype for get_jump_table_offset.
2218         * rtlanal.c (get_jump_table_offset): Remove.
2219
2220 2004-10-05  Richard Henderson  <rth@redhat.com>
2221
2222         PR 17756
2223         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
2224
2225 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2226
2227         PR bootstrap/17817
2228         * Makefile.in: Stage the build directory too.
2229
2230 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
2231
2232         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
2233
2234         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
2235         (frv_emit_move): Same.
2236
2237         * config/frv/frv.c (frv_emit_move): New.
2238         (frv_legitimize_address): New.
2239
2240         * config/frv/frv.md ("movsi"): Call frv_emit_move.
2241         ("movqi"): Same.
2242         ("movhi"): Same.
2243         ("movdi"): Same.
2244         ("movsf"): Same.
2245         ("movdf"): Same.
2246
2247 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2248
2249         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
2250         system headers.
2251
2252 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2253
2254         * c-decl.c (pushdecl): When an extern declaration at block scope
2255         refers to a visible entity with internal linkage, use the old DECL
2256         rather than the new one.
2257
2258 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2259
2260         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
2261         comments.
2262
2263 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2264
2265         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2266         an infinite loop.
2267
2268 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2269
2270         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
2271         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
2272         blocks.
2273
2274 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2275
2276         * tree-cfg.c (cleanup_tree_cfg): Don't call
2277         delete_unreachable_blosk() after thread_jumps().
2278         (thread_jumps): Always remove basic blocks as they become
2279         unreachable.
2280
2281 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2282
2283         * tree-cfg.c (cleanup_tree_cfg): Remove variable
2284         something_changed.  Simplify the while loop.
2285
2286 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2287
2288         * builtins.c (expand_builtin_memmove): Delete duplicate code
2289         and accept a tree type for the result.
2290         (expand_builtin_bcopy): Accept a tree type for the result.
2291         (fold_builtin_memmove): Accept an arglist and tree type for
2292         the result.
2293
2294 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
2295
2296         * config/s390/s390.c (s390_dump_pool): Remove return value.
2297         Use gen_pool_align, gen_pool_section_start/end instead of
2298         gen_pool_start/end_31/64.
2299         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
2300         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
2301         ("pool_start_31", "pool_end_31"): Remove.
2302         ("pool_start_64", "pool_end_64"): Likewise.
2303         ("pool_align", "pool_section_start", "pool_section_end": New insns.
2304
2305         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
2306         (TARGET_CANNOT_COPY_INSN_P): Define.
2307         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
2308         (struct constant_pool): New member 'execute'.
2309         (s390_add_execute, s390_find_execute): New functions.
2310         (s390_execute_label, s390_execute_target): Likewise.
2311         (s390_dump_pool): Output in-pool execute target templates.
2312         (s390_dump_execute): New function.
2313         (s390_alloc_pool, s390_free_pool): Handle execute templates.
2314         (s390_mainpool_start, s390_mainpool_finish): Likewise.
2315         (s390_chunkify_start, s390_chunkify_finish): Likewise.
2316         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
2317         ("*execute"): New insn pattern.
2318         ("movmem_short", "*movmem_short"): Use splitters to generate
2319         explicit execute pattern, remove embedded execute.
2320         ("clrmem_short", "*clrmem_short"): Likewise.
2321         ("cmpmem_short", "*cmpmem_short"): Likewise.
2322
2323 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
2324
2325         * tree-ssa.c (verify_ssa): Verify phi arguments only
2326         contain renamed names.
2327
2328 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
2329
2330         * config/rs6000/linux.h: Formatting, whitespace.
2331         * config/rs6000/linux64.h: Likewise.
2332         * config/rs6000/rs6000-protos.h: Likewise.
2333         * config/rs6000/rs6000.c: Likewise.
2334         (easy_vector_splat_const): Add fall thru comments.
2335         (output_vec_const_move): Likewise.
2336
2337 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2338
2339         * Makefile.in: Update -Wno-error exceptions for move to build dir.
2340
2341 2004-10-05  Chao-Ying Fu  <fu@mips.com>
2342             Richard Sandiford  <rsandifo@redhat.com>
2343
2344         * doc/invoke.texi (-mpaired-single): Link to the new description of the
2345         built-in functions.  Document dependencies.
2346         (-mips3d): Add link here too.
2347         * doc/extend.texi (MIPS Paired-Single Support): New section.
2348
2349 2004-10-04  Chao-ying Fu  <fu@mips.com>
2350
2351         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
2352
2353 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
2354
2355         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2356         Initialize OPT_STATS to 0.
2357
2358 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2359
2360         * tree-data-ref.c: Fix comment typos.
2361
2362 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
2363
2364         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
2365         the predicate cannot be computed, don't initialize the result to
2366         false.
2367
2368 2004-10-01  Eric Christopher  <echristo@redhat.com>
2369
2370         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
2371         locally defined enum.
2372         * dwarf2out.c (add_calling_convention_attribute): Don't
2373         emit DW_CC_normal.
2374
2375 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
2376
2377         PR c/17178, PR c/17820
2378         * c-decl.c (pop_scope): Do not warn about unused static
2379         variables as they warned in the middle-end.
2380
2381 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2382
2383         * builtins.c (expand_builtin_memcpy): Delete duplicate code
2384         and make the first parameter the expression not the arglist.
2385
2386 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
2387
2388         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
2389         as valid modes to expand address expressions.
2390
2391 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
2392
2393         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
2394         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
2395         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
2396         code formatting conventions.
2397
2398 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
2399
2400         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
2401
2402 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2403
2404         PR tree-optimization/16632
2405         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
2406         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
2407         where | is used instead of &.
2408
2409 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2410
2411         * ginclude/stddef.h: Fix a comment typo.
2412
2413 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2414
2415         PR target/17443
2416         * config.gcc (i?86-*-solaris2*): Restore correct logic
2417         for --enable-threads option.
2418         (sparc64-*-solaris2*): Likewise.
2419         (sparc-*-solaris2*): Likewise.
2420
2421 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
2422
2423         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
2424         (OS_MISSING_POWERPC64): Move, and comment.
2425         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
2426         (OS_MISSING_POWERPC64): Move, and comment.
2427
2428 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
2429
2430         * arm.c (output_call_mem): Add missing \t.
2431
2432 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2433
2434         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
2435         expand_builtin_strncmp): Delete duplicate code.
2436
2437 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
2438
2439         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
2440         take check-base and -limit arguments.
2441         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
2442         check ranges for ARRAY_REF and COMPONENT_REF.
2443         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
2444         instrumentation.
2445
2446 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2447
2448         * c-objc-common.c (c_tree_printer): Correct description of %E.
2449         Don't fall through after printing an expression.
2450
2451 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2452
2453         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
2454
2455 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2456
2457         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
2458         delete_unrechable_blocks() only when necessary.
2459
2460 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2461
2462         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
2463         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
2464         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
2465         __gthread_recursive_mutex_unlock): New functions.
2466
2467 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2468
2469         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
2470         * config/s390/tpf-eh.c: Remove file.
2471         * config/s390/tpf-unwind.h: New file.
2472         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
2473         (MD_UNWIND_SUPPORT): Define.
2474
2475 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2476
2477         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
2478
2479 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
2480
2481         * config/s390/s390-protos.h (s390_comparison): Add prototype.
2482         * config/s390/s390.c (s390_comparison): New function.
2483         (s390_branch_condition_mask): Return -1 for invalid comparisons.
2484         (s390_branch_condition_mnemonic): Assert valid comparison.
2485         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
2486         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
2487         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
2488         s390_comparison instead of comparison_operator.
2489
2490         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
2491         ("cmpmemdi"): Remove.
2492         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
2493         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
2494         ("cmpint_si"): Rename to ...
2495         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
2496         ("cmpint_di", "*cmpint_di"): Likewise.
2497         * config/s390/s390.c (s390_canonicalize_comparison): Remove
2498         redundant UNSPEC_CMPINT conversions.
2499         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
2500
2501 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2502
2503         * collect2.c (COLLECT_PARSE_FLAG): Remove.
2504         (main): Remove a reference to COLLECT_PARSE_FLAG
2505         * system.h: Poison COLLECT_PARSE_FLAG.
2506         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
2507
2508 2004-10-01  Paul Brook  <paul@codesourcery.com>
2509
2510         * config/arm/crti.asm: Give _init and _fini function type.
2511
2512 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2513
2514         * common.opt (ftree-loop-ivcanon): Enable by default.
2515         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2516         Enable complete loop unrolling.
2517         (canonicalize_induction_variables, tree_unroll_loops_completely):
2518         Reset scev info.
2519
2520 2004-10-01  Paul Brook  <paul@codesourcery.com>
2521
2522         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
2523         not register number.
2524         (thumb_find_work_register): Search full register range.
2525
2526 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
2527
2528         PR tree-opt/17343
2529         * tree-cfg.c (group_case_labels): Get the label and not
2530         the case expr for the default case.
2531         When the label we looking at is the default, decrement the
2532         new_size.
2533
2534 2004-10-01  Jan Hubicka  <jh@suse.cz>
2535
2536         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
2537         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2538         * toplev.h (tree_rest_of_compilation): Update prototype.
2539         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
2540
2541 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2542
2543         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
2544         cleanup_control_flow() out of the while loop.
2545
2546 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
2547
2548         * tree-vectorizer.c (vectorizable_operation): Fail unless
2549         the mode for the vector type is indeed a vector mode.
2550
2551 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2552
2553         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
2554         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
2555         of convert.
2556         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2557         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
2558         follow_ssa_edge_in_rhs): Ditto.
2559         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
2560         (dump_iv): Dump base_object.
2561         (dump_use, dump_cand): Use dump_iv.
2562         (determine_base_object): New function.
2563         (alloc_iv): Initialize base_object field.
2564         (record_use): Clear the ssa_name field of iv.
2565         (get_computation_cost_at): Do not use difference of addresses of
2566         two different objects.
2567         (may_eliminate_iv): Do not require the loop to have just single exit.
2568         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
2569         (nonzero_p): New function.
2570         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
2571         tree_simplify_using_condition, simplify_using_initial_conditions,
2572         loop_niter_by_eval, find_loop_niter_by_eval,
2573         estimate_numbers_of_iterations_loop, compare_trees,
2574         upper_bound_in_type, lower_bound_in_type,
2575         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
2576         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
2577         instead of integer_(non)zerop.
2578
2579 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
2580
2581         Revert
2582         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2583
2584         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2585         and TI_VA_LIST_FPR_COUNTER_FIELD.
2586         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2587         * tree-pass.h (pass_stdarg): Add.
2588         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2589         * tree-stdarg.c: New file.
2590         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2591         (tree-stdarg.o): Add dependencies.
2592         * function.h (struct function): Add va_list_gpr_size and
2593         va_list_fpr_size fields.
2594         * function.c (allocate_struct_function): Initialize them.
2595
2596         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2597         va_list_{g,f}pr_counter_field.
2598         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2599         area will not be used.  Only save registers that tree-stdarg.c
2600         detected they need saving.
2601         (ix86_va_start): Don't set up fields that won't be used.
2602
2603         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2604         va_list_{g,f}pr_counter_field.
2605         (setup_incoming_varargs): Don't do anything if reg_save
2606         area will not be used.  Only save registers that tree-stdarg.c
2607         detected they need saving.
2608         (rs6000_va_start): Don't set up fields that won't be used.
2609
2610 2004-09-30  Eric Christopher  <echristo@redhat.com>
2611
2612         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
2613         sh abi.
2614         * dwarf2out.c (add_calling_convention_attribute): New function.
2615         (gen_subroutine_type_die): Use.
2616         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
2617         * target.h (gcc_target): Add dwarf_calling_convention.
2618         * hooks.c (hook_int_tree_0): New function.
2619         * hooks.h: Prototype.
2620         * config/sh/sh.c: Include dwarf2.h.
2621         (sh_dwarf_calling_convention): New function.
2622         (TARGET_DWARF_CALLING_CONVENTION): Use.
2623         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
2624
2625 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2626
2627         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2628         expand_builtin_strrchr, expand_builtin_strpbrk,
2629         expand_builtin_strncat, expand_builtin_strspn,
2630         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
2631         code.
2632
2633 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2634
2635         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
2636         prototype.
2637         (s390_logical_operator_ok_p): Likewise.
2638         * config/s390/s390.c (s390_expand_logical_operator): New function.
2639         (s390_logical_operator_ok_p): Likewise.
2640         * config/s390/s390.md ("anddi3"): New expander.
2641         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
2642         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
2643         ("andsi3"): Use s390_expand_logical_operator.
2644         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
2645         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
2646         ("andhi3"): New expander.
2647         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
2648         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
2649         ("andqi3"): New expander.
2650         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
2651         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
2652         ("iordi3"): New expander.
2653         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
2654         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
2655         ("iorsi3"): Use s390_expand_logical_operator.
2656         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
2657         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
2658         ("iorhi3"): New expiorer.
2659         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
2660         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
2661         ("iorqi3"): New expiorer.
2662         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
2663         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
2664         ("xordi3"): New expander.
2665         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
2666         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
2667         ("xorsi3"): New expander.
2668         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
2669         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
2670         ("xorhi3"): New expander.
2671         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
2672         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
2673         ("xorqi3"): New expander.
2674         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
2675         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
2676
2677 2004-09-30  Roger Sayle  <roger@eyesopen.com>
2678
2679         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
2680         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
2681         machine mode as the result.
2682
2683 2004-09-30  Ben Elliston  <bje@au.ibm.com>
2684
2685         PR bootstrap/17761
2686         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
2687         FOR_EACH_EDGE macros.
2688
2689 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2690
2691         * c-tree.h (readonly_error): Remove.
2692         * c-typeck (enum lvalue_use): New.
2693         (lvalue_or_else, readonly_error): Use it.  All callers changed.
2694         (readonly_error): Make static.
2695
2696 2004-09-30  Jan Hubicka  <jh@suse.cz>
2697
2698         PR debug/13974
2699         * cfgrtl.c (try_redirect_by_replacing_jump,
2700         force_nonfallthru_and_redirect, commit_one_edge_insertion,
2701         cfg_layout_merge_blocks):  Do not attach any line number information
2702         to newly inserted instructions.
2703         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
2704         emit_insn_*_noloc.
2705         (emit_*insn_before, emit_insn*_after): New.
2706         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
2707         existing locators.
2708         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
2709         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
2710
2711 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2712
2713         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
2714         (s390_return_address_offset): Remove.
2715         (s390_can_eliminate): Add prototype.
2716         (s390_initial_elimination_offset): Add prototype.
2717         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
2718         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
2719         * config/s390/s390.c (s390_arg_frame_offset): Remove.
2720         (s390_return_address_offset): Remove.
2721         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
2722         (struct machine_function): New member split_branches_pending_p.
2723         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
2724         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
2725         (s390_optimize_prologue): Remove base_used argument.  Call
2726         s390_update_frame_layout instead of s390_register_info.  Handle
2727         prologue/epilogue insns that touch only RETURN_REGNUM.
2728         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
2729         (s390_register_info): Remove base_used and return_addr_used
2730         arguments, compute special register usage inline.  Return live
2731         register data to caller.
2732         (s390_frame_info): Remove arguments, do not call s390_register_info.
2733         (s390_init_frame_layout): New function.
2734         (s390_update_frame_layout): Likewise.
2735         (s390_emit_prologue): Call s390_update_frame_layout; some code
2736         move to there.  Do not emit pool placeholder insn if unnecessary.
2737
2738 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2739
2740         * config/s390/s390.c (legitimate_reload_constant_p): Remove
2741         floating point constant workaround.
2742         (s390_secondary_input_reload_class): Handle PLUS reloads
2743         with too-large constant.
2744         (s390_expand_plus_operand): Likewise.
2745         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
2746         ("movsi"): Likewise.  Also, remove workaround for non-general
2747         operands.
2748         ("movdf"): Do not call force_const_mem.
2749         ("movsf"): Likewise.  Merge expander with *movsf insn.
2750         ("*movsf"): Remove, merge with movsf expander.
2751
2752 2004-09-30  Paul Brook  <paul@codesourcery.com>
2753
2754         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
2755         (ENDFILE_SPEC): Define.
2756         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
2757
2758 2004-09-30  Richard Henderson  <rth@redhat.com>
2759
2760         * config/alpha/qrnnd.asm: Mark for noexecstack.
2761
2762 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
2763
2764         * protoize.c, tree-cfg.c: Fix comment typos.
2765
2766 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2767
2768         PR c/17730
2769         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
2770
2771 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
2772
2773         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
2774         expressions...
2775         (add_pointed_to_expr): ... here.
2776         Call add_pointed_to_expr for variables with DECL_INITIAL set.
2777         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
2778         pointer variable, if set.
2779
2780 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
2781
2782         * config/sh/sh.c: Follow spelling conventions.
2783
2784 2004-09-29  Richard Henderson  <rth@redhat.com>
2785
2786         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
2787         * doc/tm.texi (DWARF_ZERO_REG): New.
2788
2789         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
2790         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
2791         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
2792
2793 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
2794
2795         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
2796         with a PLUS as source operand.
2797         (expand_movstr): Likewise.
2798         (expand_builtin_stpcpy): Likewise.
2799
2800 2004-09-29  Richard Henderson  <rth@redhat.com>
2801
2802         PR 17739
2803         * tree-gimple.c (is_gimple_reg): Reject hard registers.
2804         (is_gimple_asm_val): New.
2805         * tree-gimple.h (is_gimple_asm_val): Declare.
2806         * gimplify.c (gimplify_asm_expr): Use it.
2807         * tree-pretty-print.c (print_declaration): Dump hard regs.
2808         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
2809         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
2810         * tree-ssa-pre.c (is_undefined_value): Likewise.
2811         * tree-ssa-copy.c (may_propagate_copy): Likewise.
2812         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
2813         * tree-ssa.c (warn_uninit): Likewise.
2814         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
2815
2816 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
2817
2818         * c-decl.c (merge_decls): Use comptype when comparing
2819         types to decide on DECL_SIZE save of olddecl.
2820
2821 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
2822
2823         * tree.h (INDIRECT_REF_P): New macro.
2824         * alias.c (get_alias_set): Use it
2825         (nonoverlapping_memrefs_p): Ditto.
2826         * emit-rtl.c (mem_expr_equal_p): Ditto.
2827         (set_mem_attributes_minus_bitpos): Ditto.
2828         (is_gimple_addressable): Ditto.
2829         (get_base_address): Ditto.
2830         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
2831         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
2832         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
2833         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
2834         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
2835         (add_address_candidates): Ditto.
2836         (rewrite_address_base): Ditto.
2837
2838 2004-09-30  Ben Elliston  <bje@au.ibm.com>
2839
2840         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
2841         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
2842         (rewrite_ssa_into_ssa): Likewise.
2843         * tree-phinodes.c (create_phi_node): Access the number of
2844         predecessor edges using EDGE_COUNT() and not num_preds.
2845
2846 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2847
2848         PR c/7425
2849         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
2850
2851 2004-09-29  Eric Christopher  <echristo@redhat.com>
2852
2853         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
2854
2855 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
2856
2857         * config/cris/cris.md (moverside, movemside): With MEM, make sure
2858         the address is (plus reg mem).
2859
2860 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
2861
2862         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
2863
2864 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2865
2866         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
2867         cascaded if ... else if with a switch.
2868
2869 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2870
2871         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
2872
2873 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2874
2875         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2876         and TI_VA_LIST_FPR_COUNTER_FIELD.
2877         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2878         * tree-pass.h (pass_stdarg): Add.
2879         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2880         * tree-stdarg.c: New file.
2881         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2882         (tree-stdarg.o): Add dependencies.
2883         * function.h (struct function): Add va_list_gpr_size and
2884         va_list_fpr_size fields.
2885         * function.c (allocate_struct_function): Initialize them.
2886
2887         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2888         va_list_{g,f}pr_counter_field.
2889         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2890         area will not be used.  Only save registers that tree-stdarg.c
2891         detected they need saving.
2892         (ix86_va_start): Don't set up fields that won't be used.
2893
2894         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2895         va_list_{g,f}pr_counter_field.
2896         (setup_incoming_varargs): Don't do anything if reg_save
2897         area will not be used.  Only save registers that tree-stdarg.c
2898         detected they need saving.
2899         (rs6000_va_start): Don't set up fields that won't be used.
2900
2901 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2902
2903         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
2904         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
2905         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
2906         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
2907         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
2908         ATTR_NONNULL_1_4): New.
2909
2910 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2911
2912         PR tree-optimization/17697
2913         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
2914         cfg if needed.
2915
2916 2004-09-28  Per Bothner  <per@bothner.com>
2917
2918         * profile.c (branch_prob): Pass correct value to output_location,
2919         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
2920
2921 2004-09-28  Richard Henderson  <rth@redhat.com>
2922
2923         PR 15089
2924         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
2925         * tree-flow.h (may_propagate_copy_into_asm): Declare.
2926         * tree-ssa-ccp.c (replace_uses_in): Use it.
2927         * tree-ssa-dom.c (cprop_operand): Likewise.
2928
2929 2004-09-28 Jeff Law  <law@redhat.com>
2930
2931         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
2932         that no outgoing edges be left in the duplicate block.  Do no
2933         update information on outgoing edges or PHI nodes in target
2934         blocks here.
2935         (remove_ctrl_stmt_and_useless_edges): Renamed from
2936         remove_last_stmt_and_useless_edges.  Handle case where the
2937         block is empty or has no control statements.  Do not update edge
2938         flags here.
2939         (thread_block): Create a template block rather than copying the
2940         original block every time.  Create outgoing edges from the
2941         duplicate blocks and update PHIs at the target of the outgoing
2942         edges here.  Fix edge flags for the original block if necessary.
2943         * cfghooks (duplicate_block): No longer assert that the original
2944         block has incoming edges.
2945
2946 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
2947
2948         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
2949         Reg Vars to enforce register allocation with general constraints.
2950         (Explicit Reg Vars): Clarify relation to asm statements.
2951         (Local Reg Vars): Similar.
2952
2953 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2954
2955         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
2956         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
2957         build_control_flow, new_edge): Remove.
2958         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
2959         (bitlst, bitlst_table_last, bitlst_table): Remove.
2960         (bblst): Store basic_block pointer instead of block index.
2961         (bblst_table): Likewise.
2962         (edgelst): Store edge pointer instead of edge index.
2963         (edgelst_table, edgelst_last): New variables.
2964         (extract_bitlst): Rename to ...
2965         (extract_edgelst): ... this.  Return edge pointers, not indices.
2966         (split_edges): Update call.
2967         (rgn_edges): Store edge pointers instead of indices.
2968         (edge_to_bit): Remove.
2969         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
2970         (SET_EDGE_TO_BIT): New macro.
2971         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
2972         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
2973         data structures instead of haifa_edge et al.  Use edge pointers
2974         instead of edge indices everywhere.
2975         (compute_dom_prob_ps): Use standard CFG data structures.  Account
2976         for exit edges.
2977         (compute_trg_info): Likewise.
2978         (propagate_deps): Likewise.
2979         (debug_candidate): Account for bblst data structure change.
2980         (check_live_1, update_live_1, is_pfree): Likewise.
2981         (IS_REACHABLE): Use standard CFG data structures.
2982         (init_ready_list): Update bblst_table/edgelst_table allocation.
2983         (schedule_region): Update alloc/cleanup code to data structure
2984         changes.  Use edge->aux to store per-region edge index.
2985         (init_regions): No longer call build_control_flow.  Do not
2986         create edge list any more.
2987
2988 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2989
2990         * cse.c (cse_insn): Avoid creating direct non-local jumps.
2991         * combine.c (can_combine_p): Likewise.
2992         * local-alloc. (update_equiv_regs): Likewise.
2993
2994 2004-09-28  Richard Henderson  <rth@redhat.com>
2995
2996         PR 17531
2997         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
2998         Don't check VOIDmode here.  Force PLUS operands to common type.
2999         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
3000         Pmode if given a non pointer type.
3001
3002 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3003
3004         PR 17531
3005         * optabs.c (expand_binop): Force constants to the correct mode.
3006
3007 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3008
3009         * config/s390/s390.c (s390_adjust_cost): Remove.
3010         (TARGET_SCHED_ADJUST_COST): Do not redefine.
3011         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
3012         * config/s390/s390.md ("main_pool"): Use "larl" type
3013         attribute if TARGET_CPU_ZARCH.
3014
3015 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
3016
3017         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
3018         variable.
3019
3020 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3021
3022         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
3023         name to the pass.
3024
3025 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3026
3027         * common.opt (flag_gcse_sm): Disable by default.
3028         (flag_gcse_las): Likewise.
3029         (flag_web): Likewise.  Create from this file.
3030         * flags.h: Remove flag_web declaration.
3031         * toplev.c (flag_web): Likewise.
3032         (process_options): Never set flag_web.
3033
3034 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3035
3036         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
3037         * tree-ssa-propagate.c: Include vec.h.
3038         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
3039         instead of varrays.
3040         (cfg_blocks_add): Assert the block is not already in the worklist.
3041         Update uses of interesting_ssa_edges and varying_ssa_edges.
3042         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
3043         ssa_propagate): Likewise.
3044
3045 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3046
3047         PR c/16409
3048         * c-decl.c (start_decl): Check for initializing incomplete array
3049         of VLAs.
3050         (build_compound_literal): Check for TYPE being error_mark_node.
3051         * c-parse.in (primary): Check for VLA compound literals.
3052
3053 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3054
3055         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
3056         with --disable-checking.
3057
3058 2004-09-28  Devang Patel  <dpatel@apple.com>
3059
3060         * tree-pretty-print.c (dump_generic_node): Print vector types.
3061
3062 2004-09-28  Nick Clifton  <nickc@redhat.com>
3063
3064         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
3065         invocation of the function sh_init_cumulative_args.
3066         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
3067         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
3068         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
3069         * config/sh/sh.c (sh_init_cumulative_args): New function based
3070         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
3071         heuristic added to determine the setting of force_mem when a
3072         library function is being called.
3073
3074 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3075
3076         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
3077         Skip constant arguments.
3078
3079 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3080
3081         * tree-ssa-alias.c (create_name_tags): If PTR points to a
3082         volatile type, mark the tag volatile.
3083         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
3084         volatile.
3085
3086 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
3087
3088         * tree.def (vec_cond_expr): Fix. Change 'e'
3089         to tcc_expression.
3090
3091 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3092
3093         * basic-block.h: Fix a comment typo.
3094
3095 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3096
3097         * optabs.c, optabs.h: Fix comment typos.
3098
3099 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
3100
3101         * config/sparc/sparc.md (call_address_struct_value_sp32):
3102         Properly mask the immediate field of the 'unimp' instruction.
3103         (call_symbolic_struct_value_sp32): Likewise.
3104
3105 2004-09-28  Ben Elliston  <bje@au.ibm.com>
3106             Steven Bosscher  <stevenb@suse.de>
3107             Andrew Pinski  <pinskia@physics.uc.edu>
3108
3109         Merge from edge-vector-branch:
3110         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
3111         (struct edge_def): Remove pred_next, succ_next members.
3112         (struct basic_block_def): Remove pred, succ members.  Add preds
3113         and succs members of type VEC(edge).
3114         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
3115         (BRANCH_EDGE): Likewise.
3116         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
3117         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
3118         (edge_iterator): New.
3119         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
3120         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
3121         (FOR_EACH_EDGE): New.
3122         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
3123         where applicable.
3124         (rotate_loop): Likewise.
3125         (find_traces_1_route): Likewise.
3126         (bb_to_key): Likewise.
3127         (connect_traces): Likewise.
3128         (copy_bb_p): Likewise.
3129         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
3130         (add_labels_and_missing_jumps): Likewise.
3131         (fix_up_fall_thru_edges): Likewise.
3132         (find_jump_block): Likewise.
3133         (fix_crossing_conditional_branches): Likewise.
3134         (fix_crossing_unconditional_branches): Likewise.
3135         (add_reg_crossing_jump_notes): Likewise.
3136         * bt-load.c (augment_live_range): Likewise.
3137         * cfg.c (clear_edges): Likewise.
3138         (unchecked_make_edge): Likewise.
3139         (cached_make_edge): Likewise.
3140         (make_single_succ_edge): Likewise.
3141         (remove_edge): Likewise.
3142         (redirect_edge_succ_nodup): Likewise.
3143         (check_bb_profile): Likewise.
3144         (dump_flow_info): Likewise.
3145         (alloc_aux_for_edges): Likewise.
3146         (clear_aux_for_edges): Likewise.
3147         (dump_cfg_bb_info): Likewise.
3148         * cfganal.c (forwarder_block_p): Likewise.
3149         (can_fallthru): Likewise.
3150         (could_fall_through): Likewise.
3151         (mark_dfs_back_edges): Likewise.
3152         (set_edge_can_fallthru_flag): Likewise.
3153         (find_unreachable_blocks): Likewise.
3154         (create_edge_list): Likewise.
3155         (verify_edge_list): Likewise.
3156         (add_noreturn_fake_exit_edges): Likewise.
3157         (connect_infinite_loops_to_exit): Likewise.
3158         (flow_reverse_top_sort_order_compute): Likewise.
3159         (flow_depth_first_order_compute): Likewise.
3160         (flow_preorder_transversal_compute): Likewise.
3161         (flow_dfs_compute_reverse_execute): Likewise.
3162         (dfs_enumerate_from): Likewise.
3163         (compute_dominance_frontiers_1): Likewise.
3164         * cfgbuild.c (make_edges): Likewise.
3165         (compute_outgoing_frequencies): Likewise.
3166         (find_many_sub_basic_blocks): Likewise.
3167         (find_sub_basic_blocks): Likewise.
3168         * cfgcleanup.c (try_simplify_condjump): Likewise.
3169         (thread_jump): Likewise.
3170         (try_forward_edges): Likewise.
3171         (merge_blocks_move): Likewise.
3172         (outgoing_edges_match): Likewise.
3173         (try_crossjump_to_edge): Likewise.
3174         (try_crossjump_bb): Likewise.
3175         (try_optimize_cfg): Likewise.
3176         (merge_seq_blocks): Likewise.
3177         * cfgexpand.c (expand_gimple_tailcall): Likewise.
3178         (expand_gimple_basic_block): Likewise.
3179         (construct_init_block): Likewise.
3180         (construct_exit_block): Likewise.
3181         * cfghooks.c (verify_flow_info): Likewise.
3182         (dump_bb): Likewise.
3183         (delete_basic_block): Likewise.
3184         (split_edge): Likewise.
3185         (merge_blocks): Likewise.
3186         (make_forwarder_block): Likewise.
3187         (tidy_fallthru_edges): Likewise.
3188         (can_duplicate_block_p): Likewise.
3189         (duplicate_block): Likewise.
3190         * cfglayout.c (fixup_reorder_chain): Likewise.
3191         (fixup_fallthru_exit_predecessor): Likewise.
3192         (can_copy_bbs_p): Likewise.
3193         (copy_bbs): Likewise.
3194         * cfgloop.c (flow_loops_cfg_dump): Likewise.
3195         (flow_loop_entry_edges_find): Likewise.
3196         (flow_loop_exit_edges_find): Likewise.
3197         (flow_loop_nodes_find): Likewise.
3198         (mark_single_exit_loops): Likewise.
3199         (flow_loop_pre_header_scan): Likewise.
3200         (flow_loop_pre_header_find): Likewise.
3201         (update_latch_info): Likewise.
3202         (canonicalize_loop_headers): Likewise.
3203         (flow_loops_find): Likewise.
3204         (get_loop_body_in_bfs_order): Likewise.
3205         (get_loop_exit_edges): Likewise.
3206         (num_loop_branches): Likewise.
3207         (verify_loop_structure): Likewise.
3208         (loop_latch_edge): Likewise.
3209         (loop_preheader_edge): Likewise.
3210         * cfgloopanal.c (mark_irreducible_loops): Likewise.
3211         (expected_loop_iterations): Likewise.
3212         * cfgloopmanip.c (remove_bbs): Likewise.
3213         (fix_bb_placement): Likewise.
3214         (fix_irreducible_loops): Likewise.
3215         (remove_path): Likewise.
3216         (scale_bbs_frequencies): Likewise.
3217         (loopify): Likewise.
3218         (unloop): Likewise.
3219         (fix_loop_placement): Likewise.
3220         (loop_delete_branch_edge): Likewise.
3221         (duplicate_loop_to_header_edge): Likewise.
3222         (mfb_keep_just): Likewise.
3223         (create_preheader): Likewise.
3224         (force_single_succ_latches): Likewise.
3225         (loop_split_edge_with): Likewise.
3226         (create_loop_notes): Likewise.
3227         * cfgrtl.c (rtl_split_block): Likewise.
3228         (rtl_merge_blocks): Likewise.
3229         (rtl_can_merge_blocks): Likewise.
3230         (try_redirect_by_replacing_jump): Likewise.
3231         (force_nonfallthru_and_redirect): Likewise.
3232         (rtl_tidy_fallthru_edge): Likewise.
3233         (commit_one_edge_insertion): Likewise.
3234         (commit_edge_insertions): Likewise.
3235         (commit_edge_insertions_watch_calls): Likewise.
3236         (rtl_verify_flow_info_1): Likewise.
3237         (rtl_verify_flow_info): Likewise.
3238         (purge_dead_edges): Likewise.
3239         (cfg_layout_redirect_edge_and_branch): Likewise.
3240         (cfg_layout_can_merge_blocks_p): Likewise.
3241         (rtl_flow_call_edges_add): Likewise.
3242         * cse.c (cse_cc_succs): Likewise.
3243         * df.c (hybrid_search): Likewise.
3244         * dominance.c (calc_dfs_tree_nonrec): Likewise.
3245         (calc_dfs_tree): Likewise.
3246         (calc_idoms): Likewise.
3247         (recount_dominator): Likewise.
3248         * domwalk.c (walk_dominator_tree): Likewise.
3249         * except.c (emit_to_new_bb_before): Likewise.
3250         (connect_post_landing_pads): Likewise.
3251         (sjlj_emit_function_enter): Likewise.
3252         (sjlj_emit_function_exit): Likewise.
3253         (finish_eh_generation): Likewise.
3254         * final.c (compute_alignments): Likewise.
3255         * flow.c (calculate_global_regs_live): Likewise.
3256         (initialize_uninitialized_subregs): Likewise.
3257         (init_propagate_block_info): Likewise.
3258         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3259         * gcse.c (find_implicit_sets): Likewise.
3260         (bypass_block): Likewise.
3261         (bypass_conditional_jumps): Likewise.
3262         (compute_pre_data): Likewise.
3263         (insert_insn_end_bb): Likewise.
3264         (insert_store): Likewise.
3265         (remove_reachable_equiv_notes): Likewise.
3266         * global.c (global_conflicts): Likewise.
3267         (calculate_reg_pav): Likewise.
3268         * graph.c (print_rtl_graph_with_bb): Likewise.
3269         * ifcvt.c (mark_loop_exit_edges): Likewise.
3270         (merge_if_block): Likewise.
3271         (find_if_header): Likewise.
3272         (block_jumps_and_fallthru_p): Likewise.
3273         (find_if_block): Likewise.
3274         (find_cond_trap): Likewise.
3275         (block_has_only_trap): Likewise.
3276         (find_if_case1): Likewise.
3277         (find_if_case_2): Likewise.
3278         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
3279         (perfect_nestify): Likewise.
3280         * lcm.c (compute_antinout_edge): Likewise.
3281         (compute_laterin): Likewise.
3282         (compute_available): Likewise.
3283         (compute_nearerout): Likewise.
3284         * loop-doloop.c (doloop_modify): Likewise.
3285         * loop-init.c (loop_optimizer_init): Likewise.
3286         * loop-invariant.c (find_exits): Likewise.
3287         * loop-iv.c (simplify_using_initial_values): Likewise.
3288         (check_simple_exit): Likewise.
3289         (find_simple_exit): Likewise.
3290         * loop-unroll.c (peel_loop_completely): Likewise.
3291         (unroll_loop_constant_iterations): Likewise.
3292         (unroll_loop_runtime_iterations): Likewise.
3293         * loop-unswitch.c (may_unswitch_on): Likewise.
3294         (unswitch_loop): Likewise.
3295         * modulo-sched.c (generate_prolog_epilog): Likewise.
3296         (sms_schedule): Likewise.
3297         * postreload-gcse.c (eliminate_partially_redundant_load):
3298         Likewise.
3299         * predict.c (can_predict_insn_p): Likewise.
3300         (set_even_probabilities): Likewise.
3301         (combine_predictions_for_bb): Likewise.
3302         (predict_loops): Likewise.
3303         (estimate_probability): Likewise.
3304         (tree_predict_by_opcode): Likewise.
3305         (tree_estimate_probability): Likewise.
3306         (last_basic_block_p): Likewise.
3307         (propagate_freq): Likewise.
3308         (estimate_loops_at_level): Likewise.
3309         (estimate_bb_frequencies): Likewise.
3310         * profile.c (instrument_edges): Likewise.
3311         (get_exec_counts): Likewise.
3312         (compute_branch_probabilities): Likewise.
3313         (branch_prob): Likewise.
3314         * ra-build.c (live_in): Likewise.
3315         * ra-rewrite.c (rewrite_program2): Likewise.
3316         * ra.c (reg_alloc): Likewise.
3317         * reg-stack.c (reg_to_stack): Likewise.
3318         (convert_regs_entry): Likewise.
3319         (compensate_edge): Likewise.
3320         (convert_regs_1): Likewise,
3321         (convert_regs_2): Likewise.
3322         (convert_regs): Likewise.
3323         * regrename.c (copyprop_hardreg_forward): Likewise.
3324         * reload1.c (fixup_abnormal_edges): Likewise.
3325         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
3326         (sbitmap_insersection_of_preds): Likewise.
3327         (sbitmap_union_of_succs): Likewise.
3328         (sbitmap_union_of_preds): Likewise.
3329         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
3330         (fix_basic_block_boundaries): Likewise.
3331         (sched_ebbs): Likewise.
3332         * sched-rgn.c (build_control_flow): Likewise.
3333         (find_rgns): Likewise.
3334         * tracer.c (find_best_successor): Likewise.
3335         (find_best_predecessor): Likewise.
3336         (tail_duplicate): Likewise.
3337         * tree-cfg.c (make_edges): Likewise.
3338         (make_ctrl_stmt_edges): Likewise.
3339         (make_goto_expr_edges): Likewise.
3340         (tree_can_merge_blocks_p): Likewise.
3341         (tree_merge_blocks): Likewise.
3342         (cfg_remove_useless_stmts_bb): Likewise.
3343         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3344         (tree_block_forwards_to): Likewise.
3345         (cleanup_control_expr_graph): Likewise.
3346         (find_taken_edge): Likewise.
3347         (dump_cfg_stats): Likewise.
3348         (tree_cfg2vcg): Likewise.
3349         (disband_implicit_edges): Likewise.
3350         (tree_find_edge_insert_loc): Likewise.
3351         (bsi_commit_edge_inserts): Likewise.
3352         (tree_split_edge): Likewise.
3353         (tree_verify_flow_info): Likewise.
3354         (tree_make_forwarder_block): Likewise.
3355         (tree_forwarder_block_p): Likewise.
3356         (thread_jumps): Likewise.
3357         (tree_try_redirect_by_replacing_jump): Likewise.
3358         (tree_split_block): Likewise.
3359         (add_phi_args_after_copy_bb): Likewise.
3360         (rewrite_to_new_ssa_names_bb): Likewise.
3361         (dump_function_to_file): Likewise.
3362         (print_pred_bbs): Likewise.
3363         (print_loop): Likewise.
3364         (tree_flow_call_edges_add): Likewise.
3365         (split_critical_edges): Likewise.
3366         (execute_warn_function_return): Likewise.
3367         (extract_true_false_edges_from_block): Likewise.
3368         * tree-if-conv.c (tree_if_conversion): Likewise.
3369         (if_convertable_bb_p): Likewise.
3370         (find_phi_replacement_condition): Likewise.
3371         (combine_blocks): Likewise.
3372         * tree-into-ssa.c (compute_global_livein): Likewise.
3373         (ssa_mark_phi_uses): Likewise.
3374         (ssa_rewrite_initialize_block): Likewise.
3375         (rewrite_add_phi_arguments): Likewise.
3376         (ssa_rewrite_phi_arguments): Likewise.
3377         (insert_phi_nodes_for): Likewise.
3378         (rewrite_into_ssa): Likewise.
3379         (rewrite_ssa_into_ssa): Likewise.
3380         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
3381         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
3382         (rewrite_trees): Likewise.
3383         * tree-pretty-print.c (dump_bb_header): Likewise.
3384         (dump_implicit_edges): Likewise.
3385         * tree-sra.c (insert_edge_copies): Likewise.
3386         (find_obviously_necessary_stmts): Likewise.
3387         (remove_data_stmt): Likewise.
3388         * tree-ssa-dom.c (thread_across_edge): Likewise.
3389         (dom_opt_finalize_block): Likewise.
3390         (single_incoming_edge_ignoring_loop_edges): Likewise.
3391         (record_equivalences_from_incoming_edges): Likewise.
3392         (cprop_into_successor_phis): Likewise.
3393         * tree-ssa-live.c (live_worklist): Likewise.
3394         (calculate_live_on_entry): Likewise.
3395         (calculate_live_on_exit): Likewise.
3396         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
3397         (copy_loop_headers): Likewise.
3398         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
3399         (fill_always_executed_in): Likewise.
3400         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
3401         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
3402         (compute_phi_arg_on_exit): Likewise.
3403         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
3404         (get_loops_exit): Likewise.
3405         (split_loop_exit_edge): Likewise.
3406         (ip_normal_pos): Likewise.
3407         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
3408         Likewise.
3409         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
3410         (replace_phi_with_stmt): Likewise.
3411         (value_replacement): Likewise.
3412         * tree-ssa-pre.c (compute_antic_aux): Likewise.
3413         (insert_aux): Likewise.
3414         (init_pre): Likewise.
3415         * tree-ssa-propagate.c (simulate_stmt): Likewise.
3416         (simulate_block): Likewise.
3417         (ssa_prop_init): Likewise.
3418         * tree-ssa-threadupdate.c (thread_block): Likewise.
3419         (create_block_for_threading): Likewise.
3420         (remove_last_stmt_and_useless_edges): Likewise.
3421         * tree-ssa.c (verify_phi_args): Likewise.
3422         (verify_ssa): Likewise.
3423         * tree_tailcall.c (independent_of_stmt_p): Likewise.
3424         (find_tail_calls): Likewise.
3425         (eliminate_tail_call): Likewise.
3426         (tree_optimize_tail_calls_1): Likewise.
3427         * tree-vectorizer.c (vect_transform_loop): Likewise.
3428         * var-tracking.c (prologue_stack_adjust): Likewise.
3429         (vt_stack_adjustments): Likewise.
3430         (vt_find_locations): Likewise.
3431         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
3432         * config/i386/i386.c (ix86_pad_returns): Likewise.
3433         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3434         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3435
3436 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3437
3438         PR target/16532
3439         * config/sparc/sparc.c (struct machine_function): New field
3440         'leaf_function_p' and 'prologue_data_valid_p'.
3441         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
3442         to conveniently access the above fields.
3443         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
3444         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
3445         of the generic flavor 'current_function_uses_only_leaf_regs'.
3446         (eligible_for_sibcall_delay): Likewise.
3447         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
3448         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
3449         (sparc_asm_function_prologue): Add sanity check for the assumption
3450         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
3451         (sparc_can_use_return_insn_p): New function.
3452         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
3453         (output_restore): Likewise.
3454         (output_sibcall): Likewise.
3455         (sparc_output_mi_thunk): Likewise.
3456         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
3457         * config/sparc/sparc.md (return): New expander.
3458
3459         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
3460
3461 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
3462
3463         PR c++/17642
3464         * stor-layout.c (layout_decl): Use fold_convert, not convert.
3465         (bit_from_pos): Likewise.
3466         (byte_from_pos): Likewise.
3467         (pos_from_bit): Likewise.
3468         (normalize_offset): Likewise.
3469         (place_field): Likewise.
3470         (finalize_type_size): Likewise.
3471         (layout_type): Likewise.
3472         * tree.c (build_index_type): Likewise.
3473
3474 2004-09-27  Devang Patel  <dpatel@apple.com>
3475
3476         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
3477         * genopinit.c (optabs): New entry for vcond_gen_code and
3478         vcondu_gen_code.
3479         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
3480         (get_rtx_code): New function.
3481         (vector_compare_rtx): New function.
3482         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
3483         (expand_vec_cond_expr_p): New function.
3484         (expand_vec_cond_expr): New function.
3485         (get_vcond_icode): New function.
3486         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
3487         (vcond_gen_code, vcondu_gen_code): Same.
3488
3489 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3490
3491         * Makefile.in (STAGESTUFF): Split into ...
3492         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
3493         (mostlyclean): Update.
3494         (stage1-start, stage2-start, stage3-start, stage4-start,
3495         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
3496         Move the STAGEMOVESTUFF.
3497
3498 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
3499
3500         * system.h (getpagesize): Return 'int' instead of 'long'.
3501
3502 2004-09-27  Michael Matz <matz@suse.de>
3503
3504         PR bootstrap/17698
3505         PR bootstrap/17702
3506         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
3507         bmp_iter_and_init): Shift by bit_in_word.
3508
3509 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3510
3511         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
3512         * configure.ac: Don't sinclude it here.
3513         * configure: Regenerate.
3514
3515 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
3516
3517         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
3518         Handle AND pattern
3519
3520 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
3521
3522         PR c/13804
3523         * c-typeck.c (build_component_ref): Name type involved in
3524         diagnostic for structure or union without a member of the given
3525         name.
3526
3527 2004-09-27  DJ Delorie  <dj@redhat.com>
3528
3529         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
3530         .comm alignment is bytes, not bits.
3531
3532 2004-09-27  Devang Patel  <dpatel@apple.com>
3533
3534         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3535         (print_call_name): Do not print VEC_COND_EXPR.
3536
3537 2004-09-27  Devang Patel  <dpatel@apple.com>
3538
3539         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3540
3541 2004-09-27  Jan Hubicka  <jh@suse.cz>
3542
3543         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
3544
3545 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
3546
3547         * bitmap.h: Fix a comment typo.
3548
3549 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
3550
3551         * libgcc2.c (getpagesize): Change type of return value to int.
3552
3553 2004-09-26  Matt Austern  <austern@apple.com>
3554
3555         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
3556         using mmap.
3557
3558 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3559
3560         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
3561         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
3562         (bitmap_iterator): New type.
3563         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
3564         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
3565         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
3566         bmp_iter_and_init, bmp_iter_and_next): New functions.
3567         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
3568         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
3569         use iterator-style EXECUTE_IF_IN_BITMAP macros.
3570         * bitmap.c (bitmap_print): Ditto.
3571         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
3572         btr_def_live_range): Ditto.
3573         * cfganal.c (compute_dominance_frontiers_1) Ditto.
3574         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
3575         Ditto.
3576         * ddg.c (build_inter_loop_deps): Ditto.
3577         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
3578         Ditto.
3579         * except.c (remove_eh_handler): Ditto.
3580         * flow.c (reg_set_to_hard_reg_set): Ditto.
3581         * gcse.c (clear_modify_mem_tables): Ditto.
3582         * global.c (build_insn_chain): Ditto.
3583         * ifcvt.c (dead_or_predicable): Ditto.
3584         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
3585         Ditto.
3586         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
3587         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
3588         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
3589         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
3590         tree_purge_all_dead_eh_edges): Ditto.
3591         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
3592         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
3593         rewrite_ssa_into_ssa): Ditto.
3594         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
3595         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
3596         Ditto.
3597         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
3598         compute_flow_sensitive_aliasing, maybe_create_global_var,
3599         dump_points_to_info_for): Ditto.
3600         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
3601         * tree-ssa-dse.c (dse_finalize_block): Ditto.
3602         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
3603         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
3604         Ditto.
3605         * tree-ssa-loop-ivopts.c (find_induction_variables,
3606         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
3607         determine_use_iv_costs, determine_set_costs, find_best_candidate,
3608         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
3609         Ditto.
3610         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
3611         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
3612         add_call_read_ops): Ditto.
3613         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
3614
3615 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3616
3617         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
3618         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
3619
3620 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
3621
3622         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
3623         reflect size of memory regions being compared.
3624
3625 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
3626
3627         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
3628         expressions.  Always clear MEM_SIZE and alias set.
3629
3630 2004-09-26  Roger Sayle  <roger@eyesopen.com>
3631             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3632
3633         PR middle-end/17112
3634         * stor-layout.c (compute_record_mode): For records with a single
3635         field, only use the field's mode if its size matches what we'd
3636         have choosen for the record ourselves.  This forces the use of
3637         BLKmode for packed records that don't completely fill a mode.
3638
3639 2004-09-26  Roger Sayle  <roger@eyesopen.com>
3640
3641         PR middle-end/17151
3642         * combine.c (force_to_mode): Remove dubious early return test that
3643         inhibits further optimization.
3644
3645 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
3646
3647         * profile.c: Fix a comment typo.
3648
3649 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3650
3651         PR bootstrap/17591
3652         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
3653         with varying offset.
3654         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
3655         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
3656         ARRAY_REFS.
3657         (expr_invariant_in_loop_p): New function.
3658         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
3659         component_ref_field_offset for COMPONENT_REFs.  Do not allow
3660         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
3661         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
3662         MISALIGNED_INDIRECT_REFs.
3663         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
3664         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
3665         MISALIGNED_INDIRECT_REFs.
3666
3667 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
3668
3669         PR c/11459
3670         * gcc.c (cpp_options, cc1_options): Preserve relative order of
3671         -std and -ansi options.
3672
3673 2004-09-26  Jan Hubicka  <jh@suse.cz>
3674
3675         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
3676         for nested functions whose proper parent has not been output.
3677
3678         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
3679         when re-constructing profile previously invalidated by loop.
3680
3681 2004-09-25  Dale Johannesen  <dalej@apple.com>
3682
3683         * tree-gimple.c:  Move GIMPLE definition...
3684         * doc/tree-ssa.texi:  here.
3685
3686 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3687
3688         * tree-vectorizer.c: Fix a comment typo.
3689
3690 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3691
3692         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
3693         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
3694         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
3695         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
3696
3697 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3698
3699         * tree-ssa-loop-unswitch.c: Fix a comment typo.
3700
3701 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3702
3703         * doc/passes.texi: Fix a typo.
3704
3705 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3706
3707         * tree-optimize.c (init_tree_optimization_passes): Add
3708         pass_record_bounds.
3709         * tree-pass.h (pass_record_bounds): Declare.
3710         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
3711         New pass.
3712
3713 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3714
3715         PR tree-optimization/17474
3716         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
3717         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
3718
3719 2004-09-25  Jan Hubicka  <jh@suse.cz>
3720
3721         * predict.c (counts_to_freqs): Make global.
3722         * predict.h (counts_to_freqa): Declare.
3723         * profile.c (compute_branch_probabilities): Compute frequencies
3724         * tree-profile.c (do_tree_profiling): Refine conditional on when
3725         tree profiling pass is needed.
3726
3727         * passes.c (rest_of_handle_cfg): Disable const/pure function
3728         detection when doing tree based profiling.
3729
3730         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
3731         conditional.
3732
3733 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
3734
3735         * config/mips/mips.h (struct mips_args): Clarify comments.
3736         * config/mips/mips.c (struct mips_arg_info): Likewise.
3737         (mips_arg_info): Don't allow fpr_p to affect the register or
3738         stack alignment.  Remove o64 silliness.
3739         (function_arg): Deal with the o32 float,float case specially.
3740
3741 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
3742
3743         * config/mips/mips.md (loadx, storex): Define for V2SF.
3744
3745 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
3746
3747         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
3748         * config/s390/s390.c (s390_back_chain_rtx): New function.
3749         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
3750         Call anti_adjust_stack.
3751         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
3752         only if compiling with back chain.
3753         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
3754         back chain only if back chain enabled.  Use s390_back_chain_rtx.
3755
3756 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3757
3758         * doc/trouble.texi: Remove obsolete information.  Update
3759         information on how to regenerate fixincluded headers.
3760
3761 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3762
3763         PR c/12951
3764         * doc/invoke.texi: Document that
3765         -Wno-error-implicit-function-declaration is not accepted.
3766
3767 2004-09-24  Richard Henderson  <rth@redhat.com>
3768
3769         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
3770         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
3771         on TARGET_MAX.
3772         (alpha_expand_mov): Allow unaligned vectors.
3773         (alpha_expand_unaligned_store): Use CONST0_RTX.
3774         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
3775
3776 2004-09-24 Jeff Law  <law@redhat.com>
3777
3778         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
3779         aliasing rules.
3780         (simplify_cond_and_lookup_avail_expr): Likewise.
3781
3782 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3783
3784         PR c/12802
3785         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
3786         title.  Document interaction with -fms-extensions.
3787         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
3788         section.
3789
3790 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3791
3792         PR c/12713
3793         * doc/extend.texi: Document interaction of attribute noreturn and
3794         longjmp.
3795
3796 2004-09-24  Richard Henderson  <rth@redhat.com>
3797
3798         PR rtl-opt/17503
3799         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
3800         (som_hash, som_eq): New.
3801         (init_subregs_of_mode, record_subregs_of_mode): New.
3802         (cannot_change_mode_set_regs): Rewrite for htab implementation.
3803         (invalid_mode_change_p): Likewise.
3804         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
3805         * flow.c (mark_used_regs): Likewise.
3806         (life_analysis): Use init_subregs_of_mode.
3807         * regs.h (subregs_of_mode): Remove.
3808         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
3809
3810 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3811
3812         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
3813         type with the copy of the conditional.
3814
3815 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3816
3817         PR tree-opt/16954
3818         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3819         Prevent renaming if the aliasing sets of the type which the
3820         pointer points to are different.
3821
3822 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3823
3824         PR c/17188
3825         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
3826         declarations of enumerators.
3827         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
3828         for redefinition.  Check for nested redefinition.
3829         (finish_struct): Don't check for nested redefinition.
3830         (start_enum): Check for nested redefinition.
3831
3832 2004-09-24  Devang Patel  <dpatel@apple.com>
3833
3834         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
3835         only when necesssary.
3836         (combine_blocks): Combine loop header and exit block.
3837
3838 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
3839
3840         * hooks.c (hook_tree_tree_bool_null): New.
3841         * hooks.h (hook_tree_tree_bool_null): Declare it.
3842         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
3843         * targhooks.c (default_fold_builtin): Remove.
3844         * targhooks.h (default_fold_builtin): Remove.
3845
3846 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3847
3848         PR rtl-optimization/17625
3849         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
3850
3851 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3852
3853         PR tree-opt/17624
3854         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
3855         Reject if any of the operands occur in an abnormal PHI.
3856
3857 2004-09-24  Andreas Schwab  <schwab@suse.de>
3858
3859         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
3860         rules.
3861
3862 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3863
3864         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
3865         if the GNU assembler is used.
3866         (sparc-*-solaris2*): Likewise.
3867         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
3868         (dbxout_function_end): Protect N_ENSYM with it.
3869         (dbxout_begin_prologue): Protect N_BNSYM with it.
3870         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
3871         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
3872         * config/sparc/sol2-gas.h: New file.
3873
3874 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
3875
3876         PR bootstrap/17369
3877         * Makefile.in (@set_gcc_lib_path@): Added.
3878
3879         * configure.ac: Include ../config/gcc-lib-path.m4. Use
3880         TL_AC_GNU_MAKE_GCC_LIB_PATH.
3881         * configure: Regenerated.
3882
3883 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3884
3885         PR c/6980
3886         * c-typeck.c (build_c_cast): Improve wording of
3887         -Wbad-function-cast diagnostic.
3888
3889 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
3890
3891         PR target/17626
3892         * config/cris/cris.md (moverside, movemside): Rename variable
3893         "reg" to "otherop".  To generate canonical RTX, check that otherop
3894         isn't constant instead of checking that operand 1 is a register.
3895
3896 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
3897
3898         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
3899
3900 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
3901             Jakub Jelinek  <jakub@redhat.com>
3902
3903         * tree-flow.h (find_new_referenced_vars): Add prototype.
3904         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
3905         Move to...
3906         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
3907         ... here.
3908         (mark_new_vars_to_rename): Walk through all operands.
3909         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
3910         (execute_fold_all_builtins): Use it.
3911         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
3912
3913 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
3914
3915         * gthr-tpf.h: New file.
3916         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
3917         * gthr.h: Use gthr-tpf.h on TPF OS.
3918
3919 2004-09-23 Jeff Law  <law@redhat.com>
3920
3921         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
3922         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
3923         (substitute_and_fold):  Likewise.
3924         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
3925         except invariants from SSA_NAME_VALUE.
3926         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
3927         and SET_SSA_NAME_EQUIV.
3928         (restore_vars_to_original_value, record_const_or_copy): Likewise.
3929         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
3930         (record_equality, cprop_into_successor_phis): Likewise.
3931         (record_equivalences_from_stmt, cprop_operand): Likewise.
3932         (lookup_avail_expr): Likewise.
3933         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
3934         from SSA_NAME_VALUE.
3935         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
3936         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
3937         annotation from the VALUE_HANDLE field.
3938
3939 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
3940
3941         PR c++/13989
3942         PR c++/9844
3943         * tree.c (reconstruct_complex_type): Remove extra "this".
3944         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
3945         Add V4SFmode to case statement.
3946
3947 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3948
3949         PR c/16833
3950         * doc/extend.texi, doc/invoke.texi: Document interaction of
3951         -fno-builtin with format checks.  Note that built-in functions
3952         have effects beyond generating code that avoids calls to those
3953         functions.
3954
3955 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
3956
3957         PR tree-optimization/17533
3958         * dominance.c (verify_dominators): Tolerate even more incorrect
3959         dominance data during error message printing.
3960         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
3961         and edges more correctly.
3962
3963 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
3964
3965         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
3966         New tree-codes.
3967         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
3968         MISALIGNED_INDIRECT_REF.
3969         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
3970         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
3971         Likewise.
3972         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
3973         (find_interesting_uses_address): Likewise.
3974         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
3975         (build_fold_addr_expr_with_type): Likewise.
3976         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
3977         * print-rtl.c (print_mem_expr): Likewise.
3978         * tree-dump.c (dequeue_and_dump): Likewise.
3979         * tree-eh.c (tree_could_trap_p): Likewise.
3980         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
3981         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
3982         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
3983         Likewise.
3984         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3985         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
3986         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
3987         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3988         (add_address_candidates, rewrite_address_base): Likewise.
3989         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
3990         Likewise.
3991         * tree.c (staticp, build1_stat): Likewise.
3992
3993         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
3994         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
3995         * tree-ssa-operands.c (get_expr_operands): Likewise.
3996         * expr.c (expand_expr_real_1): Likewise.
3997
3998         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
3999         optabs.
4000         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
4001         for the new optabs.
4002         (expand_ternary_op): New function.
4003         * genopinit.c (optabs): Handle the new optabs.
4004         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
4005         (init_optabs): Initialize vec_realign_load_optab.
4006         (expand_ternary_op): New functions.
4007
4008         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
4009         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
4010         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
4011         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
4012         * target.h (struct vectorize): New member for struct gcc_target.
4013         (misaligned_mem_ok): New member for targetm.vectorize.
4014         (builtin_mask_for_load): Likewise.
4015         (builtin_mask_for_store): Likewise.
4016         * targethooks.c (default_vect_misaligned_mem_ok): New function.
4017         * targethooks.h (default_vect_misaligned_mem_ok): New function.
4018
4019         * config/rs6000/altivec.md (build_vector_mask_for_load): New
4020         define_expand.
4021         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
4022         (vec_realign_load_v16qi): New define_insn.
4023         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
4024         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
4025         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
4026         (altivec_builtin_mask_for_store): New variables.
4027         (rs6000_builtin_mask_for_load): New function. Implements
4028         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
4029         (rs6000_builtin_mask_for_store): New function. Implements
4030         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
4031         (rs6000_expand_builtin): Expand the target builtins
4032         builtin_mask_for_load and builtin_mask_for_store.
4033         (altivec_init_builtins): Initialize the new target builtins.
4034         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
4035         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
4036
4037         * tree-vectorizer.c (vect_create_data_ref): Renamed to
4038         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
4039         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
4040         (vectorizable_store): Call vect_create_data_ref_ptr with additional
4041         arguments, and create an indirect_ref with its return value data_ref.
4042         Check aligned_access_p.
4043         (vectorizable_load): Handle misaligned loads, using software-pipelined
4044         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
4045         vec_realign_load_optab is supported, or using a scheme without
4046         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
4047         misaligned_mem_ok is supported.
4048
4049         (vect_finish_stmt_generation): Typo.
4050         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
4051         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
4052         presence of misaligned loads.
4053         (vect_analyze_data_ref_access): Add check for constant init.
4054         (vect_get_symbl_and_dr): Remove duplicate line.
4055         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
4056
4057 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
4058
4059         * builtins.c: Fix a comment typo.
4060
4061 2004-09-23  Jan Hubicka  <jh@suse.cz>
4062
4063         * profile.c (branch_prob): Do not verify flow info in the middle of the
4064         pass.
4065
4066 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4067
4068         * cfgloop.h (update_single_exits_after_duplication): Declare.
4069         (loopify, split_loop_bb): Declaration changed.
4070         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
4071         of rtx.
4072         (loopify): Added redirect_all_edges argument.
4073         (update_single_exits_after_duplication): Export.
4074         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
4075         * tree-flow.h (tree_duplicate_loop_to_header_edge,
4076         tree_ssa_loop_version): Declare.
4077         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
4078         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
4079         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
4080         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
4081
4082         * tree-ssa-loop-unswitch.c: New file.
4083         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
4084         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
4085         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
4086         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
4087         * tree-pass.h (pass_unswitch): Declare.
4088         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
4089         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
4090         * doc/passes.texi: Documen tree level loop unswitching.
4091
4092 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
4093
4094         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
4095
4096 2004-09-22  Eric Christopher  <echristo@redhat.com>
4097
4098         * builtins.c (simplify_builtin_va_start): Remove.
4099         (simplify_builtin): Ditto.
4100         (fold_builtin_strchr): Ditto.
4101         (simplify_builtin_*): Rename remainders to fold_builtin_*.
4102         (expand_builtin): Fix up for above changes.
4103         (fold_builtin_1): Add new folders. Change for above.
4104         (expand_builtin_va_start): Call fold_builtin_next_arg.
4105         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
4106         * tree.h: Remove prototype for simplify_builtin.
4107
4108 2004-09-23  Jan Hubicka  <jh@suse.cz>
4109
4110         PR debug/17389
4111         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
4112         of fully inlined functions.
4113         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
4114         inlined.
4115
4116         * cfgexpand.c (add_reg_br_prob_note): New function.
4117         (expand_gimple_cond_expr): Use it.
4118         (tree_expand_cfg): No longer kill the profile.
4119         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
4120         only if it is present.
4121         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
4122         * predict.c (combine_predictions_for_insn): Set the probabilities
4123         based on REG_BR_PROB note if present.
4124         * predict.c (branch_prob): Profile is read only with
4125         flag_branch_probabilities.
4126
4127 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4128
4129         * aclocal.m4: Add in gettext's m4 includes.
4130         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
4131         * configure.ac: Add in check for iconv.h
4132         * configure: Regenerate.
4133
4134 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4135
4136         * aclocal.m4: Update for rename of gettext-sister.m4.
4137
4138 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
4139
4140         Fix PR tree-optimization/17587
4141         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
4142         (insert_aux): Instead of here.
4143
4144 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
4145
4146         PR tree-optimization/16721
4147         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
4148         * tree-ssa-alias.c (create_memory_tag): Move setting of
4149         TREE_THIS_VOLATILE ...
4150         (get_tmt_for): ... here.
4151
4152 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4153
4154         * config/sparc/sparc.md (cmove splitter): Fix formatting.
4155         (conditional_trap expander): Reject inappropriate CCmodes.
4156         (conditional trap insn): Use V9 syntax if possible.
4157
4158 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
4159
4160         PR c/16566
4161         * c-typeck.c (build_component_ref): Don't special-case
4162         COMPOUND_EXPR.
4163
4164 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
4165
4166         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
4167         returns NULL.
4168
4169 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
4170
4171         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
4172         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
4173         TRUTH_XOR_EXPR): Mention the restriction on types.
4174
4175 2004-09-22  Matt Austern  <austern@apple.com>
4176
4177         * config/darwin.c (darwin_make_decl_one_only):
4178         Allow coalesced symbol to appear in static archive's table of contents
4179
4180 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
4181
4182         PR tree-optimization/17512
4183         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
4184         special cases.
4185
4186 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
4187
4188         * dbxout.c (get_lang_number): Do not define if
4189         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
4190
4191 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
4192
4193         PR target/15583
4194         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
4195         builtin_define ("__USE_INIT_FINI__").
4196
4197 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
4198
4199         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
4200         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
4201         * config/s390/s390.h (TARGET_TPF): New macro.
4202         * config/s390/s390.md ("eh_return"): New expander.
4203         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
4204         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
4205         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
4206         * config/s390/tpf.h (TARGET_TPF): Define to 1.
4207         (STACK_POINTER_OFFSET): Increase to 448.
4208         (TARGET_DEFAULT): Set -mtpf-trace on as default.
4209         (TPF_LOC_DIFF_OFFSET): New macro.
4210         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
4211         encoding.
4212         (__isPATrange): Add prototype.
4213         (MD_FALLBACK_FRAME_STATE_FOR): Define.
4214         * config/s390/tpf-eh.c: New file.
4215
4216 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
4217
4218         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
4219         operands in an integer comparison.
4220         * tree-cfg.c (find_taken_edge): Call fold() to determine
4221         whether the predicate is known.
4222
4223 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4224
4225         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
4226         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
4227         Create build and doc directories along with the language directories.
4228         Don't create doc directory separately.
4229         * configure: Regenerate.
4230         * Makefile.in: Create all object and executables files built
4231         with the build compiler in a build/ directory.
4232         (genobjnames): Add missing build objects.
4233         (STAGESTUFF): Don't stage the gen* programs.
4234         (ggc-none.o): Define dependencies for the target compiler.
4235         (build-print-rtl.o): Rename to build/print-rtl.o.
4236         (build-errors.o): Rename to build/errors.o.
4237         (build-varray.o): Rename to build/varray.o.
4238         (maintainerclean): Delete the contents of the build directory.
4239         ($(genobjs): %.o): Explicitly use -o.
4240         (build/insn-conditions.o): Delete specfic rule to use generic rule.
4241         (build/gengtype-lex.o): Likewise.
4242         (build/gengtype-yacc.o): Likewise.
4243         (build/gcov-iov.o): Likewise.
4244
4245 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4246
4247         * vec.h (VEC_space): Return true if there _is_ space.
4248         (VEC_reserve): Adjust.
4249
4250 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
4251
4252         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
4253         use FPRs for scalar, complex and vector types only.
4254
4255 2004-09-21 Jeff Law  <law@redhat.com>
4256
4257         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
4258         the opt_stats_d structure.
4259         (vrp_data): Change from a varray into a hash table.
4260         (vrp_hash_elt): New structure for elements in the vrp hash table.
4261         (vrp_hash, vrp_eq):New functions for hashing and testing equality
4262         in the vrp hash table.
4263         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
4264         initialization slightly to make it easier to read.  No longer need
4265         to grow/clear the varray.  Instead empty and delete the hash table.
4266         (dom_opt_finalize_block): Update due to change of VRP_DATA from
4267         a varray to a hash table.
4268         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
4269
4270         * tree-ssa-ccp.c (get_default_value): If we have a constant
4271         value recorded for an SSA_NAME, then use that constant as
4272         the initial lattice value.
4273         (substitute_and_fold): Transfer equivalences discovered into
4274         SSA_NAME_EQUIV.
4275
4276         * tree.h (SSA_NAME_EQUIV): Add comments.
4277         (SET_SSA_NAME_EQUIV): Similarly.
4278
4279 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
4280
4281         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
4282
4283         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
4284
4285 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
4286
4287         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
4288         (finish_decl): Likewise.
4289
4290 2004-09-21  Devang Patel  <dpatel@apple.com>
4291
4292         * tree.def (VEC_COND_EXPR): New tree node.
4293         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
4294
4295 2004-09-21  Stan Shebs  <shebs@apple.com>
4296
4297         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
4298         * config/rs6000/darwin-world.asm: Likewise.
4299
4300 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
4301
4302         * tree-ssa.c (verify_def): Use print_generic_stmt,
4303         not debug_generic_stmt.
4304         (verify_use): Ditto.
4305         (verify_phi_args): Ditto.
4306         (verify_ssa): Ditto.
4307
4308 2004-09-21  Paul Brook  <paul@codesourcery.com>
4309
4310         * varasm.c (default_assemble_integer): Return false for values wider
4311         than the target word size.  Works around GAS bug.
4312
4313 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
4314
4315         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
4316         gets value 0.
4317         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
4318         if it has value 0.
4319
4320 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
4321
4322         * c-typeck.c (build_function_call): Give name of object
4323         we are attempting to call in error message.
4324         * c-objc-common.c (c_tree_printer): Call pp_expression,
4325         not return false, for 'E' case.
4326
4327 2004-09-21  Steven Bosscher  <stevenb@suse.de>
4328
4329         PR rtl-optimization/17482
4330         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
4331         load_killed_in_block_p): Clarify comments.
4332         (record_last_reg_set_info): Make static inline.
4333         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
4334         (record_opr_changes): New function to replace the above.
4335         (compute_hash_table): Clarify comments.  Use record_opr_changes.
4336         (reg_set_between_after_reload_p): Clean up.
4337         (reg_used_between_after_reload_p): Likewise.
4338         (eliminate_partially_redundant_load): Clarify comments.
4339
4340 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4341
4342         PR rtl-optimization/17266
4343         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
4344
4345 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
4346
4347         PR rtl-optimization/14851
4348         * rtlanal.c (commutative_operand_precedence): Calculate
4349         precedence of stripped constant.
4350
4351 2004-09-20 Jeff Law  <law@redhat.com>
4352            Jan Hubicka  <jh@suse.cz>
4353
4354         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
4355         initialize key elements here.
4356         (release_ssa_name): Zero the released SSA_NAME here.
4357         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
4358         (struct tree_ssa_name): Add new "equiv" field.
4359         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
4360         (tree_ssa_dominator_optimize): No longer allocate, resize or
4361         clear CONST_AND_COPIES.
4362         (get_value_for, set_value_for): Kill.
4363         (thread_across_edge): Get/set the equivalency using
4364         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
4365         (restore_vars_to_original_value): Likewise.
4366         (record_equivalences_from_phis): Likewise.
4367         (record_dominating_conditions): Likewise.
4368         (record_const_or_copy, record_equality): Likewise.
4369         (lookup_avail_expr): Likewise.
4370         (record_equivalences_from_stmt, cprop_operand): Likewise.
4371         (cprop_into_successor_phis): No longer need to pass around
4372         CONST_AND_COPIES.  Callers updated. Get equivalences via
4373         SSA_NAME_EQUIV.
4374         (cprop_into_phis): Likewise.
4375
4376 2004-09-20  Matt Austern <austern@apple.com>
4377             Zack Weinberg  <zack@codesourcery.com>
4378
4379         * c-common.c (fix_string_type): Build the unqualified array
4380         type unconditionally, then use c_build_qualified_type to get
4381         the proper const-qualified variant, and set its
4382         TYPE_MAIN_VARIANT to refer to the unqualified type.
4383         * c-lex.c (c_lex_return_raw_string): New global.
4384         (c_lex_with_flags): Honor it.
4385         * c-pragma.h: Declare it.
4386
4387 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4388
4389         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
4390
4391 2004-09-21  Jan Hubicka  <jh@suse.cz>
4392
4393         PR middle-end/17126
4394         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
4395         (tree_rest_of_compilation): Cleanup.
4396
4397 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
4398
4399         * config/s390/s390.c (s390_select_rtx_section): Remove.
4400         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
4401
4402 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4403
4404         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
4405         note to pretend a direct save from the original register when an
4406         intermediate register is used for the save.
4407
4408 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4409
4410         * tsystem.h (alloca): Provide a default definition.
4411
4412         Revert:
4413         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4414             * unwind-dw2.c: Call __builtin_alloca, not alloca.
4415
4416 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
4417
4418         PR tree-opt/17558
4419         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
4420         aliasing sets are the same rather than just conflicting.
4421
4422 2004-09-20  Jan Hubicka  <jh@suse.cz>
4423
4424         PR middle-end/16460
4425
4426         * cgraph.c (cgraph_unnest_node): New function.
4427         (c_finalize): Rename to ....
4428         (c_warn_unused_result_recursivly): ... this one; do only the warning
4429         (finish_function): Finalize the toplevel function; do not lower nested tree.
4430         * cgraph.h (cgraph_unnest_node): Declare.
4431         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
4432         nestedness datastructure.
4433         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
4434         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
4435         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
4436
4437 2004-09-20  Richard Henderson  <rth@redhat.com>
4438
4439         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
4440         from some_small_symbolic_operand_1; export.
4441         (some_small_symbolic_operand): Remove.
4442         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
4443         extra C check.
4444         * config/alpha/predicates.md (some_small_symbolic_operand): New.
4445
4446 2004-09-20  Jan Hubicka  <jh@suse.cz>
4447
4448         * predict.c (return_prediction): New function.
4449         (apply_return_prediction): Likewise.
4450         (tree_bb_level_predictions): Likewise.
4451         (tree_estimate_probability): Add noreturn exit edges; call
4452         bb_level_predictions; fix logic of return heuristics.
4453         (predict_paths_leading_to):  Rescuesce from old CVS version of
4454         process_note_prediction function.
4455         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
4456
4457 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
4458
4459         * config/s390/s390.c (s390_frame_info): Added alignment statement for
4460         floating point register area on stack.
4461
4462 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
4463
4464         * predict.c (expr_expected_value): Use *_CLASS_P macros.
4465
4466 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4467
4468         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
4469         generating useless garbage.
4470
4471 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
4472
4473         * builtins.c (fold_builtin): Call the new omonymous
4474         target hook for machine-dependent built-ins.
4475         * target-def.h (TARGET_FOLD_BUILTIN): New.
4476         * target.h (struct gcc_target): Add the fold_builtin hook.
4477         * targhooks.c (default_fold_builtin): New.
4478         * targhooks.h (default_fold_builtin): Declare it.
4479
4480 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
4481
4482         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
4483         comment typos.
4484
4485 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
4486
4487         PR target/17565
4488         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
4489
4490 2004-09-20  Jan Hubicka  <jh@suse.cz>
4491
4492         * predict.c (estimate_probability): Remove unnecesary code.
4493
4494 2004-09-19  Ira Rosen  <irar@il.ibm.com>
4495
4496         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
4497         (STMT_VINFO_VECT_DR_BASE): Declare.
4498         (VECT_SMODULO): Declare.
4499         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
4500         (vect_compute_array_base_alignment): New function.
4501         (vect_analyze_data_ref_access): Check array indices. Remove one
4502         dimensional arrays restriction.
4503         (vect_get_ptr_offset): New function.
4504         (vect_get_symbl_and_dr): New function.
4505         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
4506         (former name vect_get_base_decl_and_bit_offset).
4507         (vect_create_index_for_array_ref): Removed.
4508         (vect_create_index_for_vector_ref): New function.
4509         (vect_create_addr_base_for_vector_ref): New function.
4510         (vect_create_data_ref): Handle additional data refs. Call
4511         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
4512         (vect_compute_data_ref_alignment): Support the changes. Call
4513         vect_get_base_and_bit_offset.
4514         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
4515         data refs. Store vect_dr_base.
4516         (vect_analyze_data_ref_accesses): Support nonconstant init.
4517         (new_stmt_vec_info): Initialize vect_dr_base field.
4518         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4519         (get_vectype_for_scalar_type): Check for BLKmode.
4520         * tree-chrec.h (initial_condition_in_loop_num): Declare.
4521         * tree-chrec.c (initial_condition_in_loop_num): New function.
4522         (chrec_component_in_loop_num): New function.
4523         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
4524         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
4525         to be pointer to varray_type.
4526
4527 2004-09-19  Jan Hubicka  <jh@suse.cz>
4528
4529         * basic-block.h (update_bb_profile_after_threading): Declare.
4530         * cfg.c (update_bb_profile_after_threading): Break out from ...
4531         * cfgcleanup.c (try_forward_edges): ... here; use it.
4532         * tree-ssa-dom.c (thread_across_edge): Use it.
4533         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
4534         profile of the new BB.
4535
4536 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
4537
4538         * tree-ssa-pre.c (insert_into_set): Don't put
4539         is_gimple_min_invariant values into the set.
4540
4541 2004-09-19  Andreas Jaeger  <aj@suse.de>
4542
4543         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
4544         prototype.
4545
4546 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4547
4548         * config/cris/cris.h: Preserve the original spelling in a
4549         quote.
4550
4551 2004-09-18 Jeff Law  <law@redhat.com>
4552
4553         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
4554         global varrays to replace the block local varrays.
4555         (struct dom_walk_block_data): Remove, no longer used.
4556         (get_eq_expr_value): No longer need to pass around pointers to local
4557         varrays.  Callers updated.  Unused markers added to unused parameters.
4558         (record_range, record_equivalences_from_stmt): Likewise.
4559         (record_equivalences_from_incoming_edge): Likewise.
4560         (record_var_is_nonzero): Likewise.  Update now that we have a
4561         single global varray of SSA_NAMEs that need restoring.
4562         (dom_opt_initialize_block_local_data): Kill, no longer used.
4563         (tree_ssa_dominator_optimize): Initialize new global varrays.
4564         Update callbacks in dominator walker structure.
4565         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
4566         VRP_VARIABLES_STACK.
4567         (restore_nonzero_vars_to_original_value): Update now that we have
4568         a single global varray of SSA_NAMEs that need restoring.
4569         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
4570         Remove unused variables.
4571         (optimize_stmt): Remove unused variable.
4572
4573 2004-09-18  Jan Hubicka  <jh@suse.cz>
4574
4575         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
4576
4577         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
4578         verify_cgraph call.
4579
4580 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4581
4582         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
4583         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
4584         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
4585         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
4586         tree-ssa-operands.c, tree-ssa-phiopt.c,
4587         tree-ssa-threadupdate.c: Fix comment typos.
4588
4589 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4590
4591         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
4592         config/arm/README-interworking, config/arm/arm-cores.def,
4593         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
4594         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
4595         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
4596         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
4597         config/frv/frv.md, config/i386/winnt.c,
4598         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
4599         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
4600         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
4601         config/mcore/mcore.c, config/mips/mips.h,
4602         config/mn10300/mn10300.md, config/pa/pa.c,
4603         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
4604         config/rs6000/rs6000.c, config/sh/symbian.c,
4605         config/sparc/sparc.h: Fix comment typos.  Follow spelling
4606         conventions.
4607
4608 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
4609
4610         PR c/17424
4611         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
4612
4613 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
4614
4615         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
4616         remove TREE_ADDRESSABLE from RESULT_DECL.
4617
4618 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
4619
4620         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
4621
4622 2004-09-18  Jan Hubicka  <jh@suse.cz>
4623
4624         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
4625         NULL.
4626         * tree-ssa-alias.c (init_alias_info): Likewise.
4627         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
4628         (verify_ssa): Likewise.
4629         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
4630
4631 2004-09-18  Jan Hubicka  <jh@suse.cz>
4632
4633         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
4634         huge offset.
4635
4636 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4637
4638         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
4639         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
4640         DW_EH_PE_sdata* for data.
4641         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
4642
4643 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
4644
4645         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
4646         shared anyway.
4647
4648         PR pch/13361
4649         * c-typeck.c (constructor_asmspec): Delete.
4650         (struct initializer_stack): Delete field 'asmspec'.
4651         (start_init): Delete saving of asmspec.
4652         (finish_init): Don't update constructor_asmspec.
4653         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
4654         * stmt.c (expand_asm): Duplicate strings from tree.
4655         (expand_asm_operands): Likewise.
4656         * tree.c (tree_size): Update computation of size of STRING_CST.
4657         (make_node): Don't make STRING_CST nodes.
4658         (build_string): Allocate string with tree node.
4659         (tree_code_size): Clean up assertions, don't allow requests
4660         for "the size of a STRING_CST".
4661         * tree.def (STRING_CST): Update comment.
4662         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
4663         (tree_string): Place contents of string in tree node.
4664         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
4665         from tree.
4666
4667 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
4668
4669         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
4670         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
4671
4672 2004-09-17  Jones Desougi  <jones@ingate.com>
4673
4674         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
4675         * configure, config.in: Regenerate.
4676
4677 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
4678
4679         * tree.c, tree.h (tree_class_strings): Make array const.
4680         Reindent per coding convention.  Move asterisk to proper place
4681         per coding convention.
4682
4683 2004-09-18  Andreas Schwab  <schwab@suse.de>
4684
4685         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
4686         (tree-vectorizer.o): Likewise.
4687         (targhooks.o): Likewise.
4688
4689 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
4690             Zack Weinberg  <zack@codesourcery.com>
4691
4692         * alias.c (find_base_decl): Remove unreachable case '3' block.
4693         * expr.c (safe_from_p): Abort if passed a type.
4694         * tree-gimple.c (recalculate_side_effects): Abort if passed
4695         anything other than an expression.
4696         * tree-ssa-pre.c (phi_translate): Return expr immediately if
4697         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
4698         Abort on un-handled tree classes.
4699         (valid_in_set): Likewise.
4700         * tree.c (tree_code_class_strings): New static data.
4701
4702         * tree.h (enum tree_code_class): New.
4703         (tree_code_class_strings): Declare.
4704         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
4705         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
4706         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
4707         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
4708         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
4709
4710         * tree.def, c-common.def, objc/objc-tree.def: Use
4711         tree_code_class enumeration constants instead of code letters.
4712
4713         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
4714         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
4715         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
4716         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
4717         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
4718         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
4719         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
4720         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
4721         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
4722         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
4723         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
4724         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
4725         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
4726         Update to match.
4727
4728         * LANGUAGES: Add note about change.
4729
4730 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
4731
4732         PR tree-optimization/17319
4733         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
4734         examine pointers on the LHS of an assignment.
4735         (collect_points_to_info_r): Handle RETURN_EXPR.
4736
4737 2004-09-17 Jeff Law  <law@redhat.com>
4738
4739         * tree-ssa-dom.c (const_and_copies_stack): New.
4740         (dom_walk_block_data): Remove const_and_copies field.
4741         (record_const_or_copy): No longer need to pass in varray_type *.
4742         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
4743         Callers updated.
4744         (record_equality): Similarly.
4745         (restore_vars_to_original_value): Similarly.  Revamp to use new
4746         single global stack rather than per-block stacks.
4747         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
4748         (thread_across_edge): Remove now unused parameters.
4749         (dom_opt_initialize_block_local_data): No longer test the block
4750         local CONST_AND_COPIES.
4751         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
4752
4753 2004-09-17  Jan Hubicka  <jh@suse.cz>
4754
4755         PR tree-optimization/17509
4756         * tree-optimize.c (update_inlined_to_pointers): New function.
4757         (tree_rest_of_compilation): Use it.
4758
4759 2004-09-17  Devang Patel  <dpatel@apple.com>
4760
4761         * dbxout.c (get_lang_number): New.
4762         (dbxout_init): Include lang number in N_SO  stab.
4763         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
4764         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
4765
4766 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
4767
4768         PR tree-optimization/17273
4769         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
4770         replacement is a constant.
4771
4772 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
4773
4774         * c-tree.h (enum c_typespec_keyword): New.
4775         (struct c_declspecs): Adjust description of "type".  Remove
4776         specbits, explicit_int_p and explicit_char_p.  Rename
4777         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
4778         short_p, signed_p, unsigned_p and complex_p.
4779         (finish_declspecs): New.
4780         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
4781         typename): Call finish_declspecs.
4782         * c-decl.c (finish_declspecs): New.
4783         (declspecs_add_type): Check for combinations which cannot occur in
4784         valid specifier lists.  Update comments.
4785         (shadow_tag_warned): Remove checks done in finish_declspecs.
4786         Don't report useless type name if type defaulted to int.
4787         (grokdeclarator): Remove checks and actions done in
4788         finish_declspecs.  Don't allow for type being NULL.  Update for
4789         datastructures changes.  Initialize decl_attr.
4790         (build_null_declspecs, quals_from_declspecs): Update for
4791         datastructures changes.
4792
4793 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
4794
4795         * doc/extend.texi: Fix duplicated word.
4796
4797 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
4798
4799         * doc/invoke.texi: Remove stray explanation on
4800         -freduce-all-givs and -fmove-all-movables.
4801
4802 2004-09-17  James Morrison  <phython@gcc.gnu.org>
4803
4804         * doc/cfg.texi: Use @smallexample.
4805         * doc/md.texi: Likewise.
4806         * doc/tree-ssa.texi: Likewise.
4807         * doc/extend.texi: Likewise.  Use @r{} in comments.
4808         * doc/trouble.texi: Use @r{} in comments.
4809
4810 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
4811
4812         * configure.ac (gcc_cv_gld_version): Handle whitespace before
4813         "VERSION=".
4814         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
4815         * configure: Regenerate.
4816
4817 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
4818
4819         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
4820         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
4821         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
4822         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
4823         slashes in substitutions.
4824         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
4825
4826 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
4827
4828         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
4829         gimplify.c, lambda-code.c, optabs.c, predict.c,
4830         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
4831         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
4832         conventions.
4833
4834 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
4835
4836         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
4837         doc/extend.texi, doc/install.texi, doc/invoke.texi,
4838         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
4839         doc/trouble.texi: Use @option around options.
4840
4841 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
4842
4843         * Makefile.in (gen-protos.o): Depend on errors.h.
4844
4845 2004-09-17  Steven Bosscher  <stevenb@suse.de>
4846
4847         PR tree-optimization/17513
4848         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
4849         for successors of the entry block.
4850
4851 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
4852
4853         PR rtl-optimization/15187
4854         * ifcvt.c (noce_try_cmove_arith): Exit early if total
4855         insn_rtx_cost of both branches > BRANCH_COST
4856
4857 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
4858
4859         PR tree-optimization/17528
4860         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
4861         erase the may-alias set for a tag when merging it with
4862         another.
4863
4864 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4865
4866         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
4867         for 32-bit TARGET_SHMEDIA.
4868         (call_value): Likewise.
4869
4870 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
4871
4872         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
4873         test apply only to TREE_STATIC and DECL_EXTERNAL.
4874
4875 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4876
4877         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
4878         * basic-block.h (get_dominated_by_region): Declare.
4879         * dominance.c (get_dominated_by_region): New function.
4880         * tree-cfg.c: Include cfglayout.h.
4881         (tree_duplicate_bb): Duplicate also phi nodes.
4882         (struct ssa_name_map_entry): New type.
4883         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
4884         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
4885         allocate_ssa_names, rewrite_to_new_ssa_names_def,
4886         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
4887         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
4888         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
4889         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
4890         rewrite_to_new_ssa_names, allocate_ssa_names,
4891         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
4892         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
4893         (copy_loop_headers): Use tree_duplicate_sese_region.
4894
4895 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
4896
4897         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
4898
4899 2004-09-16 Jeff Law  <law@redhat.com>
4900
4901         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
4902         (rewrite_block_data): Remove, no longer used.
4903         (rewrite_initialize_block_local_data): Remove, no longer used.
4904         (rewrite_initialize_block): Mark parameters as unused as needed.
4905         Change references to the block local block_defs to be block_defs_stack.
4906         Push a marker onto the block_defs_stack.
4907         (ssa_rewrite_initialize_block): Similarly.
4908         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
4909         (ssa_register_new_def): No longer needs varray argument.  Use
4910         block_defs_stack instead.  No longer handle possibly null block_defs
4911         varray.  Reverse order of items we push on the stack to make it
4912         easier to identify our marker.
4913         (register_new_def): No longer handle possibly null block_defs
4914         varray.
4915         (rewrite_finalize_block): Revamp to look for markers in the global
4916         block_defs_stack varray rather than wiping a block local varray.
4917         Mark arguments as unused as needed.
4918         (ssa_rewrite_finalize_block): Similarly.
4919         (rewrite_into_ssa): Update initialization of dom walker structure
4920         to reflect that we don't need block local data anymore.  Initialize
4921         the block_defs_stack varray.
4922         (rewrite_ssa_into_ssa): Similarly.
4923         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
4924         (struct dom_walk_data): Kill block_defs field.
4925         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
4926         (thread_across_edge): Use the global block_defs_stack instead of
4927         the old block_defs varray.
4928         (dom_opt_initialize_block_local_data): Update now that we don't have
4929         block_defs field to check anymore.
4930         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
4931         (restore_currdefs_to_original_value): Use the new block_defs_stack
4932         instead of a block local varray.
4933         (dom_opt_finalize_block): Similarly.
4934         (record_equivalencs_from_phis): Similarly.
4935         (optimize_stmt, register_definitions_for_stmt): Similarly.
4936
4937 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
4938
4939         PR tree-optimization/17517
4940         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
4941         coalesce same-root variables without checking for abnormal PHI usage.
4942
4943 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
4944
4945         * cfgloop.h (duplicate_loop):  Add prototype.
4946         * cfgloopmanip.c (duplicate_loop): Make non-static.
4947         * lambda-code.c (perfect_nestify): Factor out test whether
4948         we can handle this loop into separate function.
4949         Call it.
4950         (can_convert_to_perfect_nest): New function.
4951         (replace_uses_of_x_with_y): Add modify_stmt call.
4952         * tree-loop-linear.c (linear_transform_loops): Call
4953         rewrite_into_loop_closed_ssa and free_df.
4954
4955 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
4956
4957         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
4958         loop invariant as well.
4959         (perfect_nestify): new function.
4960         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
4961         upper bounds, and steps.
4962         Set outerinductionvar properly.
4963         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
4964         parameters.
4965         Return NULL if we need a perfect loop and can't make one.
4966         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
4967         (not_interesting_stmt): New function.
4968         (phi_loop_edge_uses_def): Ditto.
4969         (stmt_uses_phi_result): Ditto.
4970         (stmt_is_bumper_for_loop): Ditto.
4971         (perfect_nest_p): Ditto.
4972         (nestify_update_pending_stmts): Ditto.
4973         (replace_uses_of_x_with_y): Ditto.
4974         (stmt_uses_op): Ditto.
4975         (perfect_nestify): Ditto.
4976         * lambda-mat.c (lambda_matrix_id_p): New function.
4977         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
4978         * lambda.h: Update prototypes.
4979         * tree-loop-linear (linear_transform_loop): Use new
4980         perfect_nest_p. Detect and ignore identity transform.
4981         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
4982
4983 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
4984
4985         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
4986         Gather also strides of accessed data.  Pass in the data references
4987         array.
4988         (try_interchange_loops): Add a new heuristic for handling the temporal
4989         locality.  Pass in the data references array.
4990         (linear_transform_loops): Pass the data references array to
4991         try_interchange_loops.
4992
4993 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
4994
4995         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
4996
4997 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
4998
4999         * doc/c-tree.texi (Classes): Remove index entries for
5000         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
5001
5002 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5003
5004         * fold-const.c (fold): Fold difference of addresses.
5005         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
5006         get_inner_reference.
5007         * tree-ssa-loop-ivopts.c (peel_address): Removed.
5008         (ptr_difference_const): Moved to fold-const.c.
5009         (split_address_cost): Use get_inner_reference instead of peel_address.
5010         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
5011         * tree.h (ptr_difference_const): Export.
5012
5013         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
5014         variable type to the dump.  Fix indentation.
5015         (idx_find_step): Handle nonconstant array_ref_element_size and
5016         array_ref_low_bound.
5017         (idx_record_use): Handle array_ref_element_size and
5018         array_ref_low_bound.
5019         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
5020         statements correctly.
5021         (get_computation_at, iv_value): Do not unshare expressions here.
5022         (rewrite_use_outer): Unshare the expression before it is emitted
5023         to code.
5024         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
5025         Moved to tree.c.
5026         * tree.c (unsigned_type_for, signed_type_for): Moved from
5027         tree-ssa-loop-niter.c.  Use langhooks.
5028         * tree.h (signed_type_for): Export.
5029
5030 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
5031
5032         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
5033         prototype.
5034
5035 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
5036
5037         PR target/11572
5038         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
5039         Add two parameters to extra_includes.
5040         (C_INCPATH_INIT): Remove.
5041         * c-incpath.c (register_include_chains): Call extra_pre_includes
5042         before adding the standard include directory.
5043         Update call to extra_includes.
5044         (!defined TARGET_EXTRA_INCLUDES): Update
5045         hook_void_charptr_charptr_int and add !define
5046         TARGET_EXTRA_PRE_INCLUDES.
5047         (!define TARGET_EXTRA_INCLUDES): Define as
5048         hook_void_charptr_charptr_int.
5049         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
5050         (target_c_incpath): Always declare.
5051         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
5052         empty function.
5053         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
5054         * config/darwin.h: (darwin_register_frameworks): Update for
5055         the two new parameters.
5056         (darwin_register_objc_includes): Add prototype.
5057         (TARGET_EXTRA_PRE_INCLUDES): Define.
5058         * config/darwin-c.c (darwin_register_objc_includes): New function.
5059         (darwin_register_frameworks): Update for the two new parameters.
5060         (target_c_incpath): Remove.
5061         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
5062         the compile line.
5063         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
5064         parameters.
5065         (TARGET_EXTRA_PRE_INCLUDES): Document.
5066
5067         * gcc.c (spec_function): Add replace-outfile.
5068         (replace_outfile_spec_function): New function.
5069         * config/darwin.h (LINK_SPEC): Add replace
5070         -lobjc with -lobjc-gnu if -fgnu-runtime is
5071         supplied.
5072         * invoke.texi (replace-outfile): Document.
5073
5074 2004-09-13  Jan Hubicka  <jh@suse.cz>
5075
5076         * predict.c (expr_expected_value, strip_builtin_expect): New function.
5077         (tree_predict_by_opcode): Use it.
5078         (tree_estimate_probability): Add, for now disabled,
5079         strip_builtin_expect call.
5080
5081 2004-09-15  James E Wilson  <wilson@specifixinc.com>
5082
5083         PR target/17455
5084         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
5085         if current_function_decl is a sibcall.
5086
5087 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
5088
5089         * varasm.c (default_function_rdodata_section): Make sure to pass
5090         along a decl for a link-once section.
5091
5092 2004-09-15  Richard Henderson  <rth@redhat.com>
5093
5094         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
5095         warning with code disable.  Fix formatting.
5096
5097 2004-09-15  Steven Bosscher  <stevenb@suse.de>
5098
5099         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
5100         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
5101         after propagating into an ADDR_EXPR.
5102
5103 2004-09-15  Andrew Pinski  <apinski@apple.com>
5104
5105         PR rtl-opt/17427
5106         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
5107         Move it out of gcc_assert.
5108
5109 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5110
5111         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
5112         except.c, fold-const.c, function.c, langhooks.c, params.c,
5113         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
5114         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
5115         for quoting in diagnostics going through pretty-print.c.  Use ''
5116         for quoting in other diagnostic text.
5117         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
5118         translation.
5119         * Makefile.in (langhooks.o): Update dependencies.
5120         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
5121         formats.
5122
5123 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
5124
5125         * configure.ac: Check for COMDAT support.  Robustify check for
5126         SHF_MERGE support.
5127         * configure: Regenerated.
5128         * config.in: Likewise.
5129         * langhooks-def.h (lhd_comdat_group): New function.
5130         (LANG_HOOKS_COMDAT_GROUP): New macro.
5131         (LANG_HOOKS_DECLS): Use it.
5132         * langhooks.c (lhd_comdat_group): Define.
5133         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
5134         * output.h (named_section_flags): Make it a macro.
5135         (named_section_real): New function.
5136         (default_no_named_section): Add decl parameter.
5137         (default_elf_asm_named_section): Likewise.
5138         (default_coff_asm_named_section): Likewise.
5139         (default_pe_asm_named_section): Likewise.
5140         * target.h (gcc_target): Adjust type of named_section.
5141         * varasm.c (named_section_flags): Rename to named_section_real.
5142         Add decl parameter.
5143         (default_no_named_section): Add decl parameter.
5144         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
5145         with the case that ASM_COMMENT_START is "@".
5146         (default_coff_asm_named_section): Add decl parameter.
5147         (default_pe_asm_named_section): Likewise.
5148         * config/alpha/alpha.c (vms_asm_named_section): Add decl
5149         parameter.
5150         (unicosmk_asm_named_section): Likewise.
5151         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
5152         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
5153         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
5154         * config/cris/cris-protos.h (cris_target_asm_named_section):
5155         Likewise.
5156         * config/cris/cris.c (cris_target_asm_named_section):
5157         Likewise.
5158         * config/darwin/darwin-protos.h (darwin_asm_named_section):
5159         Likewise.
5160         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
5161         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
5162         * config/i386/i386-protos.h (i386_pe_asm_named_section):
5163         Likewise.
5164         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
5165         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
5166         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
5167         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
5168         Likewise.
5169         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
5170         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
5171         * cp/cp-tree.h (cxx_comdat_group): Declare.
5172         * cp/decl.c (cxx_comdat_group): New function.
5173
5174 2004-09-15  Jan Hubicka  <jh@suse.cz>
5175
5176         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
5177         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
5178
5179         * tree-cfg.c (remove_bb): Release SSA defs.
5180
5181 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
5182
5183         * doc/tm.texi: Follow spelling conventions.
5184
5185 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
5186
5187         * tree-ssa-dom.c: Fix comment typos.
5188
5189 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
5190
5191         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
5192         include ccr.
5193         (ppc_fallback_frame_state): Save location of CR.
5194
5195 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
5196
5197         * expr.c (string_constant): Handle also read-only variables
5198         initialized to string literals.
5199
5200         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
5201         into memcpy (x, y, 1) if memcpy can be expanded inline.
5202
5203 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5204
5205         PR tree-optimization/17468
5206         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
5207         definition inside a block precede uses.
5208         * tree-tailcall.c (adjust_return_value): Emit statements in the
5209         correct order.
5210
5211 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
5212
5213         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
5214
5215 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
5216
5217         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
5218
5219 2004-09-14 Jeff Law  <law@redhat.com>
5220
5221         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
5222         (struct dom_walk_block_data): Remove avail_exprs member.
5223         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
5224         (lookup_avail_expr): No longer need to pass in address of
5225         the block local available exprs stack.  All callers changed.
5226         (simplify_cond_and_lookup_avail_expr): Similarly.
5227         (simplify_switch_and_lookup_avail_expr): Similarly.
5228         (get_eq_expr_value, record_cond): Likewise.
5229         (record_dominating_conditions): Likewise.
5230         (update_rhs_and_lookup_avail_expr): Likewise.
5231         (record_equivalences_from_stmt): Likewise.
5232         (dom_opt_initialize_block_local_data): No longer test state of
5233         block local avail_exprs.
5234         (dom_opt_initialize_block): Mark unwind point in the global
5235         avail_expr stack.
5236         (remove_expressions_from_table): Update to unwind to the
5237         most recent unwind marker in the global avail_expr stack.
5238         All callers changed.
5239         (dom_opt_finalize_block): Mark unwind point in the global
5240         avail_expr stack as needed.
5241         (record_cond): Push elements into the global avail_exprs stack.
5242
5243         * tree-dfa.c (free_df_for_stmt): No longer static.
5244         (free_df): Update comments.
5245         * tree-flow.h (free_df_for_stmt): Prototype.
5246         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
5247         call release_defs.
5248
5249 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
5250
5251         PR tree-optimization/17252
5252         * tree-ssa-alias.c (may_alias_p): Don't assume that a
5253         pointer may not point to itself when using relaxed
5254         aliasing rules.
5255
5256 2004-09-14  Richard Henderson  <rth@redhat.com>
5257
5258         PR middle-end/17397
5259         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
5260         while folding <ADDR_EXPR <INDIRECT_REF X>>.
5261
5262 2004-09-14  Andrew Pinski  <apinski@apple.com>
5263
5264         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
5265         sets of the pointers but the aliasing sets of what they point to.
5266
5267 2004-09-14  Roger Sayle  <roger@eyesopen.com>
5268
5269         PR rtl-optimization/9771
5270         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
5271         conditional compilation in init_reg_sets_1.
5272         (init_reg_sets_1): Let global_regs[i] take priority over the frame
5273         (but not stack) pointer exceptions to regs_invalidated_by_call.
5274         (globalize_reg): Globalizing a fixed register may need to update
5275         regs_invalidated_by_call.
5276
5277 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
5278
5279         PR tree-optimization/15262
5280         * tree-dfa.c (dump_variable): Also print the type of the
5281         variable.
5282         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
5283         memory tags are of conflicting alias sets but have no aliased
5284         symbols in common, add one tag to the alias set of the other.
5285         (setup_pointers_and_addressables): Remove hack to deal with
5286         programs with no aliased symbols.
5287         (may_alias_p): Don't special case aggregate types.
5288
5289 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5290
5291         PR c/15498
5292         * doc/invoke.texi (Environment Variables): Correct example locale.
5293
5294 2004-09-14  Jan Hubicka  <jh@suse.cz>
5295
5296         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
5297
5298 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
5299
5300         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
5301
5302 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5303
5304         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
5305         restrict_p.
5306         (struct c_declarator): Change u.array.quals and pointer_quals to
5307         int.  Add u.array.attrs.
5308         (quals_from_declspecs): New.
5309         * c-decl.c (quals_from_declspecs): New.
5310         (shadow_tag_warned): Give more specific message for useless type
5311         qualifiers.
5312         (build_array_declarator, set_array_declarator_inner,
5313         grokdeclarator, make_pointer_declarator, build_null_declspecs,
5314         declspecs_add_qual): Update for changed structures.
5315
5316 2004-09-14  Jeff Law  <law@redhat.com>
5317
5318         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
5319         to a global varray.
5320         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
5321         (dom_opt_initialize_block_local_data): No longer test state
5322         of stmts_to_rescan.
5323         (dom_opt_finalize_block): Update due to change in scope of
5324         stmts_to_rescan.
5325         (optimize_stmt): Similarly.
5326
5327 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5328
5329         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
5330         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
5331         comment typos.  Follow spelling conventions.
5332
5333 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5334
5335         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
5336         config/i386/predicates.md, config/sparc/sparc.c: Follow
5337         spelling conventions.
5338
5339 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5340             Steven Bosscher  <stevenb@suse.de>
5341
5342         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
5343         * basic-block.h (struct reorder_block_def): Add copy_number field.
5344         * cfgloop.h (biv_p): Declare.
5345         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
5346         * common.opt (fsplit-ivs-in-unroller): New flag.
5347         * loop-iv.c (biv_p): New function.
5348         * loop-unroll.c: Include hashtab.h and recog.h.
5349         (struct iv_to_split, struct split_ivs_info): New types.
5350         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
5351         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
5352         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
5353         insert_base_initialization, split_iv): New functions.
5354         (peel_loop_completely, unroll_loop_constant_iterations,
5355         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
5356         Use them.
5357         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
5358
5359 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5360
5361         * tree-cfg.c (thread_jumps): Update dominators correctly in
5362         case destination of threaded edge dominates its source.
5363
5364 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5365
5366         * unroll.c: Removed.
5367         * loop.h: Removed.
5368         * Makefile.in (LOOP_H, unroll.o): Removed.
5369         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
5370         dependency.
5371         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
5372         reference.
5373         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
5374         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
5375         * loop.c: Do not include loop.h.
5376         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
5377         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
5378         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
5379         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
5380         struct loop_regs, struct loop_movables, struct loop_info): Moved
5381         from loop.h.
5382         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
5383         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
5384         find_common_reg_term, loop_iterations, final_giv_value): Moved
5385         from unroll.c.
5386         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
5387         loop_dump_stream, for_each_insn_in_loop, express_from,
5388         extend_value_for_giv, loop_iv_add_mult_emit_before,
5389         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
5390         loop_insn_first_p, get_condition_for_loop,
5391         loop_insn_emit_before, loop_insn_hoist,
5392         loop_insn_sink): Made static.
5393         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
5394         reference.
5395         (strength_reduce): Do not call unroller.
5396         (record_giv): Do not initialize unrolled field.
5397         (prescan_loop): Do not set loop_info->preconditioned.
5398         * passes.c: Do not include loop.h.
5399         (rest_of_handle_loop_optimize): Do not call unroller.
5400         * predict.c: Do not include loop.h.
5401         * rtl.h (NOTE_PRECONDITIONED): Removed.
5402         * stmt.c: Do not include loop.h.
5403         * toplev.c: Do not include loop.h.
5404         (process_options): Do not handle flag_old_unroll_loops.
5405
5406         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
5407         Documentation removed.
5408         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
5409
5410 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
5411
5412         * Makefile.in (STAGE1_CHECKING): New variable.
5413         (stage1_build): Use it.
5414         * tree-ssa.c (verify_ssa): Preserve state of dominance
5415         information.
5416
5417 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
5418
5419         * config/i386/i386.c (output_fp_compare): Add generation
5420         of ftst instruction.
5421         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
5422         Use output_fp_compare () function.
5423         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
5424         (fix_truncdi_memory): Remove operands[5] copy.
5425
5426 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5427
5428         * config/m32r/m32r.md, config/m68k/m68kelf.h,
5429         config/mcore/mcore.md, config/rs6000/linux64.h,
5430         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
5431         typos.
5432
5433 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5434
5435         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
5436         * gen-protos.c: Include errors.h.
5437         (progname): Delete.
5438
5439 2004-09-14  Jan Hubicka  <jh@suse.cz>
5440
5441         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
5442         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
5443         (predict_loops): Use number_of_iterations_exit to predict
5444         number of iterations on trees.
5445
5446 2004-09-13  Dale Johannesen  <dalej@apple.com>
5447
5448         PR 17408
5449         PR 17409
5450         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
5451         objects declared extern.
5452
5453 2004-09-14  Paul Brook  <paul@codesourcery.com>
5454
5455         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
5456         HOST_WIDE_INT.
5457
5458 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5459
5460         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
5461         Only use TYPE_BINFO for aggregates.
5462
5463 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5464
5465         * expmed.c (synth_mult): Initialize latency.  Check cost before
5466         checking ops count.
5467
5468 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
5469
5470         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
5471         add_call_clobber_ops and add_call_read_ops.
5472         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
5473         the number of vdefs and vuses inserted based on analysis of global
5474         variables across calls.  * tree-dfa.c (find_referenced_vars):
5475         Needed to reset static var maps before each function is compiled.
5476         * cgraphunit.c:
5477         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
5478         static_vars_info,functions_to_static_vars_info,module_statics_escape,
5479         all_module_statics,searchc_env,dfs_info): New fields to support
5480         analysis of static global variables.
5481         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
5482         cgraph_reset_static_var_maps, get_global_static_vars_info,
5483         get_global_statics_not_read, get_global_statics_not_written,
5484         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
5485         check_rhs_var, check_lhs_var, get_asm_expr_operands,
5486         process_call_for_static_vars, scan_for_static_refs,
5487         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
5488         clear_static_vars_maps, cgraph_propagate_bits,
5489         cgraph_characterize_statics): New. Functions to support analysis
5490         of static global variables.
5491         (cgraph_mark_local_and_external_functions): Renamed from:
5492         (cgraph_mark_local_functions)
5493         (cgraph_expand_all_functions): Remove call to
5494         cgraph_mark_local_and_external_functions.
5495         (cgraph_optimize): Added driver to analyze static variables whose
5496         scope is within the compilation unit.  * cgraph.h (struct
5497         cgraph_local_info, GTY): Added statics_read, statics_written,
5498         local, calls_read_all, calls_write_all, for_functions_valid.
5499         (struct cgraph_node): Added next_cycle.  * cgraph.c
5500         (dump_cgraph_node): Added print routines for new fields.  *
5501         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
5502         list.
5503
5504 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5505
5506         * c-decl.c (grokdeclarator): Correct comments about where storage
5507         class specifiers are rejected by grammar and add corresponding
5508         asserts.  Diagnose typedefs and parameters declared inline.
5509         Change warning for inline main to a pedwarn.  Only diagnose inline
5510         main if hosted.
5511         (declspecs_add_scspec): Allow duplicate "inline".
5512
5513 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
5514
5515         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
5516         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5517
5518 2004-09-13  Richard Henderson  <rth@redhat.com>
5519
5520         PR 17436
5521         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
5522         (tree_type): Replace spare with contains_placeholder_bits.
5523         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
5524         make static.  Remove seen_types list.
5525         (type_contains_placeholder_p): New.
5526
5527 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5528
5529         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
5530         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
5531         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
5532         bdesc_arrays instead of mips_bdesc.
5533         (mips_init_builtins): Likewise.
5534         * config/mips/mips.h (TARGET_SB1): New.
5535         (HAVE_SQRT_P): Delete.
5536         * config/mips/mips.md (divide_condition): Support V2SF.
5537         (sqrt_condition, recip_condition): New.
5538         (div<mode>3): Use ANYF instead of SCALARF.
5539         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
5540         MODE.
5541         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
5542         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
5543         instead of MODE.
5544         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
5545         instead of SCALARF.  Use UNITMODE instead of MODE.
5546
5547 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
5548
5549         * config.in: Regenerate after removal of libbanshee.
5550
5551 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
5552
5553         PR tree-optimization/17400
5554         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5555         coalesce partitions when one occurs in an abnormal PHI.
5556
5557 2004-09-13  Andrew Pinski  <apinski@apple.com>
5558
5559         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
5560         name to _new_size.
5561
5562 2004-09-13  Richard Henderson  <rth@redhat.com>
5563
5564         PR inline-asm/6806
5565         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
5566         (cselib_invalidate_rtx_note_stores): New.
5567         (cselib_record_sets, cselib_process_insn): Update to match.
5568         * cselib.h (cselib_invalidate_rtx): Declare.
5569         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
5570
5571 2004-09-13  Richard Henderson  <rth@redhat.com>
5572
5573         PR tree-opt/10528
5574         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
5575         after copying its argument.
5576
5577 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5578
5579         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
5580         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
5581         in diagnostics.  Use %' for English apostrophes.
5582         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
5583         (pedwarn_c90, pedwarn_c99): Use it.
5584         * c-decl.c (lookup_label): Quote label name in diagnostic.
5585         * c-parse.in (yyprint): Use ' instead of ` for left quote.
5586         * c-typeck.c (warn_for_assignment): Likewise.
5587
5588 2004-09-13  Jan Hubicka  <jh@suse.cz>
5589
5590         * i386.c (x86_schedule): New global variable.
5591         (override_options): Disable scheduling when not supported.
5592         * i386.h (x86_schedule): Declare.
5593         (TARGET_SCHEDULE): New macro.
5594
5595 2004-09-12  Richard Henderson  <rth@redhat.com>
5596
5597         PR c++/16254
5598         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
5599         * tree.c, tree.h (has_cleanups): Remove.
5600
5601 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5602
5603         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
5604         arguments of the phi nodes correctly.
5605
5606 2004-09-12  Jan Hubicka  <jh@suse.cz>
5607
5608         * ggc-common.c (cmp_statistics): Fix sorting.
5609
5610 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
5611
5612         PR target/16795
5613         * expmed.c (expand_divmod): If cheap power of 2 divide is
5614         available, use it for negative constant as well.
5615
5616 2004-09-12  Andrew Pinski  <apinski@apple.com>
5617
5618         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
5619         size of 0.
5620
5621         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
5622
5623 2004-09-12  Richard Henderson  <rth@redhat.com>
5624
5625         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
5626         or minus one.
5627         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
5628         post-reload, and scratch NULL.
5629         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
5630         (x86_shift_adj_2): Use ix86_expand_clear.
5631         (ashldi3): Remove CMOVE expansion difference.
5632         (ashldi3_1): Remove.
5633         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
5634         add constraints for immediates.  New peephole for split-with-temp.
5635         Run splitter after peep2 pass.
5636         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
5637         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
5638         (setcc_2): Rename with *.
5639         * config/i386/predicates.md (reg_or_pm1_operand): New.
5640         (ashldi_input_operand): New.
5641
5642 2004-09-12  Richard Henderson  <rth@redhat.com
5643
5644         * print-rtl.c (print_decl_name): New.
5645         (print_mem_expr): Use it.
5646
5647 2004-09-12  Richard Henderson  <rth@redhat.com
5648
5649         PR 17186, part deux
5650         * except.c (sjlj_emit_function_exit): Fix logic locating
5651         sjlj_exit_after in final block.
5652
5653 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
5654
5655         * common.opt: Remove flags -fmove-all-movables and
5656         -freduce-all-givs.
5657         * loop-invariant.c (find_invariants_to_move):
5658         Remove all uses of flag_move_all_movables.
5659         * loop.c (move_movables): Remove all uses of
5660         flag_move_all_movables.
5661         (strength_reduce): Remove all uses of
5662         flag_reduce_all_givs.
5663         * doc/invoke.texi: Remove documentation of flags
5664         -fremove-all-movables and -freduce-all-givs.
5665
5666 2004-09-11  Roger Sayle  <roger@eyesopen.com>
5667
5668         PR middle-end/17411
5669         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
5670         change. elt->type may be a floating point type, so use fold_convert.
5671
5672 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
5673
5674         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
5675         the thing referenced as used, not the stub itself.
5676
5677 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5678
5679         * c-tree.h (enum c_storage_class): New.
5680         (struct c_declspecs): Add storage_class, inline_p and thread_p.
5681         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
5682         declarations and "auto" or "register" in file scope empty
5683         declarations.  Give more specific warnings for other cases of
5684         storage class specifiers in empty declarations.
5685         (grokdeclarator): Update for new structures.  Don't check for
5686         multiple storage classes.  Diagnose file-scope "register" if
5687         pedantic.
5688         (build_null_declspecs): Update.
5689         (declspecs_add_scspec): Update.  Diagnose multiple storage class
5690         specifiers and invalid uses of "__thread".
5691
5692 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
5693
5694         * tree.c (tree_code_size): New function, bulk of code from tree_size.
5695         (tree_size, make_node): Use it.
5696         * tree-ssa-pre.c (init_pre): Use it.
5697         * tree.h: Prototype it.
5698
5699 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5700
5701         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
5702         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
5703         redirect_immediate_use): Use PHI_DF.
5704         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
5705         (bb_for_stmt): Use PHI_BB.
5706         (get_immediate_uses): Use PHI_DF.
5707         * tree-ssa-dse.c (max_stmt_uid): New variable.
5708         (get_stmt_uid): New function.
5709         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
5710         node annotations.
5711         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
5712         (max_uid): Renamed to max_stmt_uid.
5713         (get_stmt_uid): New function.
5714         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
5715         phi node annotations.
5716         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
5717         * tree.h (PHI_BB, PHI_DF): New accessor functions.
5718         (struct tree_phi_node): Add bb and df fields.
5719
5720 2004-09-11  Richard Henderson  <rth@redhat.com>
5721
5722         PR middle-end/17416
5723         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
5724         in conflict loop.
5725
5726 2004-09-11  Jan Hubicka  <jh@suse.cz>
5727
5728         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
5729         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
5730         * i386.md (i387_cw): Add 'uninitialized' mode.
5731
5732         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
5733         (output_location): Break out from ....
5734         (branch_prob): ... here; handle gcov output on trees.
5735         * toplev.c (process_options): No longer be sorry about coverage for
5736         trees.
5737
5738 2004-09-11  Steven Bosscher  <stevenb@suse.de>
5739
5740         PR c++/17412
5741         * fold-const.c (fold): Do not try to fold the operand of a
5742         CLEANUP_POINT_EXPR if that operand does itself not have any
5743         operands.
5744
5745         PR middle-end/17417
5746         * langhooks.c (lhd_decl_printable_name): Make sure that this
5747         function is called with is a decl node that has an identifier.
5748         * tree-pretty-print.c (dump_function_name): New function to
5749         wrap PRINT_FUNCTION_NAME and dump_decl_name.
5750         (print_call_name): Use it.
5751
5752 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
5753
5754         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
5755         "config.h" if not.
5756
5757 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
5758
5759         * tree-ssa-alias.c (collect_points_to_info_r): Handle
5760         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
5761         to OFFSET.
5762
5763 2004-09-11  Richard Henderson  <rth@redhat.com>
5764
5765         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
5766         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
5767         operand of the ADDR_EXPR.
5768         (expand_expr_real_1): Update to match.
5769
5770 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
5771
5772         PR target/17277
5773         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
5774         choose 64-bit version.
5775
5776 2004-09-11  Richard Henderson  <rth@redhat.com>
5777
5778         PR c/17396
5779         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
5780
5781 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
5782
5783         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
5784         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
5785         Insert @: after i.e. or e.g.
5786
5787 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5788
5789         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
5790         D.xxx rather than <Dxxx>.
5791
5792 2004-09-10  Adam Nemet  <anemet@lnxw.com>
5793
5794         * configure.ac (AC_MSG_CHECKING(what linker to use)):
5795         in_tree_ld_is_elf should be true for LynxOS.
5796         * configure: Regenerate.
5797
5798 2004-09-10  Adam Nemet  <anemet@lnxw.com>
5799
5800         * Makefile.in (all.cross): Add srcextra.
5801
5802 2004-09-10  Roger Sayle  <roger@eyesopen.com>
5803
5804         PR middle-end/17024
5805         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
5806         floating point comparison operators.  Change aborts to gcc_asserts.
5807
5808 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5809
5810         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
5811
5812 2004-09-10  James E Wilson  <wilson@specifixinc.com>
5813
5814         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
5815         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
5816
5817         * convert.c (convert_to_vector): Replace recursive call with
5818         error_mark_node.
5819
5820         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
5821         Add integer argument named constant.  Use const_tiny_rtx instead of
5822         CONST0_RTX.
5823         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
5824         and CONST1_RTX.
5825         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
5826         vector types.
5827         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
5828         of gen_rtx_raw_CONST_VECTOR.
5829
5830 2004-09-10  Eric Christopher  <echristo@redhat.com>
5831
5832         PR c/16046
5833         * c-parse.in (attribute): Add NULL_TREE for error case
5834         for error recovery.
5835
5836 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
5837
5838         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
5839         (extract_interface_info): Delete prototype.
5840         * c-decl.c (extract_interface_info): Delete stub.
5841         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
5842         it's not already been done ...
5843         (init_c_lex): ... not here.
5844         (fe_file_change): Don't call extract_interface_info.
5845
5846 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5847
5848         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
5849         typedef_p and typedef_signed_p.
5850         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
5851         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
5852         Check typedef_p and typedef_signed_p, not typedef_decl.
5853         (grokfield): Check typedef_p, not typedef_decl.
5854         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
5855         not typedef_decl.
5856         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
5857         typedef_decl.
5858
5859 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5860
5861         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
5862
5863 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5864
5865         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
5866         temporary variables.
5867
5868         * dbxout.c (dbxout_block): Update for
5869         current_function_func_begin_label a string.
5870         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
5871         * except.c (dw2_output_call_site_table): Likewise.
5872         * toplev.c (current_function_func_begin_label): Likewise.
5873         * tree.h (current_function_func_begin_label): Likewise.
5874         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
5875
5876         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
5877         loop.
5878
5879         * config/darwin.c: Include target.h.
5880         (struct machopic_indirection): Make ptr_name a string.
5881         (machopic_indirection_hash): Update for ptr_name a string.
5882         (machopic_indirection_eq): Likewise.
5883         (machopic_indirection_name): Likewise.
5884         (machopic_output_indirection): Likewise.
5885         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
5886         string.  Don't expect stub names to be in the identifier hash table.
5887         Do call strip_name_encoding before looking up entry in ID hash table.
5888         * config/t-darwin (darwin.o): Add target.h to dependencies.
5889
5890         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
5891         of fprintf for register names.
5892
5893         * output.h (unlikely_section_label): Delete declaration.
5894         (unlikely_text_section_name): Likewise.
5895         * varasm.c (unlikely_section_label_printed): Make static.
5896         (unlikely_section_label): Likewise.
5897         (unlikely_text_section_name): Likewise.
5898         (assemble_start_function): Use reconcat.
5899
5900         * rtl.def (REG): Add comment to describe third field.
5901
5902 2004-09-10  Andrew Pinski  <apinski@apple.com>
5903
5904         * config/darwin.c (machopic_mcount_stub_name): Call
5905         machopic_indirection_name instead of making the string
5906         ourselves.
5907
5908 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
5909
5910         Revert
5911
5912         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
5913
5914             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
5915             memory tag is call clobbered, so are its aliases.
5916             (group_aliases): When two memory tags being grouped, if one is
5917             call clobbered, so are the other and its aliases.
5918             (add_may_alias): Remove call-clobbering stuff.
5919             (replace_may_alias): Likewise.
5920             (merge_pointed_to_info): Merge pt_global_mem
5921
5922 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5923
5924         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
5925         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
5926         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
5927         tree-scalar-evolution.c, tree-ssa-copyrename.c,
5928         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
5929
5930 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5931
5932         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
5933         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
5934         pair.  Remove match_dup from inputs.  Remove masaccs handling.
5935         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
5936         (masaccs, mdasaccs): Turn into define_insns.
5937
5938 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5939
5940         * tree-tailcall.c (process_assignment): Only do accumulator transforms
5941         for floating-point types if flag_unsafe_math_optimizations.
5942
5943 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5944
5945         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
5946         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
5947         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
5948         config/h8300/h8300.md, config/i386/gmm_malloc.h,
5949         config/ia64/ia64.md, config/ip2k/libgcc.S,
5950         config/mips/mips-ps-3d.md, config/mips/mips.c,
5951         config/rs6000/rs6000.c, config/s390/s390.c,
5952         config/sh/symbian.c: Fix comment typos.
5953
5954 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5955
5956         * config/s390/s390.c (s390_emit_prologue): Added missing
5957         "{}" brackets.
5958
5959 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5960
5961         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
5962         typos.  Follow spelling conventions.
5963
5964 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5965
5966         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
5967         in diagnostic.  Don't dereference NULL TYPE_NAME.
5968
5969 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5970
5971         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
5972         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
5973         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
5974         value-prof.c: Fix comment typos.  Follow spelling conventions.
5975
5976 2004-09-10  Jan Hubicka  <jh@suse.cz>
5977
5978         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
5979         * tree-split_edge.c (tree_split_edge): Likewise.
5980         (thread_jumps): Likewise.
5981
5982 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5983
5984         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
5985         typos.
5986
5987 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
5988
5989         * cgraph.h (cgraph_dump_file): Do not declare.
5990         * cgraphunit.c (cgraph_dump_file): Declare as static.
5991         (init_cgraph): New.
5992         * toplev.c (cgraph_dump_file): Do not declare.
5993         (compile_file): Call init_cgraph.
5994         * tree-dump.c (dump_files): Add IPA dump file, remove
5995         XML dump of call graph.
5996         (get_dump_file_name): Support IPA dump file naming scheme.
5997         * tree.h (enum tree_dump_index): Add IPA dump file, remove
5998         XML dump of call graph.
5999         * doc/invoke.texi (Debugging Options): Document the new options.
6000
6001 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
6002
6003         * doc/extend.texi: Document the FR-V built-in functions.
6004
6005 2004-09-09  James E Wilson  <wilson@specifixinc.com>
6006
6007         * doc/sourcebuild.texi: Delete libbanshee reference.
6008
6009 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
6010
6011         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
6012
6013 2004-09-09  James E Wilson  <wilson@specifixinc.com>
6014
6015         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
6016         before calling vector_types_convertible_p.
6017         (digest_init): Check that inside_init has VECTOR_TYPE before calling
6018         vector_types_convertible_p.  Don't give another error if
6019         convert_for_assignment returns error_mark_node.
6020
6021 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6022
6023         PR middle-end/17055
6024         * fold-const.c (build_zero_vector): New function to construct a
6025         vector (either floating point or integer) of zeros.
6026         (fold_convert): Internally, enable conversions of integer zero
6027         to arbitrary vector types, using the new build_zero_vector.
6028
6029 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6030
6031         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
6032         expand a left shift by an immediate constant as either an ashl or
6033         a sequence of additions.
6034         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
6035         instead of calling gen_ashlsi3 with a constant directly.
6036
6037 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6038
6039         * config/i386/i386.c (ix86_split_long_move): When optimizing for
6040         size, and the low and high parts of a DImode constant are equal,
6041         copy one register to another instead of loading the same immediate
6042         value twice.
6043
6044 2004-09-09  Richard Henderson  <rth@redhat.com>
6045
6046         PR middle-end/17367
6047         * function.c (assign_parm_setup_block): Only put PARALLELs into
6048         a register if use_register_for_decl.
6049
6050 2004-09-09  Eric Christopher  <echristo@redhat.com>
6051
6052         * ra-colorize.c (reset_lists): Move variable declaration inside
6053         ENABLE_CHECKING to avoid unused variable warnings when
6054         not --enable-checking.
6055         (check_colors): Ditto.
6056
6057 2004-09-09  Mike Stump  <mrs@apple.com>
6058
6059         * version.c (version_string): Bump to 4.0.0.
6060         * doc/include/gcc-common.texi (version-GCC): Likewise.
6061
6062 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
6063
6064         * doc/extend.texi (nothrow attribute): The attribute is not
6065         implemented in 3.2 and earlier.
6066
6067 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
6068
6069         * genrecog.c (compute_predicate_codes): Use op0_codes
6070         instead of codes.
6071
6072 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6073
6074         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
6075         implementation changes.
6076
6077 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6078
6079         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
6080         a PARALLEL instead of a SET due to added clobbers.
6081
6082 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6083
6084         * reload.c (find_reloads_address): Pass correct operand to
6085         maybe_memory_address_p.
6086
6087 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
6088
6089         * Makefile.in: Remove libbanshee, tree-alias-*.
6090         Remove tree-alias-common.h dependencies.
6091         * common.opt: Remove -ftree-points-to.
6092         * configure.ac: Remove libbanshee.
6093         * flags.h: Remove pta_type, flag_tree_points_to.
6094         * gengtype.c (open_base_files): Remove tree-alias-type.h.
6095         * opts.c (OPT_ftree_points_to): Remove.
6096         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
6097         * tree-dfa.c: Remove tree-alias-common.h
6098         * tree-into-ssa.c: Ditto.
6099         * tree-outof-ssa.c: Ditto.
6100         * tree-ssa-copyrename.c: Ditto.
6101         * tree-ssa-live.c: Ditto.
6102         * tree-optimize.c: Ditto.
6103         * tree-ssa.c: Ditto.
6104         Remove pass_build_pta, pass_del_pta.
6105         * tree-pass.h: Ditto.
6106         * tree-ssa-alias.c: Remove tree-alias-common.h.
6107         (struct alias_stats_d): Remove pta_queries, pta_resolved.
6108         (pass_may_alias): Remove PROP_pta requirement.
6109         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
6110         (get_tmt_for): Ditto.
6111         (dump_alias_stats): Ditto.
6112         * doc/passes.texi: Remove blurb about points-to analysis.
6113         * fortran/Make-lang.in: Remove tree-alias-*.o.
6114
6115 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6116
6117         * genattrtab.c (write_insn_cases): New function, split out from
6118         write_attr_case.  Correctly handle define_peepholes when printing
6119         the instruction name.
6120         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
6121
6122 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
6123
6124         PR target/17377
6125         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
6126         * config/cris/cris.c (cris_return_address_on_stack): New function.
6127         * config/cris/cris.md ("return"): For location of return address,
6128         also check cris_return_address_on_stack.
6129
6130 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
6131
6132         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
6133         calling phi_ssa_name_p.
6134
6135 2004-09-09  Richard Henderson  <rth@redhat.com>
6136
6137         PR c/17322
6138         * c-typeck.c (valid_compound_expr_initializer): Use only
6139         initializer_constant_valid_p, and not TREE_CONSTANT.
6140         (digest_init): Likewise.
6141         (output_init_element): Likewise.
6142
6143 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6144
6145         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
6146         live_out_1, prune_hardregs_for_mode, init_one_web_common,
6147         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
6148         record_conflict, compare_and_free_webs, init_webs_defs_uses,
6149         parts_to_webs_1, parts_to_webs, reset_conflicts,
6150         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
6151         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
6152         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
6153         put_move, remove_move, combine, select_spill, colorize_one_web,
6154         try_recolor_web, insert_coalesced_conflicts, check_colors,
6155         break_precolored_alias, restore_conflicts_from_coalesce,
6156         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
6157         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
6158         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
6159         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
6160         check_df): Likewise.
6161         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
6162         real_arithmetic, real_compare, real_exponent, real_ldexp,
6163         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
6164         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
6165         real_digit, real_nan, real_maxval, round_for_format, real_convert,
6166         real_to_target, real_from_target, real_hash, encode_ieee_single,
6167         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
6168         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
6169         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
6170         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
6171         extract_insn, peep2_next_insn, peep2_reg_dead_p,
6172         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
6173         if_test_bypass_p): Likewise.
6174         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
6175         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
6176         emit_swap_insn, swap_to_top, move_for_stack_reg,
6177         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
6178         compensate_edge, convert_regs_1): Likewise.
6179         * regclass.c (init_reg_sets, init_reg_sets_1,
6180         memory_move_secondary_cost): Likewise.
6181         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
6182         Likewise.
6183         * reload.c (push_secondary_reload, find_valid_class, push_reload,
6184         operands_match_p, decompose, immune_p, find_reloads,
6185         find_reloads_toplev, find_reloads_address_1, subst_reloads,
6186         copy_replacements, refers_to_regno_for_reload_p,
6187         reg_overlap_mentioned_for_reload_p): Likewise.
6188         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
6189         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
6190         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
6191         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
6192         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
6193         do_output_reload, fixup_abnormal_edges): Likewise.
6194         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
6195         fill_slots_from_thread, relax_delay_slots): Likewise.
6196         * resource.c (mark_referenced_resources, mark_set_resources):
6197         Likewise.
6198         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
6199         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
6200         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
6201         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
6202         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
6203         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
6204         * rtlhooks.c (gen_lowpart_general): Likewise.
6205         * sbitmap.c (sbitmap_difference): Likewise.
6206         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
6207         sched_analyze, add_forward_dependence): Likewise.
6208         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
6209         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
6210         schedule_insns): Likewise.
6211         * sched-vis.c (print_pattern): Likewise.
6212         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
6213         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
6214         simplify_const_relational_operation, simplify_ternary_operation,
6215         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
6216         Likewise.
6217         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
6218         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
6219         resolve_operand_name_1, expand_return, expand_decl,
6220         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
6221         * stor-layout.c (put_pending_size, smallest_mode_for_size,
6222         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
6223         set_sizetype, get_mode_bounds): Likewise.
6224
6225 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
6226
6227         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
6228         * config/arm/pecoff.h, config/i386/beos-elf.h
6229         * config/i386/cygming.h, config/i386/i386-interix.h:
6230         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
6231         comment cloned from manual.
6232         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
6233
6234 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
6235
6236         * builtins.c (build_va_arg_indirect_ref): New function.
6237         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
6238         build_fold_indirect_ref.
6239         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
6240         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
6241         * tree.h: Declare new function.
6242
6243 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6244
6245         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
6246         dumping for development builds.
6247         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
6248         development builds only.
6249         * genattrtab.c (write_eligible_delay): Fix typo in previous
6250         commit.
6251         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
6252         gcc_assert.
6253
6254 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6255
6256         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
6257         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
6258         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
6259         hoist_code, extract_mentioned_regs_helper, compute_store_table,
6260         insert_store): Use gcc_assert and gcc_unreachable.
6261         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
6262         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
6263         ggc_record_overhead): Likewise.
6264         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
6265         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
6266         ggc_pop_context, clear_marks, validate_free_objects,
6267         ggc_pch_read): Likewise.
6268         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
6269         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
6270         ggc_push_context, check_cookies, ggc_collect,
6271         ggc_print_statistics): Likewise.
6272         * gimple-low.c (lower_function_body, lower_stmt,
6273         lower_bind_expr): Likewise.
6274         * gimplify.c (gimple_tree_eq, push_gimplify_context,
6275         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
6276         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
6277         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
6278         gimplify_case_label_expr, gimplify_exit_block_expr,
6279         canonicalize_component_ref, gimplify_compound_lval,
6280         gimplify_self_mod_expr, gimplify_call_expr,
6281         gimplify_init_ctor_eval, gimplify_init_constructor,
6282         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
6283         gimplify_expr, check_pointer_types_r,
6284         force_gimple_operand): Likewise.
6285         * global.c (global_alloc, build_insn_chain): Likewise.
6286         * graph.c (clean_graph_dump_file,
6287         finish_graph_dump_file): Likewise.
6288         gcov-io.c (gcov_open): Use GCOV_CHECK.
6289
6290 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6291
6292         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
6293
6294 2004-09-09  Jan Hubicka  <jh@suse.cz>
6295
6296         middle-end/17128
6297         * tree-inline.c (expand_call_inline): Make overactive sanity check
6298         happy.
6299
6300 2004-09-09  Jan Hubicka  <jh@suse.cz>
6301
6302         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
6303         VIEW_CONVERT_EXPR.
6304
6305 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6306
6307         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
6308         (gengtype.o): Depend on errors.h.
6309         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
6310         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
6311         attr_alt_subset_p, attr_alt_subset_of_compl_p,
6312         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
6313         write_test_expr, write_attr_value, write_eligible_delay,
6314         make_internal_attr, make_numeric_value): Likewise.
6315         * genautomata.c (regexp_name, get_str_vect,
6316         gen_presence_absence_set, automaton_decl_hash,
6317         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
6318         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
6319         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
6320         test_unit_reserv, it_is_empty_reserv_sets,
6321         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
6322         reserv_sets_and, output_cycle_reservs, get_free_state,
6323         intersected_state_reservs_p, states_union, remove_arc,
6324         copy_insn_regexp, transform_1, transform_2, transform_3,
6325         regexp_transform_func, store_alt_unit_usage,
6326         check_regexp_units_distribution, process_seq_for_forming_states,
6327         process_alts_for_forming_states, make_automaton,
6328         form_arcs_marked_by_insn, create_composed_state,
6329         set_out_arc_insns_equiv_num, partition_equiv_class,
6330         process_insn_equiv_class, set_insn_equiv_classes,
6331         units_to_automata_heuristic_distr, form_regexp,
6332         longest_path_length, output_dfa_max_issue_rate, add_vect,
6333         out_state_arcs_num, add_vect_el, output_trans_table,
6334         output_state_alts_table, output_dead_lock_vect,
6335         output_max_insn_queue_index_def,
6336         output_min_insn_conflict_delay_func,
6337         output_internal_insn_latency_func, output_print_reservation_func,
6338         output_cpu_unit_reservation_p, output_state_arcs,
6339         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
6340         make_default_insn_latency_attr,
6341         form_important_insn_automata_lists): Likewise.
6342         * genemit.c (gen_exp, output_add_clobbers,
6343         output_added_clobbers_hard_reg_p): Likewise.
6344         * genextract.c (print_path, main): Likewise.
6345         * genflags.c (gen_macro): Likewise.
6346         * gengenrtl.c: Include errors.h
6347         (type_from_format, accessor_from_format): Likewise.
6348         * gengtype.c (get_file_basename, output_mangled_typename,
6349         walk_type, write_types_process_field,
6350         write_types_local_process_field): Likewise.
6351         * genmodes.c (complete_mode): Likewise.
6352         * genopinit.c (gen_insn): Likewise.
6353         * genoutput.c (output_insn_data, check_constraint_len,
6354         constraint_len): Likewise.
6355         * genpreds.c (add_mode_tests):Likewise.
6356         * gen-protos.c (add_hash): Likewise.
6357         * genrecog.c (find_operand, find_matching_operand,
6358         validate_pattern, add_to_sequence, maybe_both_true,
6359         nodes_identical_1, merge_trees, write_switch, write_cond,
6360         write_action, is_unconditional, make_insn_sequence,
6361         debug_decision_2): Likewise.
6362         * gensupport.c (is_predicable, collect_insn_data,
6363         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
6364
6365 2004-09-09  Jan Hubicka  <jh@suse.cz>
6366
6367         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
6368         * cfgbuild.c (compute_outgoing_frequencies): When probability is
6369         missing, guess it.
6370         (find_many_sub_basic_blocks): Do update profile only when it is
6371         present.
6372         * predict.c (set_even_probabilities): Break out from ...
6373         (combine_predictions_for_insn): ... here; deal with
6374         !can_predict_insn_p insns.
6375         (combine_predictions_for_bb): Use set_even_probabilities.
6376         (bb_estimate_probability_locally): Break out from ....
6377         (estimate_probability): ... here.
6378         (guess_outgoing_edge_probabilities): New entry point.
6379
6380 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6381
6382         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
6383         handle_braces, process_brace_body, main, used_arg,
6384         set_multilib_dir, print_multilib_info): Use fatal, not abort.
6385
6386         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
6387
6388         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
6389         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
6390         Morgan's theorem in last checkin.
6391
6392 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6393             Nathan Sidwell  <nathan@codesourcery.com>
6394
6395         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
6396         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
6397         * timevar.c (timevar_push, timevar_pop, timevar_start,
6398         timevar_stop): Likewise.
6399         * toplev.c (default_pch_valid_p): Likewise.
6400         * tracer.c (tail_duplicate): Likewise.
6401         * tree-alias-common.c (get_alias_var_decl,
6402         get_values_from_constructor, create_alias_var, delete_alias_vars,
6403         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
6404         Likewise.
6405         * tree.c (tree_size, make_node_stat, copy_node_stat,
6406         build_int_cst_wide, integer_all_onesp, list_length, chainon,
6407         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
6408         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
6409         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
6410         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
6411         build_method_type_directly, decl_type_context, get_callee_fndecl,
6412         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
6413         tree_fold_gcd): Likewise.
6414         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
6415         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
6416         cleanup_control_expr_graph, find_taken_edge,
6417         find_taken_edge_switch_expr, phi_alternatives_equal,
6418         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
6419         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
6420         tree_split_edge, tree_verify_flow_info, thread_jumps,
6421         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
6422         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6423         chrec_fold_multiply_poly_poly): Likewise.
6424         * tree-complex.c (extract_component, expand_complex_division,
6425         expand_complex_comparison, expand_complex_operations_1,
6426         build_replicated_const, expand_vector_operations_1): Likewise.
6427         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
6428         build_classic_dir_vector): Likewise.
6429         * tree-dfa.c (compute_immediate_uses_for_phi,
6430         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
6431         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
6432         * tree-dump.c (dequeue_and_dump): Likewise.
6433         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
6434         record_in_finally_tree, replace_goto_queue_1,
6435         maybe_record_in_goto_queue, verify_norecord_switch_expr,
6436         do_return_redirection): Likewise.
6437         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
6438         add_to_dst_predicate_list, find_phi_replacement_condition,
6439         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
6440         Likewise.
6441         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
6442         initialize_inlined_parameters, declare_return_variable,
6443         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
6444         optimize_inline_calls, copy_tree_r): Likewise.
6445         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
6446         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
6447         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
6448         tsi_split_statement_list_after, tsi_split_statement_list_before):
6449         Likewise.
6450         * tree-mudflap.c (mf_varname_tree): Likewise.
6451         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
6452         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
6453         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6454         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
6455         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
6456         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
6457         Likewise.
6458         * tree-phinodes.c (resize_phi_node, add_phi_arg,
6459         remove_all_phi_nodes_for): Likewise.
6460         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
6461         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
6462         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
6463         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
6464         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
6465         generate_one_element_ref, generate_element_copy,
6466         generate_element_zero, scalarize_copy, scalarize_init,
6467         scalarize_ldst): Likewise.
6468         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
6469         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
6470         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
6471         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
6472         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
6473         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
6474         widen_bitfield, ccp_fold_builtin): Likewise.
6475         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
6476         replace_exp_1, propagate_tree_value): Likewise.
6477         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
6478         * tree-ssa-dce.c (set_control_dependence_map_bit,
6479         find_control_dependence, find_pdom, mark_operand_necessary,
6480         mark_stmt_if_obviously_necessary,
6481         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
6482         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
6483         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
6484         eliminate_redundant_computations, avail_expr_eq): Likewise.
6485         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
6486         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
6487         duplicate_blocks): Likewise.
6488         * tree-ssa-loop-im.c (for_each_index, set_level,
6489         is_call_clobbered_ref): Likewise.
6490         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
6491         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
6492         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
6493         peel_address, ptr_difference_cost, may_replace_final_value,
6494         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
6495         rewrite_use, rewrite_uses): Likewise.
6496         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
6497         check_loop_closed_ssa_use): Likewise.
6498         * tree-ssanames.c (make_ssa_name): Likewise.
6499         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
6500         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
6501         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
6502         get_indirect_ref_operands, add_stmt_operand): Likewise.
6503         * tree-ssa-pre.c (value_exists_in_set_bitmap,
6504         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
6505         phi_translate, valid_in_set, compute_antic,
6506         find_or_generate_expression, create_expression_by_pieces, insert_aux,
6507         create_value_expr_from, eliminate): Likewise.
6508         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
6509         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
6510         Likewise.
6511         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
6512         eliminate_tail_call): Likewise.
6513         * tree-vectorizer.c (vect_create_index_for_array_ref,
6514         vect_align_data_ref, vect_create_data_ref,
6515         vect_create_destination_var, vect_get_vec_def_for_operand,
6516         vect_finish_stmt_generation, vect_transform_stmt,
6517         vect_transform_loop_bound, vect_transform_loop,
6518         vect_analyze_operations): Likewise.
6519         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
6520         Likewise.
6521         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
6522         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
6523         bsi_after_labels, bsi_last): Likewise.
6524         * tree-ssa-live.c (var_union, change_partition_var,
6525         create_ssa_var_map, calculate_live_on_entry, root_var_init,
6526         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
6527         Likewise.
6528         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
6529         tpa_find_tree): Likewise.
6530         (register_ssa_partition_check): Declare.
6531         (register_ssa_partition): use it.
6532         * tree-ssa-live.c: Include errors.h.
6533         (register_ssa_partition_check): New.
6534         * tree-ssa-operands.c: Include errors.h.
6535         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
6536
6537 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6538             Catherine Moore  <clm@redhat.com>
6539
6540         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
6541         (FRV_CPU_FR405): New processor enums.
6542         (frv_issue_rate, frv_acc_group): Declare.
6543         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
6544         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
6545         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
6546         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
6547         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
6548         handled by CPP_SPEC.
6549         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
6550         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
6551         (ACC_MASK): New macro.
6552         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
6553         (TARGET_MEDIA_FR450): New macro.
6554         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
6555         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
6556         (LABEL_ALIGN_AFTER_BARRIER): Define.
6557         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
6558         (IACC_FIRST, IACC_LAST): New pair of SPRs.
6559         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
6560         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
6561         (REGISTER_NAMES): Add entries for new registers.
6562         (REG_CLASS_CONTENTS): Update for new register ranges.
6563         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
6564         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
6565         (PACKING_FLAG_USED_P): Delete.
6566         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
6567         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
6568         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
6569         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
6570         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
6571         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
6572         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
6573         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
6574         (CPU_UNITS_QUERY): Define to 1.
6575         * config/frv/frv.c: Include gt-frv.h
6576         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
6577         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
6578         (frv_insn_group): New enumeration.
6579         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
6580         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
6581         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
6582         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
6583         gap left by REGSTATE_LIVE.
6584         (regstate_t): New typedef.
6585         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6586         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
6587         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
6588         Initialize frv_unit_codes[] and frv_type_to_unit[].
6589         (frv_conditional_register_usage): Remove redundant fixing of
6590         accumulator registers.
6591         (frv_insn_packing_flag): Update specification.
6592         (frv_function_prologue): Don't set frv_insn_packing_flag here.
6593         Zero out frv_nops[].
6594         (frv_expand_epilogue): Remove comments about the no-longer-present
6595         SIBCALL_P argument.
6596         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
6597         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
6598         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
6599         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
6600         packing is disabled and if INSN can only issue to M1.
6601         (call_operand): Check TARGET_LONG_CALLS.
6602         (acc_operand, even_acc_operand, quad_acc_operand)
6603         (accg_operand): Simplify.  Don't accept pseudo registers.
6604         (output_move_single): Handle SPR<-zero moves.
6605         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
6606         (frv_registers_update, frv_registers_used_p): Delete.
6607         (frv_registers_set_p): Delete.
6608         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
6609         (frv_issues_to_branch_unit_p): New function.
6610         (frv_packet): New structure.
6611         (frv_cond_flags, frv_regstate_conflict_p): New functions.
6612         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
6613         (frv_registers_update_1, frv_registers_update): New functions.
6614         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
6615         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
6616         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
6617         (frv_sort_insn_group, frv_reorder_packet): New functions.
6618         (frv_pack_insns): Use frv_reorder_packet.
6619         (frv_packet_address): New variable.
6620         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
6621         (frv_register_nop, frv_reorg): New functions.
6622         (bdesc_1arg): Add __SCUTSS.
6623         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
6624         __SUBSS, __SLASS and __SCAN.
6625         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
6626         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
6627         (frv_init_builtins): Register the above builtins.
6628         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
6629         registers.  Turn the referenced accumulators into global registers.
6630         (frv_read_iacc_argument): New function.
6631         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
6632         (frv_split_iacc_move): New function.
6633         (frv_expand_builtin): Handle the new builtins.
6634         * config/frv/frv.md: Replace old schedulers with new order-independent
6635         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
6636         packing algorithm.
6637         (cpu): Add fr550, fr450 and fr405.
6638         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
6639         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
6640         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
6641         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
6642         (fnop, mnop): New patterns.
6643         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
6644         New constants.
6645         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
6646         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
6647         registers.
6648         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
6649         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
6650         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
6651         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
6652         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
6653         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
6654         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
6655         (frv_prefetch0, frv_prefetch): New patterns.
6656         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
6657         -mcpu=simple.  Add -mcpu=fr550.
6658         (MULTILIB_DIRNAMES): Update accordingly.
6659         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
6660         -mcpu=fr450.
6661         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
6662         -mlong-calls and -malign-labels options for FR-V.
6663
6664 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6665
6666         PR c/8420
6667         * c-tree.h (struct c_declspecs): New.
6668         (struct c_declarator, struct c_type_name, struct c_parm): Update
6669         element types.
6670         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
6671         start_function, start_decl, build_c_parm,
6672         make_pointer_declarator): Update prototypes.
6673         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6674         declspecs_add_scspec, declspecs_add_attrs): New.
6675         (split_specs_attrs): Remove.
6676         * c-parse.in (%union): Add dsptype.
6677         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
6678         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
6679         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
6680         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
6681         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
6682         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
6683         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
6684         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
6685         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
6686         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
6687         maybe_type_quals_attrs): Change to dsptype.
6688         (struct c_declspec_stack): New.
6689         (current_declspecs, declspec_stack): Change type.
6690         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
6691         structures.
6692         (extdefs): Likewise.
6693         (setspecs): Likewise.
6694         (fndef): Use current_declspecs for empty declspecs list.
6695         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
6696         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
6697         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
6698         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
6699         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
6700         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
6701         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
6702         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
6703         structures and helper functions.  Update comments.
6704         (typespec_nonattr): Correct comment.
6705         (maybe_type_quals_attrs, typename): Update to new structures.
6706         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
6707         shadow_tag, shadow_tag_warned, start_function, start_decl,
6708         build_c_parm, make_pointer_declarator,
6709         set_array_declarator_inner, groktypename): Update to new
6710         structures.
6711         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6712         declspecs_add_scspec, declspecs_add_attrs): New.
6713         (split_specs_attrs): Remove.
6714         (shadow_tag_warned): Make warning for useless type names a
6715         pedwarn.  Give hard error for long, short, signed, unsigned or
6716         _Complex used with struct, union or enum in empty declaration.
6717         Make found_tag a bool.
6718         (grokdeclarator): Remove checks now done at parse time.
6719
6720 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6721
6722         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
6723         c_declarator, struct c_type_name, struct c_parm): New.
6724         (build_array_declarator, set_array_declarator_inner,
6725         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
6726         start_function, start_decl, build_c_parm, build_attrs_declarator,
6727         build_function_declarator, make_pointer_declarator, c_cast_expr,
6728         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
6729         (build_id_declarator): New.
6730         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
6731         structures.
6732         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
6733         ARG_INFO_OTHERS): Remove.
6734         (build_id_declarator): New.
6735         (build_array_declarator, set_array_declarator_inner, groktypename,
6736         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
6737         grokfield, start_function, store_parm_decls_newstyle,
6738         store_parm_decls_oldstyle, store_parm_decls,
6739         build_c_parm, build_attrs_declarator, build_function_declarator,
6740         make_pointer_declarator, grokdeclarator): Update to new
6741         structures.
6742         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
6743         parmtype.
6744         (declarator, notype_declarator, after_type_declarator,
6745         parm_declarator, parm_declarator_starttypename,
6746         parm_declarator_nostarttypename, array_declarator, typename,
6747         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
6748         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
6749         parmlist_1, parmlist_2, parmlist_or_identifiers,
6750         parmlist_or_identifiers_1): Use these types.
6751         (primary, after_type_declarator, parm_declarator_starttypename,
6752         notype_declarator, component_decl, component_declarator,
6753         component_notype_declarator, typename, absdcl,
6754         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
6755         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
6756
6757 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6758
6759         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
6760         in_typeof, record_maybe_used_decl, pop_maybe_used,
6761         c_expr_sizeof_expr, c_expr_sizeof_type): New.
6762         * c-decl.c (parser_obstack): New.
6763         (c_init_decl_processing): Initialize parser_obstack.
6764         (c_write_global_declarations_1): Check for used but undefined
6765         static functions.
6766         * c-parse.in (%union): Add otype.
6767         (save_obstack_position): New.
6768         (extdefs): Use it.
6769         (unary_expr): Update in_sizeof and in_alignof.  Use
6770         c_expr_sizeof_expr and c_expr_sizeof_type.
6771         (sizeof): Update in_sizeof.
6772         (alignof): Update in_alignof.
6773         (typeof): Update in_typeof.
6774         (typespec_nonreserved_nonattr): Call pop_maybe_used.
6775         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
6776         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
6777         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
6778         (build_external_ref): Set C_DECL_USED or call
6779         record_maybe_used_decl if appropriate.
6780         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
6781
6782 2004-09-08  Eric Christopher  <echristo@redhat.com>
6783
6784         * builtins.c: Fix prototype for fold_builtin_atan.
6785
6786 2004-09-08  Eric Christopher  <echristo@redhat.com>
6787
6788         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
6789         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
6790         fold_builtin_atan): New functions. Migrate function bodies...
6791         (fold_builtin_1): ... from here.
6792
6793 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
6794
6795         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
6796         save_size.
6797
6798 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
6799
6800         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
6801         * config/rs6000/power5.md (power5-lmul): Same.
6802
6803 2004-09-08  Richard Henderson  <rth@redhat.com>
6804
6805         PR rtl-opt/17186
6806         * function.c (expand_function_end): Have fall-off-the-end
6807         return path jump around return register setup.
6808
6809 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6810
6811         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
6812         (output_return): Do not test for the presence of the 'unimp' insn.
6813         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
6814         as predicates instead of custom ones.  Return raw strings when
6815         possible.
6816         (output_sibcall): Likewise.  Concatenate strings.
6817         (output_ubranch): Remove kludge for TurboSPARC.
6818         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
6819         (output_v9branch): Likewise.
6820         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
6821         <#>: Set sparc_indent_opcode if the delay slot is filled.
6822         <(>: Likewise.
6823         <)>: New operand to emit the displacement from the saved PC on return.
6824         <@>: Remove.
6825         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
6826         (ASM_OUTPUT_OPCODE): New macro.
6827         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
6828         * config/sparc/sparc.md (normal_branch, inverted_branch,
6829         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
6830         inverted_fpe_branch): Adjust call to output_cbranch.
6831         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
6832         call to output_v9branch.
6833         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
6834         (output_v9branch): Likewise.
6835
6836 2004-09-08  Devang Patel  <dpatel@apple.com>
6837
6838         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
6839         -segs_read_only_addr and -segs_read_write_addr.
6840         (WORD_SWITCH_TAKES_ARG): Same.
6841         (LINK_SPEC): Same.
6842         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
6843         -segs_read_write_addr.
6844
6845 2004-09-08  Richard Henderson  <rth@redhat.com>
6846
6847         * function.c (reference_callee_copied): New.
6848         (assign_parm_setup_reg): Use it.
6849         * calls.c (initialize_argument_information): Likewise.
6850         (emit_library_call_value_1): Likewise.
6851         * function.h (reference_callee_copied): Declare.
6852
6853         * target.h (struct gcc_target): Add callee_copies.
6854         * target-def.h (TARGET_CALLEE_COPIES): New.
6855         (TARGET_PASS_BY_REFERENCE): Update default.
6856         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6857         * targhooks.c (hook_callee_copies_named): New.
6858         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
6859         hook_pass_by_reference_false.
6860         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
6861         * targhooks.h: Update decls.
6862         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
6863         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6864         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
6865         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
6866         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6867         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
6868         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6869         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
6870         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6871         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
6872         (mips_callee_copies): New.
6873         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6874         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
6875         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6876         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
6877         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6878         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
6879         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6880         * config/sh/sh.c (sh_callee_copies): New.
6881         (TARGET_CALLEE_COPIES): New.
6882         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6883         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
6884         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6885         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
6886         for FUNCTION_ARG_CALLEE_COPIES.
6887         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
6888
6889 2004-09-08  Devang Patel  <dpatel@apple.com>
6890
6891         * tree-if-conv.c (find_phi_replacement_condition): Return true
6892         edge block.
6893         (replace_phi_with_cond_modify_expr): Select conditional expr args
6894         based on true edge basic block.
6895
6896 2004-09-08  Jan Hubicka  <jh@suse.cz>
6897
6898         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
6899         variables being alias set.
6900
6901 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6902
6903         * final.c (shorten_branches, final, get_insn_template,
6904         output_alternate_entry_point, final_scan_insn, alter_subreg,
6905         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
6906         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
6907         * fix-header.c (lookup_std_proto): Likewise.
6908         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
6909         verify_local_live_at_start, update_life_info, mark_reg,
6910         calculate_global_regs_live, allocate_reg_life_data,
6911         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
6912         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
6913         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
6914         * fold-const.c (force_fit_type, div_and_round_double,
6915         may_negate_without_overflow_p, int_const_binop, const_binop,
6916         size_binop, size_diffop, fold_convert_const, fold_convert,
6917         invert_tree_comparison, swap_tree_comparison,
6918         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
6919         range_binop, make_range, fold_cond_expr_with_comparison,
6920         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
6921         fold_abs_const, fold_not_const, fold_relational_const, round_up,
6922         round_down): Likewise.
6923         * function.c (find_function_data, assign_stack_temp_for_type,
6924         instantiate_virtual_regs_lossage, aggregate_value_p,
6925         assign_parm_find_entry_rtl, assign_parm_setup_block,
6926         expand_function_start, expand_function_end, keep_stack_depressed,
6927         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
6928
6929 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
6930
6931         * Makefile.in (tree-loop-linear.o): Added.
6932         (OBJS-common): Add tree-loop-linear.o
6933         * common.opt: New flag, ftree-loop-linear.
6934         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
6935         * tree-flow.h: Add prototype for linear_transform_loops.
6936         * tree-optimize.c: Add linear transform after vectorization.
6937         * tree-pass.h: Add struct pass_linear_transform.
6938         * tree-ssa-loop.c: Add pass_linear_transform.
6939         * tree-loop-linear.c: New file.
6940         * lambda-code.c: gcc_assertify.
6941         (gcc_loop_to_lambda_loop): Handle all exit tests.
6942         Handle case where we have (invariant >= induction var).
6943         (find_induction_var_from_exit_cond): Ditto.
6944
6945 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
6946
6947         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
6948         memory tag is call clobbered, so are its aliases.
6949         (group_aliases): When two memory tags being grouped, if one is
6950         call clobbered, so are the other and its aliases.
6951         (add_may_alias): Remove call-clobbering stuff.
6952         (replace_may_alias): Likewise.
6953         (merge_pointed_to_info): Merge pt_global_mem
6954
6955 2004-09-08  Jan Hubicka  <jh@suse.cz>
6956
6957         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
6958         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
6959         (cgraph_expand_function): Remove stale cgraph edges of currently
6960         compiled function; fix non-unit-at-a-time code copying function
6961         node for later reuse.
6962
6963 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6964
6965         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
6966         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
6967         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
6968         (vec_gc_free, vec_heap_free): New.
6969         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
6970         (DEF_VEC_P): Add allocator argument. Adjust.
6971         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
6972         (DEF_VEC_O): Add allocator argument. Adjust.
6973         (VEC(free)): New.
6974
6975         * tree.h (tree): Define a GC'd vector.
6976         * lamba-code.c (lambda_loop): Likewise.
6977         * value-prof.h (histogram_value): Likewise.
6978
6979 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6980
6981         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
6982         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
6983         gen_lowpart_common, gen_highpart, gen_highpart_mode,
6984         subreg_highpart_offset, operand_subword, operand_subword_force,
6985         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
6986         set_mem_alias_set, change_address_1, verify_rtx_sharing,
6987         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
6988         try_split, add_insn_after, add_insn_before, remove_insn,
6989         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
6990         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
6991         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
6992         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
6993         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
6994         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
6995         record_path_before_1, check_path_after_1, check_path_after): Likewise.
6996         * except.c (gen_eh_region, resolve_one_fixup_region,
6997         remove_unreachable_regions, convert_from_eh_region_ranges_1,
6998         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
6999         connect_post_landing_pads, sjlj_emit_function_exit,
7000         remove_exception_handler_label, remove_eh_handler,
7001         reachable_next_level, collect_one_action_chain,
7002         output_function_exception_table): Likewise.
7003         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
7004         optimize_save_area_alloca, allocate_dynamic_stack_space,
7005         probe_stack_range, hard_function_value): Likewise.
7006         * expmed.c (mode_for_extraction, store_bit_field,
7007         store_fixed_bit_field, extract_bit_field, expand_shift,
7008         expand_mult_const, expand_mult, choose_multiplier,
7009         expand_mult_highpart, expand_divmod, emit_store_flag,
7010         do_cmp_and_jump): Likewise.
7011         * expr.c (convert_move, convert_modes, move_by_pieces,
7012         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
7013         move_block_from_reg, gen_group_rtx, emit_group_load,
7014         emit_group_move, emit_group_store, use_reg, use_regs,
7015         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
7016         emit_move_insn, emit_move_insn_1, emit_push_insn,
7017         expand_assignment, store_expr, count_type_elements,
7018         store_constructor, store_field, safe_from_p, expand_var,
7019         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
7020
7021 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7022
7023         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
7024         gcc_assert and gcc_unreachable.
7025         * ddg.c (create_ddg_dependence, add_deps_for_def,
7026         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
7027         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
7028         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
7029         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
7030         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
7031         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
7032         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
7033         dataflow_set_copy, hybrid_search, diagnostic.c,
7034         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
7035         * dojump.c (do_jump): Likewise.
7036         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
7037         compute_dom_fast_query, calculate_dominance_info,
7038         free_dominance_info, get_immediate_dominator,
7039         set_immediate_dominator, get_dominated_by,
7040         redirect_immediate_dominators, nearest_common_dominator,
7041         dominated_by_p, verify_dominators, recount_dominator,
7042         iterate_fix_dominators, add_to_dominance_info,
7043         delete_from_dominance_info): Likewise.
7044         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
7045         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
7046         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
7047         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
7048         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
7049         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
7050         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
7051         output_call_frame_info, output_loc_operands, build_cfa_loc,
7052         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
7053         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
7054         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
7055         splice_child_die, attr_checksum, same_dw_val_p,
7056         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
7057         unmark_dies, value_format, output_loc_list, output_die,
7058         output_pubnames, output_aranges, base_type_die, is_base_type,
7059         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
7060         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
7061         field_byte_offset, add_data_member_location_attribute,
7062         add_const_value_attribute, rtl_for_decl_location,
7063         add_location_or_const_value_attribute, add_byte_size_attribute,
7064         add_bit_offset_attribute, add_bit_size_attribute,
7065         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
7066         decl_start_label, gen_formal_parameter_die,
7067         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
7068         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
7069         force_decl_die, force_type_die, gen_decl_die,
7070         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
7071         dwarf2out_finish): Likewise.
7072
7073 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
7074
7075         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
7076         * builtins.c: Include tree-mudflap.h.
7077
7078 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
7079
7080         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
7081         force operand 0.0 into register in XFmode. Also do not force
7082         operand 0.0 into register if !TARGET_CMOVE.
7083         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
7084         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
7085         implement ftst x87 instruction.
7086         (*fp_jcc_7): New insn pattern. Change corresponding split
7087         pattern to handle "general_operand" instead of
7088         "nonimmediate_operand".
7089
7090 2004-09-08  Ben Elliston  <bje@au.ibm.com>
7091
7092         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
7093
7094 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
7095
7096         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
7097         generated from standard va_arg expansion.
7098         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
7099         marked nodes.
7100         (mf_varname_tree, mf_file_function_line_tree): Add some support
7101         for column numbers if compiled with USE_MAPPED_LOCATION.
7102
7103 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
7104
7105         * c-decl.c (groktypename_in_parm_context): Remove function.
7106         * c-tree.h (groktypename_in_parm_context): Remove prototype.
7107
7108 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
7109
7110         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
7111         * c-parse.in: Include c-common.h instead of objc-act.h.
7112         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
7113         myparms, myparm): Remove %type declarations.
7114         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
7115         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
7116         declarations.
7117         (objc_inherit_code, objc_public_flag): Remove.
7118         (typespec_nonreserved_nonattr): Call
7119         objc_get_protocol_qualified_type() instead of get_static_reference()
7120         and get_protocol_reference().
7121         (stmt_nocomp): Call grokparm() on @catch parameter.
7122         (objcdef): Move semantic action to objc_finish_implementation().
7123         (classdef): Move semantic action to objc_start_class_interface(),
7124         objc_continue_interface(), objc_finish_interface(),
7125         objc_start_class_implementation(), objc_continue_implementation(),
7126         objc_start_category_interface() and
7127         objc_start_category_implementation().
7128         (protocoldef): Move semantic actions to objc_start_protocol() and
7129         objc_finish_interface().
7130         (ivar_decl_list): Remove nonterminal.
7131         (visibility_spec): Move semantic actions to objc_set_visibility().
7132         (ivar_decls): Remove assignment to $$.
7133         (ivar_decl): Rephrase in terms of component_decl; call
7134         objc_add_instance_variable().
7135         (ivars, ivar_declarator): Remove nonterminals.
7136         (opt_semi): New nonterminal.
7137         (methodtype): Remove semantic actions.
7138         (methoddef): Move semantic actions to objc_set_method_type(),
7139         objc_start_method_definition() and objc_finish_method_definition().
7140         (methodproto): Move semantic actions to objc_set_method_type() and
7141         objc_add_method_declaration().
7142         (methoddecl): Use objc_typename instead of typename; move semantic
7143         actions to objc_build_method_signature().
7144         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
7145         (optparmlist): Express in terms of optparms and optellipsis.
7146         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
7147         nonterminals.
7148         (keyworddecl): Use objc_typename instead of typename.
7149         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
7150         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
7151
7152 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
7153
7154         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
7155         (MD_FALLBACK_FRAME_STATE_FOR): Update.
7156         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
7157         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
7158         (MD_FROB_UPDATE_CONTEXT): Remove default.
7159         (uw_update_context_1): Instead #ifdef invocation.
7160         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
7161         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
7162         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
7163         (MD_UNWIND_SUPPORT): Undefine this instead.
7164         * config/i386/gnu.h: Likewise.
7165         * config/alpha/linux-unwind.h: New file, macro converted to
7166         function, extracted from..
7167         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
7168         (MD_UNWIND_SUPPORT): Define.
7169         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
7170         * config/i386/linux-unwind.h, config/i386/linux.h,
7171         config/i386/linux64.h: Likewise.
7172         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
7173         MD_HANDLE_UNWABI too.
7174         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
7175         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
7176         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
7177         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
7178         * config/sparc/linux-unwind.h, config/sparc/linux.h,
7179         config/sparc/linux64.h: Likewise.
7180         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
7181         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
7182         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
7183         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
7184         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
7185
7186 2004-09-07  Jan Hubicka  <jh@suse.cz>
7187
7188         * cse.c (fold_rtx):  Avoid building of
7189         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
7190
7191         * tree-ssa-pre.c (grand_bitmap_obstack): New.
7192         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
7193         (init_pre): Initialize obstack.
7194         (fini_pre): Free obstack.
7195
7196 2004-09-07  David Daney  <ddaney@avtrex.com>
7197
7198         * config.gcc: Added support for --with-divide=[breaks|traps] for
7199         mips targets.
7200         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
7201         (TARGET_DIVIDE_TRAPS): New macro.
7202         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
7203         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
7204         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
7205         GENERATE_DIVIDE_TRAPS.
7206         (mips_output_division): Emit conditional trap if
7207         GENERATE_DIVIDE_TRAPS is set.
7208         * doc/install.texi: Document --with-divide.
7209         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
7210
7211 2004-09-07  Caroline Tice  <ctice@apple.com>
7212
7213         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
7214         EDGE_CROSSING, to flags test case.
7215
7216 2004-09-07  Jan Hubicka  <jh@suse.cz>
7217
7218         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
7219         class too.
7220
7221 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7222
7223         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
7224         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
7225         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
7226         or gcc_unreachable.
7227         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
7228         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
7229         alloc_aux_for_edges, free_aux_for_edges): Likewise.
7230         * cfgcleanup.c (try_forward_edges,
7231         merge_blocks_move_predecessor_nojumps,
7232         merge_blocks_move_successor_nojumps): Likewise.
7233         * cfgexpand.c (expand_gimple_cond_expr,
7234         expand_gimple_tailcall): Likewise.
7235         * cfghooks.c (duplicate_block): Likewise.
7236         * cfglayout.c (record_effective_endpoints,
7237         insn_locators_initialize, change_scope, fixup_reorder_chain,
7238         verify_insn_chain, fixup_fallthru_exit_predecessor,
7239         duplicate_insn_chain, cfg_layout_finalize): Likewise.
7240         * cfgloopanal.c (check_irred): Likewise.
7241         * cfgloop.c (superloop_at_depth, flow_loops_free,
7242         flow_loop_entry_edges_find, flow_loops_find,
7243         flow_loop_outside_edge_p, get_loop_body,
7244         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
7245         get_loop_exit_edges, num_loop_branches, cancel_loop,
7246         verify_loop_structure): Likewise.
7247         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
7248         duplicate_loop_to_header_edge, create_preheader,
7249         create_loop_notes): Likewise.
7250         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
7251         edirect_branch_edge, force_nonfallthru_and_redirect,
7252         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
7253         commit_edge_insertions, commit_edge_insertions_watch_calls,
7254         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
7255         cfg_layout_redirect_edge_and_branch_force,
7256         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
7257         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
7258         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
7259         cgraph_varpool_node): Likewise.
7260         * cgraphunit.c (cgraph_finalize_function,
7261         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
7262         cgraph_expand_function, cgraph_remove_unreachable_nodes,
7263         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
7264         cgraph_mark_inline, cgraph_expand_all_functions,
7265         cgraph_build_static_cdtor): Likewise.
7266         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
7267         simplify_logical, distribute_notes, insn_cuid): Likewise.
7268         * conflict.c (conflict_graph_add, print_conflict): Likewise.
7269         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
7270         coverage_checksum_string): Likewise.
7271         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
7272         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
7273         cse_cc_succs, cse_condition_code_reg): Likewise.
7274         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
7275         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
7276         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
7277         cselib_record_set): Likewise.
7278
7279 2004-09-07  Jan Hubicka  <jh@suse.cz>
7280
7281         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
7282
7283 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7284
7285         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
7286         fold_convert.
7287         (fold_builtin_strpbrk): Likewise.
7288         * expr.c (array_ref_low_bound): Likewise.
7289         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
7290         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
7291         * tree-sra.c (generate_element_zero): Likewise.
7292         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7293         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
7294         add_old_iv_candidates, add_iv_candidates): Likewise.
7295         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
7296
7297 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7298
7299         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
7300         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
7301         c_expand_expr, boolean_increment, nonnull_check_p,
7302         check_function_arguments_recurse, fold_offsetof_1): Likewise.
7303         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
7304         builtin_define_type_max): Likewise.
7305         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
7306         implicit_decl_warning, builtin_function, build_compound_literal,
7307         complete_array_type, grokdeclarator, get_parm_info,
7308         start_function, store_parm_decls_oldstyle,
7309         c_write_global_declarations): Likewise.
7310         * c-format.c (get_constant, decode_format_attr,
7311         maybe_read_dollar_number, get_flag_spec, check_format_arg,
7312         check_format_types, format_type_warning,
7313         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
7314         init_dynamic_diag_info, handle_format_attribute): Likewise.
7315         * c-gimplify.c (push_context, pop_context, finish_bc_block):
7316         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
7317         * c-objc-common.c (c_tree_printer): Likewise.
7318         * c-pch.c (pch_init): Likewise.
7319         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
7320         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
7321         * c-typeck.c (c_incomplete_type_error, composite_type,
7322         common_pointer_type, common_type, same_translation_unit_p,
7323         tagged_types_tu_compatible_p, finish_init, pop_init_level,
7324         set_designator, set_nonincremental_init_from_string,
7325         process_init_element, c_finish_if_stmt): Likewise.
7326         * caller-save.c (init_caller_save, save_call_clobbered_regs,
7327         insert_restore, insert_save, insert_one_insn): Likewise.
7328         * calls.c (emit_call_1, compute_argument_block_size,
7329         precompute_arguments, expand_call, emit_library_call_value_1,
7330         store_one_arg): Likewise.
7331
7332 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7333
7334         * configure.ac (enable-checking): Add release option. Reorganize
7335         to avoid repetition.
7336         * configure: Rebuilt.
7337         * doc/install.texi (enable-checking): Amend documentation.
7338
7339 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7340
7341         PR bootstrap/17313
7342         * Makefile.in (specs.ready): Depend on cc1$(exeext).
7343
7344 2004-09-06  James E Wilson  <wilson@specifixinc.com>
7345
7346         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
7347         movdf_hardfloat_32bit): Split fG into two alternatives.
7348         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
7349
7350         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
7351
7352 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7353
7354         * final.c (output_in_slot): Delete.
7355         (final_scan_insn): Revert 2004-09-03 change.
7356         (output_asm_insn): Likewise.
7357         * config/sparc/sparc.c (output_return): Likewise.
7358         (output_sibcall): Likewise.
7359
7360 2004-09-06  Jan Hubicka  <jh@suse.cz>
7361
7362         * loop.c (loop_dump_aux): Do not print RTL when not available.
7363         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
7364         frontend specific type nodes.
7365         (produce_memory_decl_rtl): Break out from ...
7366         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
7367         (get_computation_at): Avoid random tree sharing.
7368         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
7369
7370 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
7371
7372         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
7373         unnecessary commands.
7374
7375 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
7376
7377         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
7378         (bitmap.o): Likewise.
7379
7380 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
7381
7382         Unify the management of RTL and tree-level dump files.
7383
7384         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
7385         Don't print function name to the dump file, the pass manager
7386         would do this for us. Add code from the top of
7387         rest_of_compilation, up to the initial RTL dump.
7388         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
7389         close the DFI_sibling dump file.
7390         (rest_of_compilation): Don't do that here.  Remove code up to the
7391         initial RTL dump.
7392         (init_optimization_passes): Remove.
7393         (pass_rest_of_compilation): Change pass name to NULL.
7394         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
7395         Do not call init_optimization_passes.
7396         * toplev.h (init_optimization_passes): Remove.
7397
7398         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7399         finish_graph_dump_file): Remove SUFFIX parameter.
7400         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
7401         finish_graph_dump_file): Likewise.
7402
7403         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
7404         * cfgexpand.c (pass_expand): Adjust.
7405         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
7406         * passes.c (pass_rest_of_compilation): Adjust.
7407         * predict.c (pass_profile): Adjust.
7408         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
7409         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
7410         pass_split_crit_edges, pass_warn_function_return): Adjust.
7411         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
7412         * tree-dfa.c (pass_referenced_vars): Adjust.
7413         * tree-eh.c (pass_lower_eh): Adjust.
7414         * tree-if-conv.c (pass_build_ssa): Adjust.
7415         * tree-into-ssa.c (pass_build_ssa): Adjust.
7416         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7417         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7418         * tree-nrv.c (pass_nrv): Adjust.
7419         * tree-optimize.c (pass_gimple, pass_all_optimizations,
7420         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
7421         pass_init_datastructures): Adjust.
7422         * tree-outof-ssa.c (pass_del_ssa): Adjust.
7423         * tree-profile.c (pass_tree_profile): Adjust.
7424         * tree-sra.c (pass_sra): Adjust.
7425         * tree-ssa-alias.c (pass_may_alias): Adjust.
7426         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
7427         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
7428         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
7429         * tree-ssa-dom.c (pass_dominator): Adjust.
7430         * tree-ssa-dse.c (pass_dse): Adjust.
7431         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
7432         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
7433         * tree-ssa-loop-ch.c (pass_ch): Adjust.
7434         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
7435         pass_loop_done, pass_complete_unroll, pass_iv_canon,
7436         pass_iv_optimize, pass_vectorize): Adjust.
7437         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
7438         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
7439         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
7440         pass_late_warn_uninnitialized): Adjust.
7441         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
7442
7443         * Makefile.in (tree-dump.o): Add new dependencies.
7444         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
7445         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
7446         Likewise.
7447         * toplev.c (dump_file_name): New.
7448         * tree-dump.c (dump_enable_all): Add LETTER parameter.
7449         (struct dump_file_info): Add NUM and LETTER fields.
7450         (dump_files): Adjust and add RTL dump files.
7451         (dump_register): Add NUM and LETTER fields.
7452         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
7453         (dump_begin): Use get_dump_file_name.
7454         (dump_switch_p_1): Adjust call to dump_enable_all.
7455         * tree-dump.h (dump_register): Adjust prototype.
7456         * tree-optimize.c (register_one_dump_file): Take dump file index.
7457         Support flags for RTL dumps.
7458         (register_dump_files): Fill in NUM field of struct dump_file_info.
7459         Track properties both when the gate is executed and when it is not.
7460         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
7461         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
7462         dumps of RTL.
7463         * tree-pass.h (dump_file_name): New.
7464         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
7465         New.
7466
7467         * Makefile.in (passes.o): Add new dependencies.
7468         * passes.c (struct dump_file_info, enum dump_file_index,
7469         dump_file_tbl, init_optimization_passes): Remove.
7470         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
7471         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
7472         dump_enabled_p.
7473         (finish_optimization_passes): Update finish_graph_dump_file loop.
7474         (enable_rtl_dump_file): Remove.
7475         * tree-dump.c (dump_files): Adjust and add RTL dump files.
7476         (enable_rtl_dump_file): Add here.
7477         * tree.h (enum tree_dump_index): Add RTL dump file indices.
7478         * doc/invoke.texi (Debugging options): Document new RTL debugging
7479         options.  Update.
7480
7481 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7482
7483         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
7484         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
7485         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
7486         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
7487         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
7488         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
7489         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
7490         vec.h: Fix comment formatting.
7491
7492 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7493
7494         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
7495         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
7496         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
7497         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
7498         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
7499         tree-ssa-loop-niter.c, tree-ssa-operands.c,
7500         tree-ssa-operands.h, tree-ssa-propagate.c,
7501         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
7502         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
7503
7504 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
7505
7506         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
7507         vectorizer is enabled.
7508
7509 2004-09-05  Andreas Jaeger  <aj@suse.de>
7510
7511         * tree-if-conv.c: Spell check comments and clean up whitespace.
7512
7513 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7514
7515         * tree-ssa-loop-ivopts.c: New file.
7516         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
7517         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
7518         target_pres_cost, target_spill_cost): Declare.
7519         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
7520         spill_cost): Renamed to ...
7521         (target_avail_regs, target_res_regs, target_small_cost,
7522         target_pres_cost, target_spill_cost): ... and exported.
7523         (init_set_costs, global_cost_for_size): Work with renamed variables.
7524         * common.opt (flag_ivopts): New flag.
7525         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
7526         REF_ORIGINAL.
7527         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
7528         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
7529         generating SSA form.
7530         (force_gimple_operand): New function.
7531         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
7532         * tree-cfg.c (stmt_bsi): New function.
7533         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7534         PARAM_IV_MAX_CONSIDERED_USES): New.
7535         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
7536         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
7537         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
7538         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
7539         * tree-nested.c (build_addr): Export.
7540         * tree-optimize.c (init_tree_optimization_passes): Add
7541         pass_iv_optimize.
7542         * tree-pass.h (pass_iv_optimize): Declare.
7543         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
7544         IMAGPART_EXPR.
7545         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
7546         as a phi node argument.
7547         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
7548         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
7549         functions.
7550         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
7551         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
7552         pass_iv_optimize): New pass.
7553         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
7554         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
7555         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
7556         * tree.h (REF_ORIGINAL): New macro.
7557         (build_int_cst_type, unsigned_type_for, zero_p,
7558         cst_and_fits_in_hwi, build_addr): Declare.
7559         * doc/invoke.texi (-fivopts): Document.
7560         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7561         PARAM_IV_MAX_CONSIDERED_USES): Document.
7562         * doc/passes.texi: Document induction variable optimizations pass.
7563
7564 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7565
7566         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
7567         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
7568         * c-common.c (c_common_attribute_table): Accept parameters to
7569         sentinel attribute.
7570         (check_function_sentinel, handle_sentinel_attribute): Likewise.
7571         * doc/extend.texi: Update accordingly.
7572
7573 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7574
7575         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
7576         New.
7577         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
7578         attribute.
7579         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
7580         New functions.
7581         (c_common_attribute_table): Add `sentinel' attribute.
7582         (check_function_arguments): Handle `sentinel' attribute.
7583         * doc/extend.texi: Document `sentinel' attribute.
7584
7585 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
7586
7587         * configure: Regenerated.
7588
7589 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7590
7591         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
7592
7593         * tree.c (save_expr): No longer TREE_READONLY.
7594
7595 2004-09-04  Jan Hubicka  <jh@suse.cz>
7596
7597         * passes.c (rest_of_clean_state):  Fix merge conflict made during
7598         commiting the patch.
7599
7600 2004-09-04  Jan Hubicka  <jh@suse.cz>
7601
7602         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
7603
7604 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7605
7606         * doc/md.texi (shift patterns): New anchor.  Add reference to
7607         TARGET_SHIFT_TRUNCATION_MASK.
7608         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
7609         * target.h (shift_truncation_mask): New target hook.
7610         * targhook.h (default_shift_truncation_mask): Declare.
7611         * targhook.c (default_shift_truncation_mask): Define.
7612         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
7613         (TARGET_INITIALIZER): Include it.
7614         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
7615         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
7616         reject all out-of-range values.  Fix sign-extension code for modes
7617         whose width is smaller than HOST_BITS_PER_WIDE_INT.
7618         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
7619         (expand_superword_shift, expand_subword_shift): Likewise.
7620         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
7621         (expand_binop): Use them to implement double-word shifts.
7622         * config/arm/arm.c (arm_shift_truncation_mask): New function.
7623         (TARGET_SHIFT_TRUNCATION_MASK): Define.
7624
7625 2004-09-04  Jan Hubicka  <jh@suse.cz>
7626
7627         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
7628         (mix): New macro copied from hashtab.c
7629         (iterative_hash_hashval_t, iterative_hash_pointer,
7630         iterative_hash_host_wide_int): New functions based on hashtab.c
7631         implementation.
7632
7633 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7634
7635         * config/mips/mips.md (mask): New mode attribute.
7636         (zero_extendsidi2): Add memory alternative.
7637         (*zero_extendsidi2_mem): Delete.
7638         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
7639         memory_operand in the TARGET_MIPS16 check.
7640         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
7641         Redefine using :GPR and :SHORT.
7642         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
7643
7644 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
7645
7646         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
7647         using rint_optab.
7648         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
7649         expand_builtin_mathfn.
7650         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
7651         btrunc?f patterns for btrunc_optab. Implement rint_optab using
7652         rint?f patterns.
7653         * optabs.c (init_optabs): Initialize rint_optab.
7654         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
7655         Add new OTI_rint.
7656         (btrunc_optab): Rename macro from trunc_optab.
7657         (rint_optab): Define corresponding macro.
7658
7659         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
7660         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
7661
7662         * config/i386/i386-protos.h (emit_i387_cw_initialization):
7663         Change prototype. Add new int parameter.
7664         * config/i386/i386.c (emit_i387_cw_initialization):
7665         Handle new rounding modes.
7666
7667         * config/i386/i386.h (enum fp_cw_mode): Delete.
7668         (MODE_NEEDED): Handle new rounding modes.
7669         (EMIT_MODE_SET): Change condition to handle new rounding modes.
7670
7671         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
7672         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
7673         represent different rounding modes of frndint insn.
7674         (type): Add frndint type.
7675         (i387, length, memory): Handle this type.
7676         (i387_cw): New attribute definition.
7677         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
7678         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
7679         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
7680         Add "i387_cw" attribute defined to "trunc".
7681         (x86_fnstcw_1): Remove comment.
7682         (*frndintxf2): Rename insn definition to frndintxf2. Move
7683         insn definition near rint?f2 expanders.
7684         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
7685         rintf and rintl built-ins as inline x87 intrinsics.
7686         (frndintxf2_floor): New pattern to implement floor rounding
7687         mode with frndint x87 instruction.
7688         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
7689         floorf and floorl built-ins as inline x87 intrinsics.
7690         (frndintxf2_ceil): New pattern to implement ceil rounding
7691         mode with frndint x87 instruction.
7692         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
7693         ceilf and ceill built-ins as inline x87 intrinsics.
7694         (frndintxf2_trunc): New pattern to implement trunc rounding
7695         mode with frndint x87 instruction.
7696         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
7697         truncf and truncl built-ins as inline x87 intrinsics.
7698         (frndintxf2_mask_pm): New pattern to implement rounding
7699         mode with exceptions with frndint x87 instruction.
7700         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
7701         implement nearbyint, nearbyintf and nearbyintl built-ins as
7702         inline x87 intrinsics.
7703
7704 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7705
7706         * config/mips/mips.md (SHORT): New mode macro.
7707         (size): New mode attribute.
7708         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
7709         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
7710         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
7711         !ISA_HAS_SEB_SEH.
7712         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
7713         *extend[qh]isi2_hw patterns and extending them to di.
7714         (extendqihi2): Implement as define_insn_and_split that produces
7715         extendqisi2 after reload.
7716
7717 2004-09-03  Devang Patel  <dpatel@apple.com>
7718
7719         * Makefile.in (OBJS-common): Add tree-if-conv.o
7720         (tree-if-conv.o): New rule.
7721         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
7722         (get_loop_body_in_bfs_order): New.
7723         * cfgloop.h (get_loop_body_in_bfs_order): New.
7724         * tree-flow.h (enum move_pos): Move here from ..
7725         * tree-ssa-loop-im.c (enum move_pos): here.
7726         (movement_possibility): Make externally visible.
7727         * tree-optimize.c (init_tree_optimization_passes): New entry for
7728         if conversion pass.
7729         * tree-pass.h (pass_if_conversion): New.
7730         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
7731         * tree-if-conv.c: New file.
7732         * doc/passes.texi: Document tree if-conversion pass.
7733         * doc/tree-ssa.texi: Same.
7734
7735 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
7736
7737         PR target/14925:
7738         Makefile.in (LIB2ADDEHSTATIC): New.
7739         (LIB2ADDEHSHARED): New.
7740         (LIBUNWIND): New.
7741         (LIBUNWINDDEP): New.
7742         (SHLIBUNWIND_LINK): New.
7743         (SHLIBUNWIND_INSTALL): New.
7744         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
7745         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
7746         (clean): Remove libunwind*
7747         (stage1-start): Remove and copy stage1/libunwind*.
7748         (stage2-start): Remove and copy stage2/libunwind*.
7749         (stage3-start): Remove and copy stage3/libunwind*.
7750         (stage4-start): Remove and copy stage4/libunwind*.
7751         (stageprofile-start): Remove and copy stageprofile/libunwind*.
7752         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
7753
7754         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
7755         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
7756         tmake_file if --with-system-libunwind isn't used.
7757
7758         * config/ia64/t-glibc-libunwind: New file.
7759         * config/t-libunwind-elf: Likewise.
7760         * unwind-compat.c: Likewise.
7761         * unwind-compat.h: Likewise.
7762         * unwind-dw2-fde-compat.c: Likewise.
7763
7764         * config/ia64/t-glibc (LIB2ADDEH): Updated.
7765         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
7766
7767         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
7768         aliases if needed.
7769         * unwind-dw2-fde-glibc.c: Likewise.
7770         * unwind-dw2.c: Likewise.
7771
7772         * config/t-libunwind (LIB2ADDEH): Updated.
7773         (LIB2ADDEHSTATIC): New.
7774         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
7775         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
7776
7777         * configure.ac: Change --enable-libunwind-exceptions to
7778         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
7779         * configure: Regenerated.
7780         * config.in: Updated.
7781
7782         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
7783         above and mention --with-system-libunwind.
7784         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
7785         removed in gcc 3.4.3 and later.
7786
7787         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
7788         USE_LIBUNWIND_EXCEPTIONS is defined.
7789
7790         * mklibgcc.in: Support libunwind.
7791
7792 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
7793
7794         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
7795         m_NOCONA.
7796
7797 2004-09-03  Richard Henderson  <rth@redhat.com>
7798
7799         PR middle-end/9997
7800         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
7801         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
7802         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
7803         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
7804         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
7805         resize_stack_vars_conflict, add_stack_var_conflict,
7806         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
7807         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
7808         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
7809         expand_one_static_var, expand_one_hard_reg_var,
7810         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
7811         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
7812         (expand_used_vars): Rewrite.
7813         * Makefile.in (cfgexpand.o): Update dependencies.
7814
7815 2004-09-04  Jan Hubicka  <jh@suse.cz>
7816
7817         * cfg.c (free_edge): Use ggc_free.
7818         (expunge_block): Use ggc_free.
7819         * passes.c (rest_of_clean_state): Free after compilation.
7820         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
7821         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
7822
7823 2004-09-03  James E Wilson  <wilson@specifixinc.com>
7824
7825         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
7826         DECL_EXTERNAL check.
7827
7828 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7829
7830         * final.c (output_in_slot): New global variable.
7831         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
7832         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
7833         'output_in_slot' before invoking output_asm_insn.
7834         (output_asm_insn): Add a space after the tab if 'output_in_slot'
7835         is set.
7836         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
7837         final_scan_insn.
7838         (output_sibcall): Likewise.
7839
7840 2004-09-03  Jan Hubicka  <jh@suse.cz>
7841
7842         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
7843         * tree-ssanames (init_ssanames): Likewise.
7844
7845 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
7846
7847         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
7848         objc_declare_protocols, objc_start_protocol,
7849         objc_start_class_interface, objc_start_category_interface,
7850         objc_continue_interface, objc_finish_interface,
7851         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
7852         objc_start_class_implementation, objc_start_category_implementation,
7853         objc_continue_implementation, objc_finish_implementation,
7854         objc_add_method_declaration, objc_start_method_definition,
7855         objc_finish_method_definition, objc_build_keyword_decl,
7856         objc_build_method_signature, objc_build_encode_expr,
7857         objc_build_protocol_expr, objc_build_selector_expr,
7858         objc_build_message_expr, objc_build_string_object,
7859         objc_get_class_reference, objc_get_protocol_qualified_type,
7860         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
7861
7862 2004-09-03  James E Wilson  <wilson@specifixinc.com>
7863
7864         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
7865
7866         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
7867         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
7868         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
7869         (mips_recip1_<fmt>): Use frdiv1 type.
7870         (mips_recip2_<fmt>): Use frdiv2 type.
7871         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
7872         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
7873         and frsqrt1.
7874         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
7875
7876 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
7877
7878         * reload.c (find_reloads): Swap operand_loc pointers for
7879         find_dummy_reload if we have swapped two operands.
7880
7881 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
7882
7883         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
7884         to get the tablejump-insn before the jump-table label.
7885
7886 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
7887
7888         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
7889         objc_declare_protocols, objc_build_message_expr,
7890         objc_finish_message_expr, objc_build_selector_expr,
7891         objc_build_protocol_expr, objc_build_encode_expr,
7892         objc_build_string_object, objc_get_protocol_qualified_type,
7893         objc_get_class_reference, objc_get_class_ivars,
7894         objc_start_class_interface, objc_start_category_interface,
7895         objc_start_protocol, objc_continue_interface, objc_finish_interface,
7896         objc_start_class_implementation, objc_start_category_implementation,
7897         objc_continue_implementation, objc_finish_implementation,
7898         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
7899         objc_add_method_declaration, objc_start_method_definition,
7900         objc_finish_method_definition, objc_add_instance_variable,
7901         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
7902         objc_finish_try_stmt, objc_begin_catch_clause,
7903         objc_finish_catch_clause, objc_build_finally_clause,
7904         objc_build_synchronized, objc_static_init_needed_p,
7905         objc_generate_static_init_call): New prototypes.
7906
7907 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
7908
7909         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
7910         is only one reg.
7911         (ia64_function_value): Ditto.
7912
7913 2004-09-03  Jan Beulich  <jbeulich@novell.com>
7914
7915         * config.gcc: Resurrect NetWare as a target. Handle special case of
7916         Novell linker to be used (specified through --with-ld=) and threading
7917         model of either Posix (default) or NKS.
7918         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
7919         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
7920         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
7921         * config/i386/netware.c, config/i386/netware.h: New.
7922         * config/i386/nwld.c, config/i386/nwld.h: New.
7923         * config/i386/netware-crt0.c: New.
7924         * config/i386/netware-libgcc.c: New.
7925         * config/i386/netware-libgcc.def: New.
7926         * config/i386/netware-libgcc.exp: New.
7927         * config/i386/t-netware, config/i386/t-nwld: New.
7928         * gthr-nks.h: New.
7929         * doc/install.texi: Document NKS threading model.
7930
7931 2004-09-03  Jan Beulich  <jbeulich@novell.com>
7932
7933         PR c/7054
7934         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
7935         * tree.h (initial_max_fld_align): Declare
7936         * stor-layout.c (initial_max_fld_align): Define and initialize.
7937         (maximum_field_alignment): Initialize to the same value.
7938         * common.opt: Add -fpack-struct= variant of switch.
7939         * opts.c: Handle -fpack-struct= variant of switch.
7940         * c-pragma.c: Change #pragma pack() handling so that it becomes
7941         compatible to other compilers: accept individual 'push' argument,
7942         make final pop restore (command line) default, correct interaction
7943         of push/pop and sole specification of a new alignment (so that the
7944         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
7945         to #pragma pack(push, <n>).
7946         * doc/extend.texi: New node "Structure-Packing Pragmas" under
7947         "Pragmas", describing #pragma pack.
7948         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
7949         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
7950         Document new TARGET_DEFAULT_PACK_STRUCT.
7951
7952 2004-09-03  Devang Patel  <dpatel@apple.com>
7953
7954         * dwarf2out.c (gen_field_die). Equate decl number to die.
7955
7956 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
7957
7958         PR target/15832
7959         * global.c (modify_reg_pav): New function.
7960         (make_accurate_live_analysis): Call the new function.  Move pavin
7961         modification by earlyclobber set into the new function.
7962
7963 2004-09-03  Andreas Schwab  <schwab@suse.de>
7964
7965         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
7966         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
7967         extended.
7968
7969 2004-09-02  Jan Beulich  <jbeulich@novell.com>
7970
7971         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
7972         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
7973         not unwind code specific ones.
7974         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
7975         Remove unwind code specific dependencies.
7976         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
7977         Remove gbl-ctors.h.
7978         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
7979         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
7980         * tsystem.h: Declare memcpy and memset when inhibit_libc.
7981
7982 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
7983
7984         * combine.c (try_combine): Delay modifying of insns which cannot
7985         be easily undone.
7986
7987 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
7988
7989         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
7990         tree-loop-im.
7991         * gcc/tree-ssa-loop.c: Ditto
7992         * gcc/tree-ssa-loop-ivcanon.c: Ditto
7993         * gcc/doc/invoke.texi: Ditto.
7994
7995 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
7996
7997         * c-decl.c (store_parm_decls_newstyle): Make static.
7998         (store_parm_decls_from): New function.
7999         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
8000         (store_parm_decls_from): New prototype.
8001
8002 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
8003
8004         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
8005         HImode with STRICT_ALIGNMENT.
8006
8007 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
8008
8009         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
8010         (TARGET_OS_CPP_BUILTINS): Likewise.
8011         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
8012         TARGET_BPABI_CPP_BUILTINS.
8013
8014 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
8015
8016         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
8017
8018 2004-09-02  Eric Christopher  <echristo@redhat.com>
8019
8020         * builtins.c (expand_builtin_cabs): Delete.
8021         (expand_builtin): If unable to fold the values do a normal
8022         library call for builtin_cab*.
8023         (fold_builtin_cabs): Depend on optimize and optimize_size.
8024         * optabs.c (expand_cmplxdiv_straight): Delete.
8025         (expand_cmplxdiv_wide): Ditto.
8026         (expand_vector_binop): Ditto.
8027         (expand_vector_unop): Ditto.
8028         (expand_complex_abs): Delete.
8029         (expand_binop): Remove calls to above functions.
8030         Remove open coding of complex arithmetic.
8031         (expand_unop): Ditto.
8032         * optabs.h: Remove prototypes.
8033
8034 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
8035
8036         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
8037         * c-tree.h (store_parm_decls_newstyle): New prototype.
8038
8039 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
8040
8041         * config/rs6000/rs6000.c (expand_block_clear): Use vector
8042         instructions if available.
8043         (expand_block_move): Likewise.
8044
8045 2004-09-03  Jan Hubicka  <jh@suse.cz>
8046
8047         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
8048
8049 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
8050
8051         * config/arm/symbian.h (LIB_SPEC): Define to empty.
8052         * config/arm/t-symbian (SHLIB_LC): Likewise.
8053
8054 2004-09-02  Paul Brook  <paul@codesourcery.com>
8055
8056         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
8057
8058 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8059
8060         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
8061         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
8062         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
8063         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
8064         (mips_issue_rate): Remove unreachable abort.
8065         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
8066         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
8067         (mips_block_move_straight, print_operand_address, mips_file_start)
8068         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
8069         (mips_output_conditional_branch, mips_expand_builtin_direct)
8070         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
8071         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
8072         with gcc_assert.
8073
8074 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8075
8076         * config/mips/mips.md (*lea_high64): Change split condition to
8077         flow2_completed.  Add a peephole2 to generate a more parallel version.
8078
8079 2004-09-02  Jan Hubicka  <jh@suse.cz>
8080
8081         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
8082         GGC.
8083
8084         * ggc-page.c: include tree-flow.h.
8085         (extra_order_size_table): Add stmt_ann_d.
8086         (STAT_LABEL): Rename from ....
8087         (LABEL): ... this one.
8088         * Makefile.in (ggc-page.o): Add dependency.
8089
8090         * ggc-common.c (ggc_force_collect): New global variable.
8091         (loc_description): Add fields "freed", "collected"
8092         (ptr_hash): New static hash
8093         (ptr_hash_entry): New structure.
8094         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
8095         (ggc_record_overhead): Take ptr argument, record it
8096         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
8097         (cmp_statistics): Imrove sorting.
8098         (dump_ggc_loc_statistics): Output newly collected statistics
8099         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
8100         (ggc_free): Call ggc_free_overhead.
8101         (ggc_collect): Force collection when asked to be forced.
8102         (ggc_collect): Call ggc_prune_overhead_list.
8103         * ggc.h (ggc_force_collect): Declare
8104         (ggc_record_overhead): Update prototype.
8105         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
8106
8107 2004-09-02  James E Wilson  <wilson@specifixinc.com>
8108
8109         * common.opt (ftrapping-math): Default to on.
8110
8111 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
8112
8113         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
8114
8115 2004-09-02  Denis Chertykov  <denisc@overta.ru>
8116
8117         PR target/16884
8118         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
8119         match_scratch.
8120         (*movmemqi_insn): Likewise.
8121         (*movmemhi): Likewise.
8122         (clrmemhi): Likewise.
8123         (*clrmemqi): Likewise.
8124         (*clrmemhi): Likewise.
8125
8126 2004-09-02  Paul Brook  <paul@codesourcery.com>
8127
8128         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
8129         default_use_cxa_atexit=yes.
8130
8131 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
8132
8133         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
8134         (struct kernel_old_ucontext): Delete.
8135         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
8136         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
8137         when IN_LIGGCC2.
8138
8139 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8140
8141         * toplev.c (process_options): Fix typo.
8142
8143 2004-09-01  Richard Henderson  <rth@redhat.com>
8144
8145         PR middle-end/17258
8146         * calls.c (initialize_argument_information): Tighten pass-through
8147         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
8148         Use build_fold_addr_expr.
8149         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
8150         that assumes ADDR_EXPR allocates stack space.
8151         * fold-const.c (build_fold_addr_expr_with_type): Look through
8152         WITH_SIZE_EXPR.
8153
8154 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
8155
8156         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
8157         * ggc.h (ggc_alloc_rtx): Delete.
8158
8159 2004-09-01  Roger Sayle  <roger@eyesopen.com>
8160
8161         * expmed.c (enum alg_code): Remove long unused enumeration values.
8162         (struct mult_cost): New structure to hold the "score" of a synthetic
8163         multiply sequence, including both a rtx_cost and a latency field.
8164         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
8165         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
8166         (struct algorithm): Change type of cost field to be mult_cost.
8167         (synth_mult): Change type of cost_limit argument to be a
8168         pointer to a mult_cost.  Update all cost comparisons to use the
8169         new mult_cost infrastructure.  For alg_add_factor and
8170         alg_sub_factor operations, latency is lower than the rtx_cost.
8171         (choose_mult_variant):  Update calls to synth_mult.  Perform
8172         cost comparisons using the new mult_cost infrastructure.
8173         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
8174         to optain the total rtx_cost of a synth_mult "algorithm".
8175
8176 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
8177
8178         * config/rs6000/power4.md: Increase store latency to 12.
8179         * config/rs6000/power5.md: Same.
8180
8181 2004-09-01  James E Wilson  <wilson@specifixinc.com>
8182
8183         PR target/14064
8184         * config/avr/avr.c (avr_unique_section): Delete prototype and
8185         definition.
8186         (TARGET_ASM_UNIQUE_SECTION): Delete.
8187
8188 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
8189
8190         * c-parse.in (primary): Call objc_build_message_expr(),
8191         objc_build_selector_expr(), objc_build_protocol_expr(),
8192         objc_build_encode_expr() and objc_build_string_object() instead of
8193         build_message_expr(), build_selector_expr(), build_protocol_expr(),
8194         build_encode_expr() and build_objc_string_object(), respectively.
8195         (component_decl_list2): Call objc_get_class_ivars() instead of
8196         get_class_ivars_from_name().
8197         (keyworddecl): Call objc_build_keyword_decl() instead of
8198         build_keyword_decl().
8199         (receiver): Call objc_get_class_reference() instead of
8200         get_class_reference().
8201         (reswords): Add blank line before @@ifobjc section, for clarity.
8202
8203 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
8204
8205         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
8206         to Altivec vetors.
8207
8208 2004-09-01  Wu Yongwei  <adah@sh163.net>
8209             Danny Smith  <dannysmith@users.sourceforge.net>
8210
8211         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
8212         not Windows 'DWORD'.
8213         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
8214         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
8215         (__gthr_win32_recursive_mutex_init_function): Add prototype for
8216         __GTHREAD_HIDE_WIN32API case..
8217         (__gthr_win32_recursive_mutex_lock): Likewise.
8218         (__gthr_win32_recursive_mutex_trylock): Likewise.
8219         (__gthr_win32_recursive_mutex_unlock): Likewise.
8220         (__gthread_recursive_mutex_init_function); Add definition for
8221         __GTHREAD_HIDE_WIN32API case.
8222         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
8223         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
8224         call to InterlockedDecrement.
8225
8226 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8227
8228         * tree-tailcall.c (find_tail_calls): Also fail is statement has
8229         volatile operands.
8230
8231         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
8232
8233         * doc/c-tree.texi: Document new operands for ARRAY_REF and
8234         COMPONENT_REF.
8235
8236 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8237
8238         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
8239         * common.opt (fspeculative-prefetching): New.
8240         * flags.h (flag_speculative_prefetching_set): Declare.
8241         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
8242         values.
8243         * opts.c (flag_sepculative_prefetching_set): New variable.
8244         (common_handle_option): Handle -fspeculative-prefetching.
8245         * passes.c (rest_of_compilation): Ditto.
8246         * profile.c (instrument_values, compute_value_histograms, branch_prob):
8247         Use vectors instead of arrays.
8248         * toplev.c (process_options): Handle -fspeculative-prefetching.
8249         * rtl-profile.c: Include ggc.h.
8250         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
8251         rtl_gen_one_value_profiler_no_edge_manipulation,
8252         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
8253         argument changed.
8254         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
8255         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
8256         argument changed.
8257         * value-prof.c: Include ggc.h.
8258         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
8259         macros.
8260         (insn_prefetch_values_to_profile, find_mem_reference_1,
8261         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
8262         speculative_prefetching_transform): New.
8263         (value_profile_transformations): Call speculative_prefetching_transform.
8264         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
8265         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
8266         tree_find_values_to_profile, find_values to profile): Use vectors
8267         instead of arrays.
8268         (free_profiled_values): Removed.
8269         * value-prof.h (struct histogram_value): Renamed to
8270         struct histogram_value_t.
8271         (histogram_value, histogram_values): New types.
8272         (find_values_to_profile): Declaration changed.
8273         (free_profiled_values): Removed.
8274         (struct profile_hooks): Type of argument of the hooks changed to
8275         histogram_value.
8276         * doc/invoke.texi (-fspeculative-prefetching): Document.
8277
8278 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8279
8280         PR rtl-optimization/16408
8281         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
8282
8283 2004-09-01  Richard Henderson  <rth@redhat.com>
8284
8285         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
8286         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
8287
8288 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8289
8290         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
8291
8292 2004-09-01  Mike Stump  <mrs@apple.com>
8293
8294         * config/darwin.c (machopic_symbol_defined_p): In addition to
8295         being SYMBOL_REF_LOCAL_P, a symbol must also be
8296         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
8297         defined in this output file, or translation unit in the case
8298         of IMA not being used.
8299         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
8300         never need .indirect_symbol when indirecting.
8301
8302 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8303
8304         * Makefile.in (bb-reorder.o): Add several dependencies.
8305
8306 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8307
8308         * fold-const.c (operand_equal_p): Require equal sign also for
8309         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
8310
8311 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8312
8313         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
8314         for use in configargs.h.  Put the cname in a separate variable.  Use
8315         that to set target_cpu_default2.
8316
8317 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
8318             Nick Clifton  <nickc@redhat.com>
8319
8320         * config/sh/sh.md ("length"): Increase branch length when
8321         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
8322         constant, 2 byte for aligning the constant.
8323
8324 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8325
8326         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
8327         CPU.
8328         (arm7tdmi-s): New CPU name.
8329         * arm/arm.c (ARM_CORE): Update for new format.
8330         * arm/arm.h (ARM_CORE): Likewise.
8331         * arm/gentune.sh: Update for extra field.
8332         * config.gcc: Likewise.
8333         * arm/arm-tune.md: Regenerate.
8334         * doc/invoke.texi: Document the real processor names for ARM cpus.
8335
8336 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8337
8338         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
8339         (floatdidf): New functions.
8340         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
8341         (floatdisf): New functions.
8342         * t-arm-elf: Use them.
8343
8344 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
8345
8346         * c-common.h (lookup_interface): Remove prototype.
8347         (is_class_name): Rename to objc_is_class_name.
8348         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8349         (get_current_scope): Rename to objc_get_current_scope.
8350         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
8351         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
8352         (yylexname): Call objc_is_class_name() instead of is_class_name().
8353         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
8354         instead of lookup_objc_ivar().
8355         * stub-objc.c (lookup_interface): Remove stub.
8356         (is_class_name): Rename to objc_is_class_name.
8357         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8358
8359 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8360
8361         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
8362         * config/arm/lib1funcs.asm: Do not include supplemental .S files
8363         when compiling for Symbian.
8364         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
8365         (TARGET_OS_CPP_BUILTINS): Likewise.
8366         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
8367
8368 2004-08-31  Stan Shebs  <shebs@apple.com>
8369
8370         * toplev.c (process_options): Ensure debug_hooks is initialized.
8371
8372 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8373
8374         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
8375         * target.h (cxx): Add export_class_data.
8376         * config/arm/arm.c (arm_cxx_export_class_data): New function.
8377         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
8378         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
8379
8380 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8381
8382         * config/sh/sh.c (output_branch): Check the insn length possibly
8383         in the delayed slot.
8384
8385 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8386
8387         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
8388         blank after ')'.
8389         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
8390
8391         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
8392         (c_sizeof_of_alignof_type): Likewise.
8393         * expr.c (array_ref_element_size): Likewise.
8394         (highest_pow2_factor_for_target): Likewise.
8395         * gimplify.c (canonicalize_addr_expr): Likewise.
8396         (gimplify_compound_lval): Likewise.
8397         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
8398         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
8399         * varasm.c (assemble_variable): Likewise.
8400         (output_constant_def_contents): Alignments are unsigned.
8401
8402 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8403             Jeff Law  <law@redhat.com>
8404
8405         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
8406         gets modified.
8407
8408 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8409
8410         * hooks.c (hook_bool_void_true): New function.
8411         * hooks.h (hook_bool_void_true): Declare.
8412         * target-def.h (TARGET_CXX): Add
8413         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
8414         * target.h (struct cxx): Add key_method_may_be_inline.
8415         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
8416         function.
8417         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
8418         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
8419         __THUMB_INTERWORK.
8420
8421 2004-08-31  Denis Chertykov  <denisc@overta.ru>
8422
8423         PR target/15417
8424         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
8425         frame pointer register only in Pmode while reload in progress.
8426
8427 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
8428
8429         PR target/15334
8430         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
8431         because it breaks the 32-bit shift patterns that rely on a match_dup.
8432
8433 2004-08-31  Matt Austern  <austern@apple.com>
8434
8435         * config/darwin.c (darwin_make_decl_one_only): Allocate section
8436         names once per compilation, instead of once per symbol.
8437
8438 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
8439
8440         * Makefile.in (build_subdir): New substitution.
8441         (fixinc.sh): Simplify heavily since fixincludes is already built.
8442         (stmp-fixinc): Depend on specs.ready.
8443         (install-mkheaders): Use new location of fixincludes.
8444         (clean): Do not descend into fixinc.
8445         (FORBUILD): Replace with ../$(build_subdir).
8446         * configure.ac (build_subdir): Substitute.
8447         (FORBUILD): Do not set.
8448         (all_outputs): Remove fixinc/Makefile.
8449         (default commands): Do not create links in fixinc.
8450         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
8451         the fixincludes configuration steps and substituting
8452         @FIXINCL@ in fixinc.in.
8453         * fixinc.in: New, from fixinc/fixincl.sh.
8454
8455         * fixinc/*: Removed.
8456
8457 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
8458
8459         * attribs.c (strip_attrs): Remove.
8460         (split_specs_attrs): Move ...
8461         * c-decl.c: ... to here.
8462         * tree.h (split_specs_attrs, strip_attrs): Remove.
8463         * c-tree.h (split_specs_attrs): Declare.
8464
8465 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8466
8467         * read-rtl.c: Disable RTL checking.
8468         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
8469
8470 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8471
8472         * config/mips/mips.md (fcond): New code macro and attribute.
8473         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
8474         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
8475         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
8476
8477 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
8478
8479         Revert:
8480         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
8481         PR rtl-optimization/16590
8482         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
8483
8484 2004-08-30  Andrew Pinski  <apinski@apple.com>
8485
8486         * hard-reg-set.h:
8487         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
8488         * ChangeLog: Fix previous ChangeLog entry.
8489
8490         PR rtl-opt/13987
8491         * config.host (use_long_long_for_widest_fast_int): New, default is
8492         off.
8493         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
8494         * configure.ac: If use_long_long_for_widest_fast_int, then
8495         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
8496         * configure: Regenerate.
8497         * config.in: Regenerate.
8498         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
8499         New: widest integer type supported efficiently in hardware for the
8500         host.
8501         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
8502         HOST_BITS_PER_WIDEST_FAST_INT.
8503         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
8504         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
8505         HOST_WIDEST_FAST_INT
8506         instead of HOST_WIDE_INT.
8507         (HARD_REG_SET_LONGS): Likewise.
8508         (UHOST_BITS_PER_WIDE_INT): Likewise.
8509         Change the checks for the fast cases to be based on
8510         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
8511
8512 2004-08-30  Steven Bosscher  <stevenb@suse.de>
8513
8514         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
8515         not the pointers.
8516
8517 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
8518
8519         PR 12738
8520         PR 17205
8521         Radar 3460526
8522         Radar 3775729
8523         * c-decl.c (grokdeclarator): Produce error for 'static' on local
8524         function declaration.
8525
8526 2004-08-30  Richard Henderson  <rth@redhat.com>
8527
8528         * expr.c (array_ref_element_size): Force aligned_size back to
8529         sizetype.
8530         (component_ref_field_offset): Similarly for aligned_offset.
8531         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
8532         low-bound, element-size, field-offset fields rather than
8533         computed values.
8534
8535 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8536
8537         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
8538         redundant code.
8539
8540 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8541
8542         * c-tree.h (struct language_function): Add arg_info element.
8543         * c-decl.c (current_function_arg_info): New.
8544         (grokdeclarator, store_parm_decls): Use it instead of
8545         DECL_ARGUMENTS.
8546         (c_push_function_context, c_pop_function_context): Save and
8547         restore it.
8548
8549 2004-08-30  Richard Henderson  <rth@redhat.com>
8550
8551         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
8552         COMPONENT_REF to pointer arithmetic.
8553         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
8554         constant "c" as a valid constant initializer.  Allow narrowing of
8555         differences against the same base object, for any base object.
8556
8557 2004-08-30  Richard Henderson  <rth@redhat.com>
8558
8559         * expr.c (expand_expr_addr_expr): New.
8560         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
8561
8562 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
8563
8564         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
8565         (mips_fp_condition): New enum.
8566         (mips_fp_conditions): New array.
8567         (print_fcc_operand): Delete.
8568         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
8569         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
8570         (builtin_description): Add "cond" field.
8571         (DIRECT_BUILTIN): Initialize it.
8572         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
8573         into INSN and CODE.  Initialize the "cond" field.
8574         (CMP_BUILTINS): Update accordingly.
8575         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
8576         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
8577         mips_fp_condition as argument.  Make it the final operand of the
8578         comparison instruction.
8579         (mips_expand_builtin): Update accordingly.
8580         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
8581         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
8582         the gaps.
8583         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
8584         Don't use the 'Q' operand prefix; just print the operand normally.
8585         (mips_cabs_*, mips_c_*): Delete, replacing with...
8586         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
8587         patterns.  Split the 4s versions into 2 ps patterns after reload.
8588
8589 2004-08-30  Richard Henderson  <rth@redhat.com>
8590
8591         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
8592         assuming an ADDR_EXPR is non-null.
8593
8594 2004-08-30  Jason Merrill  <jason@redhat.com>
8595
8596         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
8597
8598 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8599
8600         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
8601         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
8602         gcc_assert and gcc_unreachable instead of abort.
8603         * alloc-pool.c (abort, fancy_abort): Remove.
8604         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
8605         gcc_assert or gcc_unreachable.
8606         * attribs.c (init_attributes, decl_attributes): Likewise.
8607         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
8608         mark_bb_for_unlikely_executed_section,
8609         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
8610         fix_crossing_unconditional_branches):  Likewise.
8611         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
8612         bitmap_operation):  Likewise.
8613         * bt-load.c (insn_sets_btr_p, augment_live_range,
8614         move_btr_def):  Likewise.
8615         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
8616         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
8617         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
8618         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
8619         expand_builtin_memcmp, expand_builtin_args_info,
8620         std_gimplify_va_arg_expr, expand_builtin_unop,
8621         expand_builtin_fputs, expand_builtin_profile_func,
8622         expand_builtin_fork_or_exec, fold_builtin_bitop,
8623         fold_builtin_classify, fold_builtin_fputs): Likewise.
8624
8625 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8626
8627         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
8628         * gcov.c (abort): Remove undef.
8629
8630         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
8631         (struct tree_binfo): Remove primary field.
8632
8633 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
8634
8635         * fixinc/Makefile.in (machname.h): Remove.
8636         (fixincl.x): Do not pass $@ to genfixes.
8637         * fixinc/genfixes: Remove code to produce machname.h.
8638         * fixinc/fixincl.sh: Move it here instead.
8639         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
8640         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
8641         return a bool indicating whether pz_mn_name_pat is NULL.
8642         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
8643         Declare extern C variables for the ENV_TABLE.
8644         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
8645         instead use the result of mn_get_regexps.
8646         * fixinc/fixtests.c: Likewise.
8647
8648 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
8649
8650         * configure.ac: Do not run fixincludes after stage1 during
8651         toplevel bootstrap.
8652         * configure: Regenerate.
8653
8654 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
8655
8656         * sched-deps.c (get_condition): Partially revert previous, by never
8657         trying to extract the condition from a condjump.
8658
8659 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8660
8661         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
8662         (handle_visibility_attribute, c_determine_visibility): Likewise.
8663         * c-common.h (my_friendly_assert): Remove.
8664
8665 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
8666
8667         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
8668         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
8669         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
8670         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
8671         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
8672
8673 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
8674
8675         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
8676         in COMPONENT_REF nodes.
8677
8678 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8679
8680         PR c++/15378
8681         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
8682         global_dc->warning_as_error_requested.
8683         * diagnostic.c (diagnostic_initialize): Tidy.
8684         * diagnostic.h (diagnostic_context::x_data): Remove
8685         (diagnostic_context::issue_warnings_are_errors_message): Rename
8686         from warnings_are_errors_message.
8687         (diagnostic_context::warning_as_error_requested): New.
8688
8689 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
8690
8691         * sched-deps.c (get_condition): Fix breakage in previous patch.
8692
8693 2004-08-30  Paul Brook  <paul@codesourcery.com>
8694
8695         * doc/install.texi: Fix broken mpfr link.
8696
8697 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
8698
8699         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
8700         other FreeBSD platforms.
8701
8702 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8703
8704         * arm.h (REVERSE_CONDITION): Define.
8705         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
8706
8707 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8708
8709         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
8710         just the codes, call reversed_comparison_code ().
8711         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
8712         (not_reg_cond): Use reversed_comparison_code.
8713         (and_reg_cond): Likewise.
8714         * ifcvt.c (cond_exec_process_if_block): Likewise.
8715         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
8716
8717 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8718
8719         * sched-deps.c (get_condition): Rewrite using jump support functions.
8720         Use reversed_comparison_code.
8721         (conditions_mutex_p): Use reversed_comparison_code.
8722
8723 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8724
8725         * config/mips/mips.c (override_options): Disable hot/cold partitioning
8726         for MIPS16.
8727
8728 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8729
8730         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
8731         (mips_function_type): Move to mips.c.
8732         * config/mips/mips.c (mips_builtin_type): New enum.
8733         (builtin_description): Replace code and ftype with builtin_type
8734         and function_type.
8735         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
8736         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
8737         (CODE_FOR_mips_abs_ps): Define.
8738         (mips_bdesc): Use new macros.
8739         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
8740         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
8741         (mips_expand_builtin_direct): New function.
8742         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
8743         builtin.  Replace boolean parameter with builtin_type.
8744         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
8745         (mips_expand_4s_compare_builtin): Delete, replacing with...
8746         (mips_expand_builtin_compare): ...this new function.
8747
8748 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
8749
8750         PR rtl-optimization/16590
8751         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
8752
8753 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
8754
8755         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
8756         * tree-ssa-propagate.c: Fix documentation.
8757
8758 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8759
8760         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
8761         (mov[sd]fcc): Likewise.
8762
8763 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8764
8765         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
8766
8767 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8768
8769         * config/mips/mips.md (divide_condition): New mode attribute.
8770         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
8771         (sqrt[sd]f3): Redefine using SCALARF.
8772         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
8773         patterns.
8774
8775 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8776
8777         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
8778         (loadx, storex, fmt, UNITMODE): New mode attributes.
8779         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
8780         (mul[sd]f3): Redefine using :SCALARF.
8781         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
8782         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
8783         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
8784         Check TARGET_FUSED_MADD for V2SF too.
8785         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
8786         were already named.
8787         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
8788         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
8789
8790 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8791
8792         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
8793         V2SF_type_node if it will be needed.
8794
8795 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8796
8797         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
8798         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
8799         (mips_prepare_builtin_target): New function.
8800         (mips_expand_builtin): Use them.  Update calls to subroutines.
8801         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
8802         cmp_choice with a boolean argument to select between movt and movf.
8803         Take the comparison's icode as an argument, not the function's fcode.
8804         (mips_expand_compare_builtin): New function.  Rename existing function
8805         to mips_expand_scalar_compare_builtin.
8806         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
8807         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
8808         comparison's icode as an argument, not the builtin's fcode.
8809
8810 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8811
8812         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
8813         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
8814         registers are false and -1 if all registers are true.
8815         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
8816         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
8817         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
8818         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
8819         (bc1any2t, bc1any2f): Likewise CCV2.
8820         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
8821
8822 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8823
8824         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
8825         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
8826         UNSPEC rather than an IF_THEN_ELSE.
8827         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
8828         mips_cond_move_tf_ps by name.
8829
8830 2004-08-29  Chao-ying Fu  <fu@mips.com>
8831             James E Wilson  <wilson@specifixinc.com>
8832
8833         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
8834         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
8835         * config/mips/mips-ps-3d.md: New file.
8836         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
8837         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
8838         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
8839         (mips_output_move): Emit "mov.ps" for V2SFmode.
8840         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
8841         MODE_VECTOR_FLOAT.
8842         (override_options): Check if TARGET_MIPS3D and there was an explicit
8843         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
8844         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
8845         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
8846         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
8847         and allow CCV2 and CCV4 to occupy two and four CC registers.
8848         (print_fcc_operand): New function.
8849         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
8850         %Z to call print_fcc_operand.
8851         (mips_function_value): Handle MODE_VECTOR_FLOAT.
8852         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
8853         (mips_vector_mode_supported_p): New function.
8854         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
8855         (builtin_description): New struct.
8856         (mips_bdesc): New array of struct builtin_description.
8857         (mips_expand_builtin, mips_init_builtins,
8858         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
8859         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
8860         functions.
8861         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
8862         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
8863         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
8864         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
8865         "-mips3d", and "-mno-mips3d".
8866         (ASM_SPEC): Map -mips3d to -mips3d in gas.
8867         (EXTRA_CONSTRAINT_Y): New macro.
8868         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
8869         multi-letter constraint 'Y'.
8870         (CONSTRAINT_LEN): New macro.
8871         (enum mips_builtins): New for MIPS builtin functions.
8872         (enum mips_function_type): New for the types of MIPS builtin functions.
8873         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
8874         * config/mips/mips.md: New constants for paired single and MIPS-3D
8875         instructions.  Include the new mips-ps-3d.md file.
8876         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
8877         movv2sf_hardfloat_64bit): New named patterns.
8878         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
8879         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
8880         sdxc1_v2sf_di): New unnamed patterns.
8881         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
8882         const_vector support.
8883         (const_0_or_1_operand): New predicate.
8884         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
8885
8886 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
8887
8888         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
8889         (tree-ssa-propagate.o): New rule.
8890         (GTFILES): Add tree-ssa-propagate.c.
8891         * tree-flow.h (struct stmt_ann_d): Remove field
8892         in_ccp_worklist.
8893         * tree-ssa-propagate.c: New file.
8894         * tree-ssa-propagate.h: New file.
8895         * tree-ssa-ccp.c: Re-write to use the routines from
8896         tree-ssa-propagate.c.
8897
8898 2004-08-28  Andrew Pinski  <apinski@apple.com>
8899
8900         * tree-ssa-loop.c: Remove extra include of basic-block.h.
8901
8902 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
8903
8904         * c-common.h: Update comments about ObjC/ObjC++ entry points.
8905         (objc_is_reserved_word): New prototype.
8906         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
8907         separate section; these are call-backs.
8908         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
8909         ObjC/ObjC++ "@" keywords.
8910         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
8911         prototypes; they already live in c-common.h.
8912         * stub-objc.c: Update copyright notice.
8913         (objc_is_reserved_word): New stub.
8914
8915 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
8916
8917         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
8918         even when not checking.
8919
8920 2004-08-27  Jason Merrill  <jason@redhat.com>
8921
8922         PR c++/13684
8923         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
8924         (gimple_push_cleanup): Add eh_only parm.
8925         (gimplify_target_expr): Pass it.
8926         * c.opt (-fno-threadsafe-statics): New option.
8927         * c-opts.c (c_common_handle_option): Handle it.
8928         * c-common.h (flag_threadsafe_statics): Declare it.
8929         * c-common.c (flag_threadsafe_statics): Record it.
8930         * doc/invoke.texi: Document it.
8931         * tsystem.h (_GNU_SOURCE): Define.
8932         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
8933         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
8934         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
8935         (__gthread_recursive_mutex_init_function): New fn.
8936         (__gthread_recursive_mutex_lock): New fn.
8937         (__gthread_recursive_mutex_trylock): New fn.
8938         (__gthread_recursive_mutex_unlock): New fn.
8939         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
8940         * gthr-win32.h, gthr-vxworks.h: Likewise.
8941         * gthr.h: Document.
8942
8943 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
8944
8945         * config/rs6000/rs6000.c (rs6000_override_options): Increase
8946         maximum skip to 15.  Set function alignment, jump alignment, and
8947         loop alignment to 16 for processors that form dispatch groups.
8948         (rs6000_rtx_costs): outer_code is used.
8949
8950 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
8951
8952         * stor-layout.c (sizetype_set): Remove.
8953         (set_sizetype): Don't test or set it.
8954
8955         * tree.h (size_int_type): Remove.
8956         * fold-const.c: Do not #include gt-fold-const.h.
8957         (size_htab_hash, size_htab_eq): Remove.
8958         (size_int_kind): Use build_int_cst.
8959         (new_const, size_htab): Remove.
8960         (size_int_type): Remove.
8961         (round_up): Use build_int_cst.
8962         (round_down): Likewise. Remove spurious constant build.
8963
8964 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
8965
8966         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
8967         Add is_release variable, use it for --enable-werror and
8968         --enable-checking defaults.
8969         * system.h (gcc_assert, gcc_unreachable): New.
8970         * doc/install.texi (--enable-checking): Update.
8971         * configure, config.in: Rebuilt.
8972
8973 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
8974
8975         * rtl.h (read_rtx): Change prototype.
8976         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
8977         line number.  Return true on success.
8978         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
8979         callers accordingly.
8980
8981 2004-08-26  Richard Henderson  <rth@redhat.com>
8982
8983         * c-typeck.c (build_offsetof): Remove.
8984         * c-tree.h (build_offsetof): Remove.
8985         * c-common.c (fold_offsetof_1, fold_offsetof): New.
8986         * c-common.h (fold_offsetof): Declare.
8987         * c-parse.in (offsetof_base): New.
8988         (offsetof_member_designator): Use it.  Build references, not just
8989         a tree list.
8990         (primary): Use fold_offsetof, not build_offsetof.
8991
8992 2004-08-26  Richard Henderson  <rth@redhat.com>
8993
8994         * tree.c (staticp): Return the static object.
8995         * tree.h (staticp): Update decl.
8996         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
8997         * langhooks.c (lhd_staticp): Return NULL_TREE.
8998         * langhooks-def.h (lhd_staticp): Update decl.
8999         * c-common.c (c_staticp): Return the static object.
9000         * c-common.h (c_staticp): Update decl.
9001
9002 2004-08-26  Richard Henderson  <rth@redhat.com>
9003
9004         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
9005         modes.
9006
9007 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
9008
9009         PR c/13801
9010         * c-decl.c (struct c_binding): Add type and inner_comp fields.
9011         (bind): Set type and inner_comp fields.
9012         (pop_scope): Restore type of decl to the correct type from an
9013         outer scope.  Give error when popping file scope for incomplete
9014         arrays completed incompatibly with default initialization in an
9015         inner scope.
9016         (diagnose_mismatched_decls): Handle externs with initializers at
9017         block scope.
9018         (pushdecl): Set type of external declaration at block scope based
9019         only on the visible declarations.  Save type when changing the
9020         type of a declaration.  Merge an external declaration at block
9021         scope with a visible static declaration at file scope.
9022         (implicitly_declare): Give recycled old declaration the new type
9023         except for incompatible declarations of built-in functions, saving
9024         the old type.
9025
9026 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
9027
9028         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
9029
9030 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
9031
9032         * tree-alias-common.c (gate_pta): New function.
9033         (pass_build_pta): Use it.
9034         (pass_del_pta): Use it.
9035         (delete_alias_vars): Don't check flag_tree_points_to.
9036
9037 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9038
9039         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
9040         TFmode as additional register mode cloberred by call.
9041
9042 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9043
9044         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
9045         parallel pattern for library call returning DImode in
9046         mixed mode.
9047
9048 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9049
9050         * config/rs6000/rs6000.c (function_arg): Generate parallel
9051         pattern for more split args.
9052
9053 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9054
9055         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
9056         either gen_movdi_di_update or gen_movdi_si_update depending on
9057         target mode.
9058         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
9059         to generate two versions.
9060
9061 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
9062
9063         * Makefile.in (lambda-code.o): New.
9064         (lambda-trans.o): Ditto.
9065         (TREE_DATA_REF_H): Ditto.
9066         (LAMBDA_H): Ditto.
9067         (lambda-mat.o): Use LAMBDA_H.
9068         (tree-data-ref.o): Ditto.
9069         * lambda-code.c: New file.  Lambda code generation algorithm.
9070         * lambda-trans.c: Ditto. Lambda transformation matrix support.
9071         * lambda.h: Add lambda loop structures.
9072         Add lambda loopnest structures.
9073         Add lambda body vector structure.
9074         Add lambda linear expression structures.
9075         Add prototypes for functions in new files.
9076         * lambda-mat.c: Include tree.h
9077
9078 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
9079             Sebastian Pop  <pop@cri.ensmp.fr>
9080
9081         * tree-data-ref.h: Include lambda.h
9082         (free_dependence_relation): Declared here.
9083         (free_dependence_relations): Ditto.
9084         (free_data_refs): Ditto.
9085         * tree-data-ref.c (free_dependence_relation): New function.
9086         (free_dependence_relations): Ditto.
9087         (free_data_refs): Ditot.
9088         (analyze_all_data_dependences): Free datarefs and dependence_relations.
9089         (build_classic_dist_vector): Store in the dependence_relations the
9090         information. Each arc in the dependence_relations graph is labelled
9091         with the distance and direction vectors.
9092         (build_classic_dir_vector): Ditto.
9093         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
9094         Now computes again the whole dependence graph including read-read
9095         relations.
9096         (compute_data_dependences_for_loop): Now dependence_relations contains
9097         all the data, and thus it doesn't need to initialize the classic_dir
9098         and classic_dist vectors.
9099         (analyze_all_data_dependences): Adjusted for using the new interface of
9100         compute_data_dependences_for_loop.  Remove the statistics dump.
9101
9102 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
9103
9104         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
9105         (xtensa_expand_block_move): Update comment.
9106         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
9107
9108 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
9109
9110         PR target/13506
9111         * toplev.c (crash_signal): If we crashed while emitting
9112         a user asm, then die more gracefully.
9113
9114 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
9115
9116         PR target/17119.
9117         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
9118         checking for a valid constant, regardless of sign.
9119
9120 2004-08-25  Richard Henderson  <rth@redhat.com>
9121
9122         PR target/16974
9123         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
9124         if the constant satisfies add_operand.
9125
9126 2004-08-25  Richard Henderson  <rth@redhat.com>
9127
9128         PR debug/10695
9129         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
9130         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
9131         unwind info for >16-bit frames.
9132
9133 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
9134
9135         PR target/17171
9136         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
9137
9138 2004-08-25  Richard Henderson  <rth@redhat.com>
9139
9140         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
9141         (TARGET_CANNOT_FORCE_CONST_MEM): New.
9142
9143 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
9144
9145         * doc/tree-ssa.texi: Document new operand iterator.
9146
9147 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
9148
9149         PR target/16480
9150         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
9151         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
9152         as PLUS base regs.
9153
9154 2005-08-28  Paul Brook  <paul@codesourcery.com>
9155
9156         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
9157         -mfpu=vfp -march=armv5t
9158         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
9159
9160 2004-08-25  Richard Henderson  <rth@redhat.com>
9161
9162         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
9163         * target.h (struct gcc_target): Add scalar_mode_supported_p.
9164         * targhooks.c (default_scalar_mode_supported_p): New.
9165         * targhooks.h (default_scalar_mode_supported_p): Declare.
9166         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
9167
9168         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
9169         before attempting to create types.  Tidy.
9170         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
9171
9172         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
9173         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
9174
9175 2004-08-25  Richard Henderson  <rth@redhat.com>
9176
9177         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
9178         set REAL_MODE_FORMAT for TFmode.
9179
9180 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
9181
9182         * c-decl.c (grokparm): New function.
9183         * c-tree.h (grokparm): New prototype.
9184
9185 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
9186
9187         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
9188         iterator controlling structure.
9189         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
9190         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
9191         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
9192         iterator flags.
9193         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
9194         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
9195         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
9196         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
9197         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
9198         Empty operand pointers.
9199         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
9200         (op_iter_next_use): New.  Return next use_operand_p.
9201         (op_iter_next_def): New.  Return next def_operand_p.
9202         (op_iter_next_tree): New.  Return next operands as a tree.
9203         (op_iter_init): New.  Initialize an iterator structure.
9204         (op_iter_init_use): New.  Initialize structure and get the first use.
9205         (op_iter_init_def): New.  Initialize structure and get the first def.
9206         (op_iter_init_tree): New.  Initialize structure and get the first tree.
9207         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
9208         (op_iter_init_maydef): New.  Initialize structure and get the first
9209         V_MAY_DEF operands.
9210         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
9211         * tree-dfa.c (compute_immediate_uses_for_stmt,
9212         redirect_immediate_uses): Use new operand iterator.
9213         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
9214         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
9215         operands instead of using *_disappeared_p routines.
9216         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
9217         ssa_rewrite_stmt): Use new operand iterator.
9218         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
9219         rewrite_trees): Use new operand iterator.
9220         * tree-pretty-print.c (dump_vops): Use new operand iterator.
9221         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
9222         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
9223         dump_points_to_info): Use new operand iterator.
9224         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
9225         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
9226         operand iterator.
9227         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
9228         propagate_necessity): Use new operand iterator.
9229         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
9230         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
9231         a parameter instead of a stmt_ann_t.
9232         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
9233         build_tree_conflict_graph): Use new operand iterator.
9234         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
9235         rewrite_mem_refs): Use new operand iterator.
9236         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
9237         check_loop_closed_ssa_use): Use new operand iterator.
9238         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
9239         * tree-ssanames.c (release_defs): Use new operand iterator.
9240         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
9241
9242 2004-08-25  Adam Nemet  <anemet@lnxw.com>
9243
9244         * tlink.c (initial_cwd): New variable.
9245         (tlink_init): Initialize it.
9246         (recompile_files): Use tlink_execute() instead of system().  Don't
9247         duplicate verbose output of collect_execute.  Restore initial_cwd.
9248         Update comment before the function.
9249
9250 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
9251
9252         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
9253         accept) a cast from one Objective-C pointer type to another.
9254
9255 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
9256
9257         * doc/install.texi: Document that libstdc++-v3 requires
9258         now automake 1.9.1.
9259
9260 2004-08-25  Caroline Tice  <ctice@apple.com>
9261
9262         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
9263         to comments at start of function.
9264         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
9265         comment.
9266         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
9267         merge_blocks_move_predecessor_nojumps,
9268         merge_blocks_move_successor_nojumps, merge_blocks_move,
9269         try_crossjump_to_edge, try_crossjump_bb): Likewise.
9270         * cfglayout.c (fixup_reorder_chain): Likewise.
9271         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
9272         cfg_layout_can_merge_blocks_p):  Likewise.
9273         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
9274         * passes.c (rest_of_compilation): Update comments for calling
9275         optimization that partitions hot/cold basic blocks.
9276         * doc/invoke.texi:  Update documentation of
9277         freorder-blocks-and-partition flag.
9278
9279 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9280
9281         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
9282         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
9283
9284 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9285
9286         * config/mips/mips.md (any_shift): New code macro.
9287         (optab, insn): New code attributes.
9288         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
9289         Use the standard rather than internal patterns for the MIPS16
9290         double-shift optimization.
9291         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
9292         Redefine using :GPR and any_shift.
9293         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
9294         to cover all three shifts.
9295         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
9296         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
9297         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
9298
9299 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
9300
9301         * gimplify.c (lookup_tmp_var): Separate temporaries when not
9302         optimizing.
9303
9304 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9305
9306         PR libstdc++/17005 (fix for HP-UX 11.11)
9307         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
9308         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
9309         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
9310         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
9311         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
9312         (LINK_SPEC): Handle march=1.0 option.
9313         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9314         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
9315         (SUBTARGET_OPTIONS): New define.
9316         (LINK_SPEC): Handle march=1.0 option.
9317         (STARTFILE_SPEC): New define.
9318         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9319         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
9320         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
9321         (SUBTARGET_OPTIONS): New define.
9322         (LINK_SPEC): Handle march=1.0 option.
9323         (STARTFILE_SPEC): New define.
9324         * config/pa/pa.c (override_options): Add code to process -munix= option.
9325         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
9326         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
9327         defines.
9328         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
9329         (SUBTARGET_OPTIONS): Provide default define.
9330         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
9331         STANDARD_STARTFILE_PREFIX_2): New defines.
9332         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
9333         (ENDFILE_SPEC): Use %O.
9334         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
9335         Mention issue caused by changing namespace and runtime to UNIX 95/98.
9336         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
9337         Document -munix=std option.
9338
9339 2004-08-25  Steven Bosscher  <stevenb@suse.de>
9340
9341         * cse.c (cse_around_loop, cse_check_loop_start,
9342         cse_set_around_loop): Remove.
9343         (cse_basic_block): Remove the around_loop argument.
9344         (cse_end_of_basic_block): Remove the after_loop argument.
9345         (cse_main): Likewise.
9346         * rtl.h (cse_main): Update prototype.
9347         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
9348         rest_of_handle_gcse): Update cse_main calls.
9349
9350 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
9351
9352         * tree.h  (build_int_cst): New, sign extended constant.
9353         (build_int_cstu): New, zero extended constant.
9354         (build_int_cst_wide): Renamed from build_int_cst.
9355         * tree.c (build_int_cst, build_int_cstu): New.
9356         (build_int_cst_wide): Renamed from build_int_cst.
9357         (make_vector_type, build_common_tree_nodes,
9358         build_common_tree_nodes_2): Adjust build_int_cst calls.
9359         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
9360         expand_builtin_strpbrk, expand_builtin_fputs,
9361         build_string_literal, expand_builtin_printf,
9362         expand_builtin_sprintf, fold_builtin_classify_type,
9363         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
9364         fold_builtin_toascii, fold_builtin_isdigit,
9365         simplify_builtin_strstr, simplify_builtin_strpbrk,
9366         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
9367         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
9368         DEF_ATTR_INT): Likewise.
9369         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
9370         Likewise.
9371         * c-lex.c (interpret_integer, lex_charconst): Likewise.
9372         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
9373         * c-pretty-print.c (pp_c_integer_constant): Likewise.
9374         * c-typeck.c (really_start_incremental_init, push_init_level,
9375         set_nonincremental_init_from_string): Likewise.
9376         * calls.c (load_register_parameters): Likewise.
9377         convert.c (convert_to_pointer): Likewise.
9378         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
9379         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
9380         build_gcov_info): Likewise.
9381         * except.c (init_eh, assign_filter_values): Likewise.
9382         * expmed.c (store_fixed_bit_field, extract_bit_field,
9383         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
9384         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
9385         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
9386         * expr.c (convert_move, emit_group_load, emit_group_store,
9387         expand_assignment, store_constructor, store_field,
9388         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
9389         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
9390         invert_truthvalue, optimize_bit_field_compare,
9391         decode_field_reference, all_ones_mask_p, constant_boolean_node,
9392         fold_div_compare, fold, fold_read_from_constant_string,
9393         fold_negate_const, fold_abs_const, fold_not_const, round_up,
9394         round_down): Likewise.
9395         * function.c (assign_parm_setup_block): Likewise.
9396         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
9397         Likewise.
9398         * stor-layout.c (layout_type, initialize_sizetypes,
9399         set_min_and_max_values_for_integral_type): Likewise.
9400         * tree-chrec.c (chrec_fold_multiply_poly_poly,
9401         reset_evolution_in_loop): Likewise.
9402         * tree-chrec.h (build_polynomial_chrec): Likewise.
9403         * tree-complex.c (build_replicated_const): Likewise.
9404         * tree-eh.c (honor_protect_cleanup_actions,
9405         lower_try_finally_onedest, lower_try_finally_copy,
9406         lower_try_finally_switch): Likewise.
9407         * tree-mudflap.c (mf_build_string, mx_register_decls,
9408         mudflap_register_call, mudflap_enqueue_constant): Likewise.
9409         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
9410         * tree-pretty-print.c (dump_generic_node): Likewise.
9411         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
9412         Likewise.
9413         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9414         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9415         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
9416         Likewise.
9417         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
9418         canonicalize_loop_induction_variables): Likewise.
9419         * tree-vectorizer.c (vect_create_index_for_array_ref,
9420         vect_transform_loop_bound, vect_compute_data_ref_alignment):
9421         Likewise.
9422
9423         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
9424         alpha_gimplify_va_arg_1): Likewise.
9425         * config/arm/arm.c (arm_get_cookie_size): Likewise.
9426         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9427         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9428         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9429         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
9430         mips_gimplify_va_arg_expr): Likewise.
9431         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9432         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
9433         add_compiler_branch_island): Likewise.
9434         * config/s390/s390.c (s390_va_start): Likewise.
9435         * config/sh/sh.c (sh_va_start): Likewise.
9436         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9437         Likewise.
9438         * config/xtensa/xtensa.c (xtensa_va_start,
9439         xtensa_gimplify_va_arg_expr): Likewise.
9440
9441         * objc/objc-act.c (build_objc_string_object,
9442         build_objc_symtab_template, init_def_list, init_objc_symtab,
9443         init_module_descriptor, generate_static_references,
9444         build_selector_translation_table, get_proto_encoding,
9445         build_typed_selector_reference, build_selector_reference,
9446         build_next_objc_exception_stuff,
9447         build_method_prototype_list_template, generate_descriptor_table,
9448         generate_protocols, build_protocol_initializer,
9449         build_ivar_list_template, build_method_list_template,
9450         build_ivar_list_initializer, generate_ivars_list,
9451         generate_dispatch_table, generate_protocol_list,
9452         build_category_initializer, build_shared_structure_initializer,
9453         generate_shared_structures, handle_impent,
9454         generate_objc_image_info): Likewise.
9455
9456 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
9457
9458         * cfglayout.c (duplicate_insn_chain): Remove references to
9459         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
9460         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
9461         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
9462         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
9463         and NOTE_INSN_LOOP_CONT.
9464         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
9465         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
9466         and NOTE_INSN_LOOP_CONT.
9467         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
9468         check_dbra_loop, loop_dump_aux): Remove references to removed notes
9469         and fields.
9470         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
9471         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
9472         references to removed notes and fields.
9473         (subtract_reg_term, ujump_to_loop_cont): Remove.
9474
9475 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
9476
9477         * doc/install.texi: Document that libcpp does not require
9478         Automake any longer.  Document that Automake 1.9.1 should
9479         work everywhere.
9480
9481 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9482
9483         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
9484         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
9485         DWARF_DEBUGGING_INFO from choice-of-definition chain;
9486         restructure using C89 features (#elif, #error).
9487         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
9488         * config/sh/sh.h: Remove references to DWARF_DEBUG.
9489         * doc/invoke.texi: Remove references to DWARF version 1;
9490         clarify why -gdwarf-2<n> doesn't work.
9491
9492 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9493
9494         * basic-block.h (BB_SET_PARTITION): Clear old value first.
9495         * cfg.c (clear_bb_flags): Don't clear partition setting.
9496         * ifcvt.c (find_if_case_1): Remove ??? comment.
9497
9498 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
9499
9500         PR target/17052
9501         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
9502         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
9503         current_function_stdarg in place of sysv_varargs_p.
9504         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
9505         sysv_varargs_p.
9506
9507 2004-08-24  Richard Henderson  <rth@redhat.com>
9508
9509         PR target/16298
9510         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
9511         random codes within CONST.
9512
9513 2004-08-24  James E Wilson  <wilson@specifixinc.com>
9514
9515         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
9516         -freorder-blocks-and-partition.
9517
9518 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9519
9520         PR middle-end/17044
9521         * tree-ssa-threadupdate.c (redirection_data): Make static.
9522         (thread_block): Use ggc_alloc_cleared to allocate struct
9523         redirection_data.  Don't free elements in redirection_data.
9524
9525 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9526
9527         * config/mips/predicates.md (small_data_pattern): Match prefetches.
9528
9529 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9530
9531         PR tree-optimization/17016
9532         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9533         number_of_iterations_exit): Use POINTER_TYPE_P instead
9534         of testing for POINTER_TYPE.
9535
9536 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9537
9538         * tree-ssa-loop-ivcanon.c: New file.
9539         * tree-ssa-loop-manip.c (create_iv): New function.
9540         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
9541         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
9542         * cfgloop.c (mark_single_exit_loops): New function.
9543         (verify_loop_structure): Verify single-exit loops.
9544         * cfgloop.h (struct loop): Add single_exit field.
9545         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
9546         (mark_single_exit_loops): Declare.
9547         (tree_num_loop_insns): Declare.
9548         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
9549         (duplicate_loop_to_header_edge): Use it.
9550         * common.opt (fivcanon): New flag.
9551         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
9552         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
9553         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
9554         (bsi_insert_on_edge_immediate): New function.
9555         * tree-flow.h (bsi_insert_on_edge_immediate,
9556         canonicalize_induction_variables, tree_unroll_loops_completely,
9557         create_iv): Declare.
9558         * tree-optimize.c (init_tree_optimization_passes): Add
9559         pass_iv_canon and pass_complete_unroll.
9560         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
9561         * tree-scalar-evolution.c (get_loop_exit_condition,
9562         get_exit_conditions_rec, number_of_iterations_in_loop,
9563         scev_initialize): Use single_exit information.
9564         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
9565         missing assumptions.
9566         (loop_niter_by_eval):  Return number of iterations as unsigned
9567         int.
9568         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
9569         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
9570         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
9571         New passes.
9572         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
9573         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
9574         the defining statement is ready.
9575         * tree-vectorizer.c (vect_create_iv_simple): Removed.
9576         (vect_create_index_for_array_ref, vect_transform_loop_bound):
9577         Use create_iv.
9578         (vect_transform_loop_bound): Use single_exit information.
9579         (vect_analyze_loop_form): Cleanup bogus tests.
9580         (vectorize_loops): Do not call flow_loop_scan.
9581         * tree.h (may_negate_without_overflow_p): Declare.
9582         * fold-const.c (may_negate_without_overflow_p): Split out from ...
9583         (negate_expr_p): ... this function.
9584         (tree_expr_nonzero_p): Handle overflowed constants correctly.
9585         * doc/invoke.texi (-fivcanon): Document.
9586         * doc/passes.texi: Document canonical induction variable creation.
9587
9588 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9589
9590         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
9591         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
9592         using the mode of the operand to decide between them.
9593         * config/mips/mips.md (MOVECC): New mode macro.
9594         (ccreg): New mode attribute.
9595         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
9596         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
9597         (mov[sd]icc): Redefine using :GPR.
9598
9599 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9600
9601         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
9602         (mips_prefetch_cookie): New function.
9603         * config/mips/mips.c (print_operand_address): Fix handling of
9604         ADDRESS_CONST_INT.
9605         (mips_emit_prefetch): Delete.
9606         (mips_prefetch_cookie): New function.
9607         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
9608         mode of QImode for the address_operand.  Use mips_prefetch_cookie
9609         to calculate the first "pref" operand.
9610         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
9611         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
9612
9613 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
9614
9615         * arm.md: Include predicates.md.
9616         * predicates.md: New file.
9617         * arm.c (s_register_operand, arm_hard_register_operand)
9618         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
9619         (arm_immediate_operand, arm_neg_immediate_operand)
9620         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
9621         (arm_add_operand, arm_addimm_operand, arm_not_operand)
9622         (offsettable_memory_operand, alignable_memory_operand)
9623         (arm_reload_memory_operand, arm_float_rhs_operand)
9624         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
9625         (index_operand, shiftable_operator, logical_binary_operator)
9626         (shift_operator, equality_operator, arm_comparison_operator)
9627         (minmax_operator, cc_register, dominant_cc_register)
9628         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
9629         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
9630         (const_shift_operand, load_multiple_operation)
9631         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
9632         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
9633         (cirrus_register_operand, cirrus_fp_register)
9634         (cirrus_shift_const): Delete, replaced with equivalents in
9635         predicates.md.
9636         (shift_op): Handle ROTATE.
9637         * arm-protos.h: Delete declarations for above.
9638         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
9639         * t-arm (MD_INCLUDES): Add predicates.md.
9640         (s-preds): Depends on MD_INCLUDES.
9641
9642 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9643
9644         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
9645         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
9646         patterns.  Redefine using :GPR.  Give the match_operator a mode.
9647         Use '%2' rather than '%z2' for operand 2.
9648
9649 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9650
9651         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
9652         attribute.
9653
9654 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9655
9656         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
9657         of internal patterns.
9658         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
9659         Redefine using :P.
9660         (tablejump): Use expand_binop to calculate address.  Adjust names
9661         of internal patterns.
9662         (tablejump[sd]i): Renamed from tablejump_internal[12].
9663         Redefine using :P.
9664         (tablejump_mips16[12]): Delete.
9665
9666 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9667
9668         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
9669         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
9670         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
9671         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
9672         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
9673
9674 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9675
9676         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
9677         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
9678         using :GPR.
9679         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
9680         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
9681         (*branch_equality[sd]i_inverted): Likewise
9682         branch_equality{,_di}_inverted.
9683         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
9684         Redefine using :GPR.
9685
9686 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
9687
9688         * rtl.def: Reorganize, placing all codes used only in machine
9689         descriptions at the end.
9690
9691         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
9692         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
9693         rtx_name, rtx_format arrays by direct reference to rtl.def,
9694         first undefining GENERATOR_FILE.  Define enum insn_note and
9695         note_insn_name array by direct reference to insn-notes.def.
9696         (adjust_field_rtx_def): Remove local definition of rtx_name.
9697         Use symbolic names for insn notes.
9698         * Makefile.in (gengtype.o): Update dependencies.
9699
9700 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
9701
9702         * basic-block.h (struct basic_block_def): Reorder fields to
9703         eliminate interior padding.  Remove 'partition' field.
9704         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
9705         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
9706         (BB_COPY_PARTITION): New macros.
9707         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
9708         Replace all references to the 'partition' field of a basic
9709         block with new macros.
9710
9711         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
9712         * final.c (final_scan_insn): Don't handle it.
9713         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
9714         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
9715         * sched-rgn.c (sched_is_disabled_for_current_region_p):
9716         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
9717
9718 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
9719
9720         * c-decl.c (c_init_decl_processing): Adjust
9721         build_common_tree_nodes call.
9722         * expmed.c (const_mult_add_overflow_p): Use
9723         build_distinct_type_copy.
9724         * stor-layout.c (early_type_list): Remove.
9725         (layout_type): Don't append to early_type_list.
9726         (initialize_sizetypes): Add signed_p argument.
9727         (set_sizetype): Overwrite the stub type nodes directly.
9728         * tree.c (copy_node_stat): Clear a type's value cache here ...
9729         (build_distinct_type): ... not here.
9730         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
9731         * tree.h (initialize_sizetypes): Add signed_p argument.
9732         (build_common_tree_nodes): Likewise.
9733
9734         * objc/objc-act.c (get_static_reference): Use
9735         build_variant_type_copy.
9736         (get_protocol_reference): Likewise.
9737         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
9738
9739 2004-08-24  Richard Henderson  <rth@redhat.com>
9740             Andrew Pinski  <apinski@apple.com>
9741
9742         * gimplify.c (gimplify_array_ref_to_plus): Delete.
9743         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
9744         for ARRAY_REF.
9745
9746         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
9747         ARRAY_REF also to get to the STRING_CST.
9748
9749 2004-08-24  Paul Brook  <paul@codesourcery.com>
9750
9751         * config/arm/arm.c (arm_override_options): Update error message.
9752         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
9753         TARGET_HARD_FLOAT_ABI.
9754         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
9755         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
9756
9757 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
9758
9759         PR target/17093
9760         * config/m32r.md (movsi_sda): Add SI mode specification to
9761         UNSPEC.
9762
9763 2004-08-24  Nick Clifton  <nickc@redhat.com>
9764
9765         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
9766         of seth_add3_operand.
9767
9768 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
9769
9770         * Makefile.in (PROTO_OBJS): Add errors.o.
9771         * protoize.c (fancy_abort): Remove.
9772         * mips-tfile.c (fancy_abort): Add parameters.
9773
9774 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
9775
9776         * doc/trouble.texi (C++ misunderstandings): Fix example code.
9777
9778 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
9779
9780         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
9781         (host-default.o): Add dependency on HOOKS_H.
9782         * config/x-linux: Likewise.
9783         * config/x-solaris: Likewise.
9784         * config/i386/x-mingw32: Likewise.
9785         * config/rs6000/x-darwin: Likewise.
9786
9787 2004-08-23  James E Wilson  <wilson@specifixinc.com>
9788
9789         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
9790         DEF_REG_NOTE.
9791
9792 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
9793
9794         PR c/14492
9795         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
9796
9797 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
9798
9799         * cfg.c (check_bb_profile): Fix typos.
9800         * function.c (assign_parm_is_stack_parm): Likewise.
9801         * tree-nested.c: Likewise.
9802
9803 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
9804
9805         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
9806         Remove TYPECODE.
9807         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
9808
9809 2004-08-23  Eric Christopher  <echristo@redhat.com>
9810
9811         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
9812         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
9813         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
9814         * target.h: Ditto.
9815         * hooks.h: Include machmode.h.
9816         (hook_bool_mode_false): Declare.
9817         * hooks.c (hook_bool_mode_false): Define.
9818         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
9819         * stor-layout.c (layout_type): Ditto.
9820         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
9821         Define to target macro.
9822         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
9823         * config/arm/arm.c: Ditto. Use.
9824         * config/arm/arm.h: Ditto.
9825         * config/arm/arm-protos.h: Ditto.
9826         * config/i386/i386.c: Ditto.
9827         * config/i386/i386.h: Ditto.
9828         * config/rs6000/rs6000.c: Ditto.
9829         * config/rs6000/rs6000.h: Ditto.
9830         * config/sh/sh.c: Ditto.
9831         * config/sh/sh.h: Ditto.
9832         * config/sh/sh-protos.h: Ditto.
9833         * config/sh/sh.md: Use.
9834         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
9835         to TARGET_VECTOR_MODE_SUPPORTED_P.
9836
9837 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
9838
9839         * Makefile.in (BUILD_ERRORS): Set to build-errors.
9840         (errors.o): New target for host.
9841         (build-errors.o): New target for build.
9842         (genobjs): Replace errors.o with build-errors.
9843         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
9844         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
9845         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
9846         (fix-header.o): Add errors.h
9847         * collect2.c (fancy_abort): Add parameters.
9848         * collect2.h (fancy_abort): Don't declare.
9849         * errors.h (fancy_abort): Don't declare.
9850         * errors.c: Include either bconfig.h or config.h.
9851         (fancy_abort): Trim filename.
9852         * fix-header.c (v_fatal, fatal): Remove.
9853         (progname): Remove definition.
9854         (main): Set progname here.
9855         * gcc.c (fancy_abort): Add parameters.
9856         * gcc.h (fancy_abort): Remove declaration.
9857         * gcov.c (fancy_abort): Remove.
9858         * rtl.h (fancy_abort): Don't declare.
9859         (abort): Don't define.
9860         * tree.h (fancy_abort): Don't declare.
9861         (abort): Don't define.
9862         * system.h (fancy_abort): Declare.
9863         (abort): Define to fancy_abort.
9864         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
9865
9866         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
9867         (usize_type, ubitsizetype): Remove.
9868         * stor-layout.c (set_sizetype): Don't initialize usizetype,
9869         ubitsizetype.
9870         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
9871
9872         * tree.h (build_distinct_type_copy): New.
9873         (build_type_copy): ... here.  Rename to ...
9874         (build_variant_type_copy): ... here.
9875         * tree.c (build_qualified_type): Rename build_type_copy call.
9876         (build_distinct_type_copy): New, broken out of ...
9877         (build_type_copy): ... here.  Rename to ...
9878         (build_variant_type_copy): ... here.  Use
9879         build_distinct_type_copy.
9880         (build_common_tree_nodes_2): Rename build_type_copy call.
9881         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
9882         call.
9883         (handle_packed_attribute, handle_unused_attribute,
9884         handle_transparanet_union_attribute, handle_aligned_attribute,
9885         handle_deprecated_attribute): Likewise.
9886         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
9887         Likewise.
9888         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
9889         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
9890         build_distinct_type_copy.
9891
9892 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9893
9894         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
9895         attribute.
9896
9897 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9898
9899         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
9900         loads and stores.
9901         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
9902         formerly unnamed patterns.  Redefine using :P for the address.  Remove
9903         explicit length attributes.
9904
9905 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9906
9907         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
9908         New functions.
9909         (single_reachable_address): Use them.
9910         (schedule_sm): Add dump.
9911         (is_call_clobbered_ref): New function.
9912         (determine_lsm_reg): Check whether the reference is call clobbered.
9913         Only work for gimple_reg_type values.
9914
9915 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9916
9917         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
9918         $31 store insns.  Redefine using :GPR.
9919
9920 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9921
9922         * config/mips/mips.md (P): New mode macro.
9923         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
9924         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
9925         Add mode attributes.
9926
9927 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9928
9929         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
9930         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
9931         later constants to cover the gap.
9932         (load, store): New mode attributes.
9933         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
9934         Use new unspec constants.
9935
9936 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9937
9938         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
9939         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
9940         to use register_operand rather than uns_arith_operand as the predicate
9941         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
9942         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
9943         Redefine using :GPR.  Make same predicate change here.  Extend the
9944         commutativity of operands 1 and 2 from the SImode version to the
9945         DImode one.
9946         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
9947         but with no predicate changes.
9948         (*nor[sd]i3): Redefine using :GPR.
9949
9950 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9951
9952         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
9953         noreturn functions.
9954
9955 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9956
9957         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
9958         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
9959         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
9960         rather than "%z2" (with a fake const0_rtx for operand 2).
9961         (ffs[sd]i2): Redefine using :GPR.
9962         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
9963
9964 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9965
9966         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
9967
9968 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9969
9970         * config/mips/mips.md (any_extend): New code macro.
9971         (u, su): New code attributes.
9972         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
9973         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
9974         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
9975         (*{s,u}mul_acc_di): Redefine using any_extend.
9976         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
9977         to reflect real insn names.
9978         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
9979         with an any_extend template.
9980         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
9981         Add '*' to name.
9982
9983 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9984
9985         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
9986         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
9987         (mul[sd]i3_r4000): Redefine using :GPR.
9988         (mulsi3_mult3): Don't check TARGET_MAD separately.
9989         (muldi3_mult3): Moved after mulsi_mult3.
9990
9991 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9992
9993         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
9994         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
9995         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
9996         (TARGET_GAS, TARGET_MIPS_AS): Delete.
9997         (TARGET_GPWORD): Define to true for n32 on IRIX.
9998         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
9999         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
10000         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
10001         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
10002         (MDEBUG_ASM_SPEC): Delete, folding into...
10003         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
10004         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
10005         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
10006         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
10007         to define asm_abi_default_spec.
10008         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
10009         (TARGET_ASM_SELECT_SECTION): Delete.
10010         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
10011         for non-mips16 code, removing previous workaround for SGI assemblers.
10012         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
10013         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
10014         (override_options): Remove !TARGET_GAS and !have_named_sections code.
10015         (print_operand): Fold TARGET_GAS conditionals into asm strings.
10016         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
10017         ASM_STABS_OP and ASM_STABN_OP.
10018         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
10019         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
10020         (mips_output_function_prologue): Remove !TARGET_GAS code.
10021         (mips_select_rtx_section): Remove !have_named_sections code.
10022         (mips_select_section): Delete.
10023         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
10024         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
10025         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
10026         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
10027         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
10028         * config/mips/windiss.h (ASM_SPEC): Likewise.
10029
10030 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10031
10032         * read-rtl.c (map_value, mapping, macro_group): New structures.
10033         (BELLWETHER_CODE): New macro.
10034         (modes, codes, bellwether_codes): New variables.
10035         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
10036         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
10037         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
10038         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
10039         (add_map_value, initialize_macros): New functions.
10040         (def_hash, def_hash_eq_p): Generalize to anything that points to,
10041         or starts with, a char * field.
10042         (find_macro, read_mapping, check_code_macro): New functions.
10043         (read_rtx_1): New, split out from read_rtx.  Handle the new
10044         define_{mode,code}_{macro,attr} constructs.  Use find_macro
10045         to parse the name of a code or mode.  Use BELLWETHER_CODE to
10046         extract the format and to choose a suitable code for rtx_alloc.
10047         Modify recursive invocations to use read_rtx_1.
10048         (read_rtx): Call initialize_macros.  Apply code and mode macros
10049         to the rtx returned by read_rtx_1.  Cache everything after the
10050         first macro expansion for subsequent read_rtx calls.
10051         * doc/md.texi: Document new .md constructs.
10052         * config/mips/mips.md (GPR): New mode macro.
10053         (d, si8_di5): New mode attributes.
10054         (any_cond): New code macro.
10055         (add[sd]i3): Redefine using :GPR.
10056         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
10057         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
10058         previously unnamed MIPS16 patterns.
10059         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
10060         lines.  Don't match (plus (const_int 0) ...).
10061         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
10062         Use a define_split to generate the addition.
10063         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
10064         (subsi3_internal): Delete.
10065         (*subsi3_extended): Renamed from subsi3_internal_2.
10066         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
10067         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
10068         using an any_cond template.
10069
10070 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10071
10072         * read-rtl.c (read_rtx): Tidy use of format_ptr.
10073
10074 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10075
10076         * read-rtl.c (string_obstack): New file-scope variable.
10077         (read_string, read_quoted_string, read_braced_string)
10078         (read_escape): Remove obstack parameter and use string_obstack instead.
10079         (read_rtx): Remove function-local rtl_obstack and initialize
10080         string_obstack instead.  Update call to read_string.
10081
10082 2004-08-22  Andrew Pinski  <apinski@apple.com>
10083
10084         PR c/15262
10085         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
10086         expression is not constant.
10087         (c_finish_return): Do not go through INDIRECT_REF when looking
10088         for the inner expression of an ADDR_EXPR for warning about.
10089
10090 2004-08-22  Richard Henderson  <rth@redhat.com>
10091
10092         PR 17075
10093         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
10094         create new blocks and fall through.
10095         (expand_gimple_basic_block): Update to match.
10096
10097 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
10098
10099         * reload.c (find_reloads_address): Make return value tri-state.
10100         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
10101         (find_reloads): Assume that reloaded addresses match 'o' or
10102         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
10103         returned 1 (not -1).  Omit optional reloads for address operands
10104         only if find_reloads_address returned 1 (not -1).
10105
10106         * config/s390/s390.c (legitimize_reload_address): New function.
10107         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
10108         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
10109         legitimize_reload_address.
10110
10111 2004-08-22  Richard Hendersion  <rth@redhat.com>
10112
10113         * tree.h (SAVE_EXPR_RESOLVED_P): New.
10114         * gimplify.c (gimplify_save_expr): Use it.
10115         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
10116         on the temporary variable.
10117
10118 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
10119
10120         * fold-const.c (rtl_expr_nonnegative_p): Delete.
10121         * tree.h (rtl_expr_nonnegative_p): Remove.
10122
10123 2004-08-22  Steven Bosscher  <stevenb@suse.de>
10124
10125         * config/i386/ppro.md (ppro_complex_insn): Add missing check
10126         for cpu==pentiumpro.
10127
10128         * combine.c (struct reg_stat): Fix comment typo.
10129
10130 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10131
10132         * c-tree.h (c_sizeof_nowarn): Remove.
10133
10134 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10135
10136         * c-decl.c (set_array_declarator_type): Rename to
10137         set_array_declarator_inner.
10138         (build_c_parm, build_attrs_declarator, build_function_declarator):
10139         New functions.
10140         (make_pointer_declarator): Call build_attrs_declarator.
10141         * c-tree.h (set_array_declarator_type): Rename to
10142         set_array_declarator_inner.
10143         (build_c_parm, build_attrs_declarator, build_function_declarator):
10144         New prototypes.
10145         * c-parse.in (after_type_declarator,
10146         parm_declarator_starttypename, parm_declarator_nostarttypename,
10147         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
10148         firstparm): Use these functions
10149
10150 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10151
10152         * c-decl.c (build_array_declarator, set_array_declarator_type,
10153         start_decl, grokdeclarator, grokparms): Change boolean parameters
10154         to type bool.
10155         * c-tree.h (build_array_declarator, set_array_declarator_type,
10156         start_decl): Update prototypes.
10157         * c-decl.c, c-parse.in: All callers changed.
10158
10159 2004-08-21  Mike Stump  <mrs@apple.com>
10160
10161         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
10162         (darwin_fix_and_continue): Likewise.
10163         (darwin_fix_and_continue_switch): Likewise.
10164         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
10165         (darwin_fix_and_continue): Likewise.
10166         (darwin_fix_and_continue_switch): Likewise.
10167
10168 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
10169
10170         PR  c++/16030
10171         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
10172         Remove, merging into ...
10173         (gen_stdcall_or_fastcall_suffix): New function, returning tree
10174         rather than const char*, and accepting additional parameter.
10175         Don't add suffix to '*'-prefixed symbols or variadic functions.
10176         (i386_pe_encode_section_info): Adjust for call to new function.
10177         Call change_decl_assembler_name.
10178
10179 2004-08-20  Mike Stump  <mrs@apple.com>
10180
10181         * config/darwin.c (machopic_indirect_data_reference): Mark
10182         stubs as defined.
10183         * config/386/386.c (darwin_local_data_pic): Add.
10184         (legitimate_constant_p): Reorder so that PLUS handling runs
10185         before darwin_local_data_pic to match the ordering in
10186         legitimate_pic_address_disp_p and so that MINUS runs after
10187         darwin_local_data_pic as otherwise the darwin_local_data_pic
10188         logic can be skipped, which would be very bad.
10189         (legitimate_pic_address_disp_p): Move from from here to
10190         darwin_local_data_pic so it can be reused.
10191
10192 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
10193
10194         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
10195         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
10196         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
10197         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
10198         (RS6000_ABI_NAME): Define as "linux".
10199         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
10200         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
10201         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
10202         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
10203         * config/rs6000/rs6000.c (dot_symbols): New global var.
10204         (rs6000_output_function_entry): New function, modified for
10205         !DOT_SYMBOLS..
10206         (print_operand <case 'z'>): ..extracted from here.
10207         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
10208         (rs6000_output_function_epilogue): Likewise.
10209         (rs6000_elf_declare_function_name): Likewise.
10210         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
10211         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
10212         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
10213         * configure: Regenerate.
10214         * config.in: Regenerate.
10215
10216 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
10217
10218         * reload.c (find_reloads_address): Fix thinko in previous change.
10219
10220         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
10221         a CONST_INT.
10222
10223 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
10224
10225         PR rtl-optimization/17099
10226         * combine.c (force_to_mode): Check if inner_mask has any bits set
10227         outside of GET_MODE (x) instead of op_mode.
10228
10229 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
10230
10231         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
10232         fragment.
10233         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
10234         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
10235         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
10236         architecture.
10237         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
10238         configurations.
10239         * config/arm/t-symbian: New file.
10240
10241 2004-08-20  Andrew Pinski  <apinski@apple.com>
10242
10243         * regrename.c (kill_value_regno): ANSIfy.
10244
10245 2004-08-20  Dale Johannesen  <dalej@apple.com>
10246
10247         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
10248
10249 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
10250
10251         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
10252         (kill_value_regno): New function, derived from kill_value.
10253         (kill_value): Update.
10254         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
10255
10256 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
10257
10258         Fix PR tree-optimization/17111
10259         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
10260         of non-value_handles.
10261         (bitmap_set_contains): All constants are in every set.
10262
10263 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
10264
10265         * fold-const.c (round_up, round_down): Use build_int_cst.
10266         Optimize common case.
10267
10268 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
10269             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10270
10271         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
10272         one_only_data_section): Rename to som_readonly_data_section,
10273         som_one_only_readonly_data_section and som_one_only_data_section.
10274         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
10275         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
10276         conditional defines.
10277         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
10278         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
10279         string values.
10280         (pa_select_section): Use renamed section functions.
10281         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
10282         SOM_READONLY_DATA_SECTION_FUNCTION,
10283         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
10284         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
10285         Define here ...
10286         * config/pa/som.h: ... not here.
10287         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
10288         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
10289         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
10290         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
10291         (READONLY_DATA_SECTION): Use som_readonly_data_section.
10292
10293 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
10294
10295         * fold-const.c (int_const_binop): Don't generate non-overflowing
10296         size-types specially.
10297         (fold_convert_const): Likewise.
10298
10299         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
10300         clear cache on copied sizetype.
10301
10302 2004-08-20  Ben Elliston  <bje@au.ibm.com>
10303
10304         * configure.ac: Don't escape apostrophe in --enable-coverage help.
10305         * configure: Regenerate.
10306
10307 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
10308
10309         PR 5620
10310         * gcc.c (struct stat input_stat): Don't define if
10311         HOST_LACKS_INODE_NUMBERS
10312         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
10313         than stat to determine if temp file is same as input file.
10314         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
10315         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
10316
10317 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
10318
10319         * configure.ac (mips*-*-*): Print an error if not using GAS.
10320         * configure: Regenerated.
10321         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
10322         comments about buggy MIPSpro assemblers.
10323         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
10324         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
10325         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
10326         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
10327         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
10328         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
10329         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
10330         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
10331         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
10332         of more general IRIX 6 definitions.
10333         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
10334         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
10335         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
10336         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
10337         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10338         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
10339         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
10340         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
10341         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
10342         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
10343         (LINK_SPEC): Move most of definition to iris.h.
10344         (SUBTARGET_LINK_SPEC): New macro.
10345         (IRIX_STARTFILE_SPEC): Fold into...
10346         (STARTFILE_SPEC): ...here.
10347         (IRIX_ENDFILE_SPEC): Fold into...
10348         (ENDFILE_SPEC): ...here.
10349         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
10350         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
10351         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
10352         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
10353         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
10354         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
10355         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
10356         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10357         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
10358         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
10359         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
10360         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
10361         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
10362         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
10363         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
10364         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
10365         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
10366         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
10367         (TARGET_IRIX6): Define to 1.
10368         (DRIVER_SELF_SPECS): Define.
10369         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
10370         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
10371         (SUBTARGET_LINK_SPEC): New macro.
10372         (IRIX_STARTFILE_SPEC): Fold into...
10373         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
10374         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
10375         (LIB_SPEC, LIBGCC_SPEC): Use them.
10376         (LIB_SPEC): Remove !mabi=* case.
10377         (IRIX_ENDFILE_SPEC): Fold into...
10378         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
10379         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
10380         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
10381         (TARGET_IRIX6): New macro.
10382         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
10383         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
10384         (LABEL_AFTER_LOC): Delete.
10385         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
10386         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
10387         (mips_build_builtin_va_list): Check TARGET_IRIX6.
10388         (override_options): Remove TARGET_SGI_O32_AS-related code.
10389         (irix_output_external_libcall): Make static.
10390         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
10391         LABEL_AFTER_LOC.
10392         (mips_file_start): Tidy guard for ABI sections.  Remove use of
10393         ABICALLS_ASM_OP; use .abicalls instead.
10394         (mips_output_aligned_decl_common, mips_declare_object_name)
10395         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
10396         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
10397         .globl foo .text directives.
10398         (irix_asm_named_section_1, irix_asm_named_section)
10399         (irix_section_align_entry, irix_section_align_htab)
10400         (irix_orig_asm_out_file, irix_section_align_entry_eq)
10401         (irix_section_align_entry_hash, irix_asm_output_align)
10402         (irix_file_start, irix_section_align_1, copy_file_data)
10403         (irix_file_end, irix_section_type_flags): Delete.
10404         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
10405         Use standard section syntax.  Remove protective "jr $31".
10406         (__gcc_fini): Likewise .gcc_fini.
10407         * config/mips/irix-crtn.asm: Adjust sections accordingly.
10408         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
10409         iris5gas.h.
10410         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
10411         from t-irix-gld.
10412         (EXTRA_MULTILIB_PARTS): Define.
10413         * config/mips/t-iris6: Remove bogus comment.
10414         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
10415         * config/mips/iris5gas.h, config/mips/iris5gld.h,
10416         config/mips/iris6gas.h, config/mips/iris6gld.h,
10417         config/mips/t-iris5-as, config/mips/t-iris5-gas
10418         config/mips/t-irix-gld: Delete.
10419         * config/mips/iris.h: New file.
10420         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
10421
10422 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
10423
10424         * postreload.c (reload_cse_move2add): Allow any condjump, but check
10425         that the implicit set isn't clobbered in the jump insn.
10426
10427 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10428
10429         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
10430         * optabs.c (init_optabs): Don't check it.
10431         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
10432         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
10433
10434 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
10435
10436         * config/s390/s390.md (s390_warn_framesize_string)
10437         (s390_warn_dynamic_string, s390_stack_size_string)
10438         (s390_stack_guard_string): New global string variables.
10439         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
10440         (s390_stack_guard): New global variables.
10441         (override_options): Added checks for the new options.
10442         (s390_emit_prologue): Emit stack check and trap code and perform
10443         compile time stack size checking.
10444
10445         * config/s390/s390.h (TARGET_OPTIONS): Added new options
10446         "warn-framesize", "warn-dynamicstack", "stack-size" and
10447         "stack-guard".
10448
10449         * doc/invoke.texi: Added documentation for the new options.
10450
10451 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10452
10453         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
10454         to eliminate warning.
10455         (linear_search_fdes): Declare p as unsigned.
10456         (binary_search_mixed_encoding_fdes): Likewise.
10457         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
10458         to eliminate warning.
10459         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
10460         type cast.
10461
10462 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10463
10464         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
10465         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
10466         instead of one.  Check for strictly legitimate address.
10467         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
10468         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
10469
10470 2004-08-19  Eric Christopher  <echristo@redhat.com>
10471
10472         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
10473         * langhooks.h (unsave_expr_now): Ditto.
10474         * tree.h (unsave_expr_1): Remove prototype.
10475         (lhd_unsave_expr_now): Rename to unsave_expr_now.
10476         * tree-inline.c (unsave_expr_1): Move here
10477         from tree.c. Make static.
10478         (unsave_expr_now): Rename from lhd_unsave_expr_now.
10479         * tree-sra.c: Fix up for rename.
10480         * tree-ssa-copy.c: Ditto.
10481         * tree-eh.c: Ditto.
10482         * tree.c (unsave_expr_1): Move to tree-inline.c.
10483
10484 2004-08-19  Caroline Tice  <ctice@apple.com>
10485
10486         * config/i386/cygming.h (switch_to_section):  Fix typo (change
10487         in_unlikely_text_section to in_unlikely_executed_text).
10488
10489 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
10490
10491         * vec.h (VEC_lower_bound): New macro.
10492
10493 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
10494
10495         PR target/16446
10496         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
10497         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
10498         treat each ABI separately.  Deal with n32/n64 complex float arguments.
10499         (function_arg): Add associated complex handling here.
10500
10501 2004-08-19  Richard Henderson  <rth@redhat.com>
10502
10503         * config/arm/arm.c (arm_gen_load_multiple): Use
10504         adjust_automodify_address.  Take base memory and offset instead
10505         of unchanging/struct/scalar bits.
10506         (arm_gen_store_multiple): Likewise.
10507         (arm_gen_movmemqi): Use adjust_automodify_address.
10508         * config/arm/arm-protos.h: Update decls.
10509         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
10510         (store_multiple): Similarly.
10511
10512 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
10513
10514         * regclass.c (globalize_reg): Update call_really_used_regs.
10515
10516 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
10517
10518         * doc/invoke.texi (integer-share-limit): Document.
10519
10520         * tree.h (TYPE_CACHED_VALUES_P): New.
10521         (TYPE_CACHED_VALUES): New.
10522         (TYPE_ORIG_SIZE_TYPE): Adjust.
10523         * tree.def (INTEGER_CST): Update documentation.
10524         * tree.c: Inlcude params.h.
10525         (build_int_cst): Cache small values.
10526         (build_type_copy): Do not copy the value cache.
10527         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
10528         unneeded zeroing.
10529         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
10530         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
10531         cache.
10532         * fold-const.c (force_fit_type): Copy value when setting
10533         overflows.
10534         (int_const_binop): Likewise.
10535         * stor-layout.c: Include params.h
10536         (set_sizetype): Create values cache.
10537         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
10538         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
10539         * params.h (INTEGER_SHARE_LIMIT): New.
10540         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
10541
10542 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
10543
10544         * gimplify.c (gimplify_minimax_expr): Remove.
10545         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
10546
10547 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
10548
10549         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
10550         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
10551
10552 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10553
10554         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
10555
10556 2004-08-18  Andrew Pinski  <apinski@apple.com>
10557
10558         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
10559
10560 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
10561
10562         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
10563         (__aeabi_ul2f): Likewise.
10564
10565 2004-08-18  Richard Henderson  <rth@redhat.com>
10566
10567         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
10568         move to rtl completely.
10569         (struct meminsnbuf, xtensa_emit_block_move): Remove.
10570         (xtensa_find_mode_for_size): Remove.
10571         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
10572         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
10573
10574 2004-08-18  Richard Henderson  <rth@redhat.com>
10575
10576         * config/mcore/mcore.c (mode_from_align): Remove DImode.
10577         (block_move_sequence): Rewrite to use adjust_address.
10578         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
10579         Return boolean indicating success/failure.
10580         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
10581         * config/mcore/mcore.md (movmemsi): Update to match.
10582
10583 2004-08-18  Mike Stump  <mrs@apple.com>
10584
10585         * doc/invoke.texi (-mfix-and-continue): Add support for
10586         fast turn around debugging.
10587         (-ffix-and-continue): Likewise.
10588         (-mindirect-data): Likewise.
10589         (-findirect-data): Likewise.
10590         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
10591         (indirect_data): Likewise.
10592         (machopic_data_defined_p): Likewise.
10593         (machopic_output_indirection): Likewise.
10594         (darwin_encode_section_info): Likewise.
10595         (darwin_fix_and_continue): Likewise.
10596         (darwin_fix_and_continue_switch): Likewise.
10597         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
10598         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
10599         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
10600         (SUBTARGET_OPTIONS): Likewise.
10601         (darwin_fix_and_continue): Likewise.
10602         (darwin_fix_and_continue_switch): Likewise.
10603         (TARGET_FIX_AND_CONTINUE): Likewise.
10604         * config/rs6000.c (rs6000_emit_prologue): Likewise.
10605
10606 2004-08-19  Steven Bosscher  <stevenb@suse.de>
10607
10608         * basic-block.h (struct edge_def): Remove crossing_edge.
10609         (EDGE_CROSSING): New define.
10610         (EDGE_ALL_FLAGS): Update.
10611         * bb-reorder.c (find_traces_1_round, better_edge_p,
10612         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
10613         find_jump_block, fix_crossing_conditional_branches,
10614         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
10615         Replace all occurences of crossing_edge with an edge flag check
10616         or set/reset.
10617         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
10618         try_crossjump_bb): Likewise.
10619         * cfglayout.c (fixup_reorder_chain): Likewise.
10620         * cfgrtl.c (force_nonfallthru_and_redirect,
10621         commit_one_edge_insertion): Likewise.
10622
10623         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
10624         * tree-flow.h (compute_dominance_frontiers): Move prototype...
10625         * basic-block.h:  ...here.
10626         * tree-cfg.c (compute_dominance_frontiers_1,
10627         compute_dominance_frontiers): Move from here...
10628         * cfganal.c: ...to here.  Include timevar.h.
10629
10630 2004-08-18  James E Wilson  <wilson@specifixinc.com>
10631
10632         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
10633         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
10634
10635         * config/mips/mips.md (type): Add frdiv.
10636         (divsf3+1, divsf3+2): Change type to frdiv.
10637         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
10638         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
10639
10640         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
10641         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
10642         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
10643         * config/mips/5000.md (r5k_fdiv_single): Likewise.
10644         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
10645         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
10646         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
10647         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
10648         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
10649         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
10650         Likewise.
10651         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
10652
10653 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
10654
10655         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
10656         get regression tester working again.
10657
10658 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10659
10660         * insn-notes.def, reg-notes.def: New files.
10661         * rtl.h: Use them to define enum insn_note and enum reg_note.
10662         * rtl.c: Use them to define note_insn_name and reg_note_name.
10663         * Makefile.in (RTL_BASE_H): Update.
10664
10665         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
10666         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
10667
10668 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
10669
10670         * arm.c (arm_size_rtx_costs): New function.
10671         (arm_override_options): Use it if optimizing for space.
10672
10673 2004-08-18  Richard Henderson  <rth@redhat.com>
10674
10675         * emit-rtl.c (gen_const_mem): New.
10676         * rtl.h (gen_const_mem): Declare.
10677         * expr.c (do_tablejump): Use it.
10678         * varasm.c (force_const_mem): Likewise.
10679         * config/darwin.c (machopic_indirect_data_reference): Likewise.
10680         (machopic_legitimize_pic_address): Likewise.
10681         * config/arm/arm.c (legitimize_pic_address): Likewise.
10682         * config/i386/i386.c (legitimize_pic_address): Likewise.
10683         (legitimize_tls_address): Likewise.
10684         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
10685         * config/ia64/ia64.md (load_fptr): Likewise.
10686         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
10687         * config/pa/pa.c (legitimize_pic_address): Likewise.
10688         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
10689         (rs6000_emit_move): Likewise.
10690         * config/s390/s390.c (legitimize_pic_address): Likewise.
10691         (legitimize_tls_address): Likewise.
10692         * config/s390/s390.md (casesi): Likewise.
10693         * config/sh/sh.c (sh_reorg): Likewise.
10694         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
10695         * config/v850/v850.md (casesi): Likewise.
10696
10697         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
10698         * config/sh/sh.c (prepare_move_operands): Remove incorrect
10699         use of MEM_READONLY_P.
10700
10701 2004-08-18  Steven Bosscher  <stevenb@suse.de>
10702
10703         * Makefile.in (OBJS-common): Add postreload-gcse.c.
10704         Add new postreload-gcse.o.
10705         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
10706         (lookup_as_function, insert, rehash_using_reg, use_related_value,
10707         equiv_constant): Use SAFE_HASH instead of safe_hash.
10708         (exp_equiv_p): Export.  Add for_gcse argument when comparing
10709         for GCSE.
10710         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
10711         find_comparison_args, fold_rtx, cse_insn): Update callers.
10712         (hash_rtx): New function derived from old canon_hash and bits
10713         from gcse.c hash_expr_1.
10714         (canon_hash_string): Rename to hash_rtx_string.
10715         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
10716         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
10717         (cselib_lookup): Update this caller.
10718         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
10719         Make static.
10720         (hash_expr): Call hash_rtx.
10721         (ldst_entry): Likewise.
10722         (expr_equiv_p): Call exp_equiv_p.
10723         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
10724         reg_used_on_edge, reg_set_between_after_reload_p,
10725         reg_used_between_after_reload_p, get_avail_load_store_reg,
10726         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10727         get_bb_avail_insn, hash_scan_set_after_reload,
10728         compute_hash_table_after_reload,
10729         eliminate_partially_redundant_loads, gcse_after_reload,
10730         get_bb_avail_insn, gcse_after_reload_main): Remove.
10731         * postreload-gcse.c: New file, reincarnating most of the above.
10732         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
10733         (gcse_after_reload_main): Update prototype.
10734         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
10735         * passes.c (rest_of_handle_gcse2): Use it.
10736
10737 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
10738
10739         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
10740         (pass_loop_done): Likewise.
10741
10742 2004-08-18  Andrew Pinski  <apinski@apple.com>
10743
10744         * config/rs6000/darwin.md: Delete the altivec patterns which are
10745         handled differently now.
10746         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
10747         (macho_correct_pic_di): Likewise.
10748         (call_indirect_nonlocal_darwin64): Likewise.
10749         Delete the save world/saveFP/saveVec patterns.
10750
10751         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
10752         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
10753         * config/rs6000/rs6000.md: Include darwin.md.
10754         (builtin_setjmp_receiver): Add DImode case.
10755         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
10756         Darwin bits.
10757
10758 2004-08-18  Matt Austern  <austern@apple.com>
10759
10760         Dead code stripping
10761         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
10762         * darwin.c (darwin_file_end): Mark file as potentially strippable.
10763
10764 2004-08-18  Richard Henderson  <rth@redhat.com>
10765
10766         * alias.c (readonly_fields_p): Remove.
10767         (objects_must_conflict_p): Don't call it.
10768         * tree.h (readonly_fields_p): Remove.
10769         * langhooks.h (struct lang_hooks): Remove honor_readonly.
10770         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
10771
10772 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
10773
10774         * tree-dfa.c (add_referenced_var): Only global variables are
10775         call-clobbered.
10776         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
10777         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
10778         all pointers dereferenced if the statement dereferences them.
10779         (create_name_tags): Do not create memory tags for pointers
10780         that have PT_ANYTHING set.
10781         Also check if PT_VARS is not empty before creating a name tag.
10782         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
10783         variables that share the same alias set with a pointer that
10784         may point anywhere.
10785         (add_may_alias): Add FIXME comment to remove clobbering
10786         aliased variables and tags.
10787         (replace_may_alias): Likewise.
10788         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
10789         (merge_pointed_to_info): If the original variable has not
10790         points-to information, call set_pt_anything.
10791         (add_pointed_to_var): Do not prevent adding a pointed-to
10792         variable if the pointers is PT_ANYTHING.
10793         If the variable is a global, set PT_GLOBAL_MEM.
10794         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
10795         pointer type only come in PTR+OFFSET flavours.
10796         Always call merge_pointed_to_info on PHI arguments that are
10797         SSA_NAMEs.
10798         (get_nmt_for): Mark call-clobbered tags whose pointer points
10799         to global memory.
10800         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
10801         values.
10802         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
10803         FLAGS.
10804         (add_stmt_operand): Abort if the caller tried to add a killing
10805         definition for a memory tag.
10806         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
10807         unnecessary checks.
10808
10809 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
10810
10811         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
10812         from call_used_regs.  Update call_really_used_regs.
10813         (CALL_REALLY_USED_REGISTERS): Define.
10814         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
10815         Replace call_used_regs with call_really_used_regs.
10816         (calc_live_regs, sh_media_register_for_return): Likewise.
10817         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
10818         * sh.md (return_media): Likewise.
10819
10820 2004-08-18  Andrew Pinski  <apinski@apple.com>
10821
10822         * config/darwin.c (machopic_legitimize_pic_address): Only set
10823         MEM_READONLY_P in the non TARGET_TOC case.
10824
10825 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10826
10827         * rtl.def (NIL): Delete.
10828         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
10829         Tighten the syntax a little.
10830
10831         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
10832         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
10833         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
10834         * config/i386/predicates.md, config/m32r/m32r.h
10835         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
10836         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
10837         * config/sparc/sparc.h, doc/tm.texi:
10838         Replace all occurrences of NIL with UNKNOWN.
10839
10840 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10841
10842         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
10843         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
10844         sequence inline.  Move drop_through_label code into this
10845         block, being the only place it is used.  Adjust comments.
10846
10847 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
10848
10849         * config/rs6000/altivec.md: Add new patterns for calls to
10850         save_world/rest_world functions.
10851
10852         * config/rs6000/rs6000-protos.h: (save_world_operation,
10853         restore_world_operation) new declarations.
10854
10855         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
10856         field added.
10857         (rs6000_stack_info): Set world_save_p field.
10858         (save_world_operation): New function.
10859         (restore_world_operation): New function.
10860         (compute_save_world_info): New function.
10861         (rs6000_stack_info): Call compute_save_world_info.
10862         (rs6000_emit_prologue): Check for world_save_p and generate
10863         pattern to call save_world for saving all non-volatile and
10864         special registers.
10865         (rs6000_emit_epilogue): Check for world_save_p and generate
10866         pattern to call rest_world to restore saved registers.
10867
10868         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
10869         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
10870         (rs6000_reg_names): New entries added for save_world_operation and
10871         restore_world_operation.
10872
10873 2004-08-18  Caroline Tice  <ctice@apple.com>
10874
10875         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
10876         "-freorder-blocks-and-partition" to the flags used in second
10877         stage of profiledbootstrap.
10878         * bb-reorder.c (push_to_next_round_p): Add new variable,
10879         next_round_is_last; set and use variable to make sure, when
10880         partitioning, that the last trace construction round consists
10881         of all (and only) cold basic blocks.
10882         (rotate_loop): Don't copy blocks that end in a section
10883         crossing jump.
10884         (copy_bb): Correctly initialize "partition" of duplicated bb.
10885         (add_unlikely_executed_notes): Add a comment.
10886         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
10887         to make sure, if function contains hot blocks, that the
10888         successors of ENTRY_BLOCK_PTR are hot; also, only look for
10889         crossing edges if the architecture supports named sections.
10890         (mark_bb_for_unlikely_executed_section): Modify to always
10891         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
10892         the basic block note insn.
10893         (fix_crossing_unconditional_branches): Remove extra space.
10894         (fix_edges_for_rarely_executed_code): Modify to only do
10895         partitioning work if the architecture supports named sections.
10896         (reorder_basic_blocks): Modify to only add
10897         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
10898         supports named sections.
10899         * c-common.c (handle_section_attribute): Initialize new global
10900         variable, user_defined_section_attribute, to true if user has
10901         specified one.
10902         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
10903         forward edges that cross section boundaries.
10904         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
10905         partitioning information if the architecture supports named
10906         sections.
10907         * cfgrtl.c (target.h): Add statement to include this.
10908         (rtl_split_block): Make sure newly created bb gets correct
10909         partition.
10910         (try_redirect_by_replacing_jump): Make sure redirection isn't
10911         attempting to cross section boundaries.
10912         (force_nonfallthru_and_redirect): Only do partition fix up if
10913         architecture supports named sections.
10914         (rtl_split_edge): Make sure newly created bb ends up in
10915         correct partition.
10916         (commit_one_edge_insertion): Remove code that incorrectly
10917         updated basic block partition; Make sure partition fix up only
10918         happens if architecture supports named sections and it's not
10919         already done.
10920         (rtl_verify_flow_info_1): Fix if-condition on test/error
10921         condition that fallthru edges are not allowed to cross section
10922         boundaries.
10923         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
10924         * final.c (final_scan_insn): Remove redundant test from if-statement;
10925         change calls to text_section into calls to function_section; add code
10926         to only to partitioning fix up if architecture supports named
10927         sections.
10928         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
10929         partition.
10930         (if_convert): Add targetm.have_named_sections to test.
10931         * output.h (unlikely_section_label): Extern declaration for new global
10932         variable.
10933         (unlikely_text_section_name): Likewise.
10934         * opts.c (decode_options): If both partitioning and DWARF debugging
10935         are turned on, issue a warning that this doesn't work, and change
10936         partitiong to basic block reordering (without hot/cold partitions).
10937         * passes.c (rest_of_handle_final): Re-set new global variable,
10938         user_defined_section_attribute, to false.
10939         (rest_of_compilation): Change options for calling partitioning
10940         function: Don't call if the user defined the section attribute, and
10941         don't call if DECL_ONE_ONLY is true for the current function.
10942         * predict.c (choose_function_section): Return immediately if we
10943         are doing hot/cold partitioning (i.e. let the basic block partitioning
10944         determine where the function belongs).
10945         * reg-stack.c (emit_swap_insn): Add condition to step over
10946         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
10947         * toplev.c (user_defined_section_attribute): New global variable.
10948         * toplev.h (user_defined_section_attribute): Extern declaration
10949         for new global variable.
10950         * varasm.c (unlikely_section_label): New global variable.
10951         (unlikely_text_section_name): New global variable.
10952         (unlikely_text_section): Add code to initialize
10953         unlikely_text_section_name if necessary; modify to use
10954         unlikely_text_section_name and unlikely_section_label; also to use
10955         named_section properly.
10956         (in_unlikely_text_section):  Modify to work correctly with
10957         named_section and to use unlikely_text_section_name.
10958         (named_section):  Add code to work properly with cold section.
10959         (function_section): Clean up if-statement.
10960         * config/darwin.c (darwin_asm_named_section): Return to original
10961         code, removing use of SECTION_FORMAT_STRING.
10962         * config/arm/pe.h (switch_to_section):  Add case for
10963         in_unlikely_executed_text to switch statement.
10964         * config/i386/cygming.h (switch_to_section): Likewise.
10965         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
10966         (SECTION_FORMAT_STRING): Likewise.
10967         * config/mcore/mcore.h (switch_to_section): Likewise.
10968         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
10969         (SECTION_FORMAT_STRING): Remove.
10970
10971 2004-08-18  Roger Sayle  <roger@eyesopen.com>
10972
10973         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
10974         -ffixed-reg safe, by preserving the meanings of zero and one.
10975         (CALL_USED_REGISTERS): Likewise.
10976         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
10977
10978 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10979
10980         * config/sh/sh.c (split_branches): Check the result of
10981         next_active_insn.
10982         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
10983         Call rtl_register_cfg_hooks.
10984
10985 2004-08-18  Richard Henderson  <rth@redhat.com>
10986
10987         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
10988         * alias.c (true_dependence): Update to match new semantics.
10989         (canon_true_dependence, write_dependence_p): Likewise.
10990         (anti_dependence, output_dependence): Update write_dependence_p args.
10991         (unchanging_anti_dependence): Remove.
10992         * calls.c (purge_mem_unchanging_flag): Remove.
10993         (fixup_tail_calls): Don't call it.
10994         (expand_call): Don't add unchanging memory to function usage.
10995         * expr.c (emit_block_move_via_libcall): Likewise.
10996         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
10997         (get_subtarget): Don't use RTX_UNCHANGING_P.
10998         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
10999         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
11000         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
11001         * cse.c (insert): Don't use RTX_UNCHANGING_P.
11002         (cse_insn, canon_hash): Use MEM_READONLY_P.
11003         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
11004         instead of RTX_UNCHANGING_P.
11005         * explow.c (maybe_set_unchanging): Remove.
11006         * expr.h (maybe_set_unchanging): Remove.
11007         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
11008         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
11009         (assign_parm_setup_reg, expand_function_start): Likewise.
11010         * integrate.c (copy_rtx_and_substitute): Likewise.
11011         * ra-rewrite.c (emit_colors): Likewise.
11012         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
11013         (fixup_match_1): Likewise.
11014         * reload1.c (reload, alter_reg): Likewise.
11015         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
11016         not RTX_UNCHANGING_P.
11017         (equiv_init_varies_p): Likewise.
11018         * loop-invariant.c (check_maybe_invariant): Likewise.
11019         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
11020         * loop.c (note_addr_stored): Likewise.
11021         (prescan_loop): Likewise. Don't check function usage for clobbered
11022         unchanging memory.
11023         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
11024         not RTX_UNCHANGING_P.
11025         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
11026         * varasm.c (force_const_mem): Likewise.
11027         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
11028         * web.c (entry_register): Likewise.
11029         * tree-gimple.h (get_base_address): Move decl ...
11030         * tree.h: ... here.
11031         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
11032
11033         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
11034         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
11035         (alpha_set_memflags): Update to match.
11036
11037         * config/darwin.c (machopic_indirect_data_reference): Set
11038         MEM_READONLY_P instead of RTX_UNCHANGING_P.
11039         (machopic_indirect_call_target): Likewise.
11040         (machopic_legitimize_pic_address): Likewise.
11041         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
11042         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
11043         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
11044         * config/frv/frv.md (symGOT2reg): Likewise.
11045         * config/i386/i386.c (legitimize_pic_address,
11046         legitimize_tls_address, ix86_split_to_parts): Likewise.
11047         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
11048         * config/ia64/ia64.md (load_fptr): Likewise.
11049         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
11050         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
11051         * config/mcore/mcore.c (block_move_sequence): Likewise.
11052         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
11053         * config/pa/pa.c (legitimize_pic_address): Likewise.
11054         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
11055         (rs6000_emit_move): Likewise.
11056         * config/s390/s390.c (legitimize_pic_address): Likewise.
11057         (legitimize_tls_address): Likewise.
11058         * config/s390/s390.md (casesi): Likewise.
11059         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
11060         * config/sh/sh.md (symGOT2reg): Likewise.
11061         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
11062         * config/v850/v850.md (casesi): Likewise.
11063
11064         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
11065         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
11066         * config/mips/mips.c (mips_restore_gp): Likewise.
11067         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
11068         * config/sh/sh.c (sh_reorg): Likewise.
11069
11070 2004-08-18  Richard Henderson  <rth@redhat.com>
11071
11072         * tree.h (struct tree_decl): Add gimple_formal_temp.
11073         (DECL_GIMPLE_FORMAL_TEMP_P): New.
11074         * gimplify.c (pop_gimplify_context): Clear it.
11075         (lookup_tmp_var): Set it, if is_formal.
11076         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
11077         Use is_gimple_val for VECTOR.  Simplify return value.
11078         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
11079         (gimplify_expr): Likewise.
11080         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
11081         is_gimple_tmp_rhs for clarity.  Update all callers.
11082         (is_gimple_reg_rhs): Simplify logic.
11083         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
11084         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
11085         (is_gimple_formal_tmp_reg): Similarly.
11086         * tree-gimple.h: Update decls.
11087         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
11088         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
11089         * tree-ssa-live.c (var_union, type_var_init): Likewise.
11090
11091 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
11092
11093         * c4x.c (legitimize_operands): Remove calls to
11094         preserve_subexpressions_p.
11095
11096 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
11097
11098         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
11099         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
11100
11101 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
11102
11103         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
11104         Objective-C++ extensions.
11105         * gengtype.c (get_file_basename): Match entire subdirectory name
11106         ('cp', 'objc', 'objcp') rather than just its suffix.
11107         (get_base_file_bitmap): Allow for files to belong to more than one
11108         language.
11109         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
11110         used by more than one front-end.
11111
11112 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
11113
11114         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
11115         avoid use of preserve_subexpressions_p.
11116
11117 2004-08-17  Richard Henderson  <rth@redhat.com>
11118
11119         PR 17051
11120         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
11121
11122 2004-08-17  DJ Delorie  <dj@redhat.com>
11123
11124         * doc/extend.texi: Document new xstormy16 attribute.
11125
11126         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
11127         (xstormy16_splittable_below100_or_register): New.
11128         (combine_bnp): New.
11129         (xstormy16_reorg): New.
11130         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11131
11132         * config/stormy16/stormy16.md (movqi_internal): Make name public.
11133         (movhi_internal): Likewise.
11134         (cbhranchhi): Likewise.
11135         (cbhranchhi_neg): Likewise.
11136         (andhi3): Only allow splittable below100 operands.
11137         (iorhi3): Likewise.
11138         (peephole2): New and/zero_extend->and peephole.
11139         (peephole2): New load/ior/save->set1 peephole.
11140         (peephole2): New load/and/save->clr1 peephole.
11141         (bclrx, bclrx2, bclr7, bclr15): New.
11142         (bsetx, bsetx2, bset7, bset15): New.
11143
11144         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
11145         liberal about acceptable 'B' masks.
11146
11147         * config/stormy16/stormy16-protos.h
11148         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
11149         xstormy16_below100_operand, xstormy16_below100_or_register,
11150         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
11151         (PREDICATE_CODES): Add new predicates.
11152
11153         * config/stormy16/stormy16.c
11154         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
11155         xstormy16_below100_operand, xstormy16_below100_or_register,
11156         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
11157         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
11158         (xstormy16_legitimate_address_p): Allow below100 symbols.
11159         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
11160         (xstormy16_expand_move): Leave below100 operands as-is.
11161         (xstormy16_encode_section_info): Encode below100 symbols.
11162         (xstormy16_strip_name_encoding): New.
11163         (xstormy16_print_operand): Print 'b' as shift mask.
11164         (xstormy16_attribute_table): Add below100 attributes.
11165         (xstormy16_handle_below100_attribute): New.
11166
11167         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
11168         (XSTORMY16_SECTION_FUNCTION): New.
11169         (EXTRA_SECTION_FUNCTIONS): Define using the above.
11170         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
11171         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
11172         (ASM_OUTPUT_LABELREF): Define.
11173
11174         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
11175         (movhi_internal): Add below100 support.
11176         (andhi3): Add below100 support.
11177         (iorhi3): Add below100 support.
11178         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
11179
11180 2004-08-17  James E Wilson  <wilson@specifixinc.com>
11181
11182         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
11183         of VOIDmode for comparison code mode.
11184         * config/mips/mips.md: For conditional move patterns, use mode of
11185         first compare operand for comparison mode, instead of VOIDmode.
11186
11187         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
11188         normal and -ffast-math code.
11189
11190 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
11191
11192         PR c++/15871
11193         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
11194
11195 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
11196
11197         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
11198
11199 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
11200
11201         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
11202         for non Darwin targets.
11203         (*call_value_nonlocal_darwin64): Likewise.
11204
11205 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
11206
11207         * config/rs6000/rs6000.c (rs6000_function_value): Check for
11208         altivec mode for altivec return register.
11209
11210 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
11211
11212         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
11213         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11214         * config/rs6000/rs6000.md: Include darwin.md.
11215         (builtin_setjmp_receiver): Add DImode case.
11216         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
11217         Darwin bits.
11218
11219 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
11220
11221         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
11222         trees.
11223         * tree-vectorizer.h: New File: Same.
11224         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
11225         * common.opt (ftree-vectorize): New flag to enable vectorization.
11226         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
11227         vectorization pass.
11228         * tree-data-ref.h (init_data_ref): Additional argument.
11229         (array_base_name_differ_p): Moved to tree-data-ref.c.
11230         * tree-data-ref.c (array_base_name_differ_p): Revised.
11231         (initialize_data_dependence_relation): Call array_base_name_differ_p
11232         with an extra argument.
11233         (analyze_all_data_dependences): Same.
11234         (init_data_ref): Additional argument is_read to set DR_IS_READ.
11235         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
11236         file.
11237         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
11238         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
11239         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
11240         vectorization pass.
11241         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
11242         (tree_ssa_loop_done): Call scev_finalize.
11243         (tree_vectorize): Define the new vectorization pass.
11244         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
11245         size of the vector they support (until support for multiple vector
11246         sizes is added to the vectorizer).
11247         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
11248         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
11249         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
11250         documentation.
11251
11252 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11253
11254         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
11255         usage.
11256         (generate_protocol_list, handle_impent): Likewise.
11257
11258 2004-08-17  Roger Sayle  <roger@eyesopen.com>
11259
11260         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
11261         ensure that call_used_regs is a superset of both fixed_regs and
11262         call_really_used_regs.
11263
11264 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
11265
11266         PR target/17019
11267         * arm.md (addsi3_cbranch_scratch): Correct case labels.
11268
11269 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
11270
11271         PR middle-end/17036
11272         * fold-const.c (fold): Check for integer operand when
11273         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
11274         Pinski  <pinskia@physics.uc.edu>.
11275
11276 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
11277
11278         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
11279         No need to check if in a cross configuration.
11280         * configure: Regenerate.
11281
11282         * calls.c (precompute_register_parameters):
11283         Inline preserve_subexpressions_p ().
11284         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
11285         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
11286         Likewise.
11287         * expr.c (get_subtarget): Likewise.
11288         * rtl.h (preserve_subexpressions_p): Remove.
11289         * stmt.c (preserve_subexpressions_p): Remove.
11290
11291         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
11292         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
11293         Abort on gimplified cases.
11294
11295 2004-08-16  James E Wilson  <wilson@specifixinc.com>
11296
11297         * tree.h (VECTOR_FLOAT_TYPE_P): New.
11298         (FLOAT_TYPE_P): Use it.
11299         * c-typeck.c (build_binary_op): After convert calls, check for
11300         check for ERROR_MARK operands.
11301
11302 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
11303
11304         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
11305         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
11306         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
11307         (genobjs static pattern rule): Remove %.c dependency.
11308         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
11309         Rename rules; delete commands; fix dependencies.
11310         (mostlyclean): Do not delete temporary source copies.
11311         * configure.ac: Delete all references to BUILD_PREFIX and
11312         BUILD_PREFIX_1.
11313         * configure: Regenerate.
11314
11315         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
11316         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
11317         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
11318         with #ifndef GENERATOR_FILE so that nothing from those headers
11319         is used.
11320
11321         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
11322
11323 2004-08-16  Adam Nemet  <anemet@lnxw.com>
11324
11325         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
11326
11327 2004-08-16  Andrew Pinski  <apinski@apple.com>
11328
11329         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
11330         extraneous semicolon.
11331
11332 2004-08-16  Devang Patel  <dpatel@apple.com>
11333
11334         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
11335         * print-tree.c (print_node): Print DECL_PRESERVE_P.
11336         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
11337         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
11338         * target.h (struct gcc_target): New member, mark_decl_preserved.
11339         * hooks.c (hook_void_charptr): Rename to ...
11340         (hook_void_constcharptr): ... new name.
11341         * hooks.h (hook_void_charptr): Rename to ..
11342         (hook_void_constcharptr): ... new name.
11343         * tree.h (DECL_PRESERVE_P): New #define.
11344         (struct tree_decl): New member, preserve_flag.
11345         * varasm.c (assemble_start_function): Mark decl preserved.
11346         (assemble_variable): Same.
11347         * darwin.c (darwin_mark_decl_preserved): New function.
11348         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
11349         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
11350         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
11351
11352 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11353
11354         * c-decl.c (grokdeclarator): Allow for function definition where
11355         innermost declarator has attributes.
11356
11357 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
11358
11359         * except.c (get_exception_filter, build_post_landing_pads,
11360         dw2_build_landing_pads): Use target-specific mode for 'filter'.
11361         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
11362         * target.h (eh_return_filter_mode): New field added.
11363         * targhooks.c (default_eh_return_filter_mode): Defined.
11364         * targhooks.h (default_eh_return_filter_mode): Declared.
11365         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
11366
11367 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11368
11369         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
11370         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
11371         * configure: Regenerate.
11372
11373 2004-08-16  Stan Shebs  <shebs@apple.com>
11374
11375         Basic support for 64-bit Darwin.
11376         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11377         (machopic_legitimize_pic_address): Similarly, plus use Pmode
11378         instead of SImode.
11379         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
11380         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
11381         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
11382         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
11383         (PROCESSOR_DEFAULT64): Define.
11384         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
11385         Darwin.
11386         * config/rs6000/rs6000.md: Include darwin.md.
11387         (builtin_setjmp_receiver): Add DImode case.
11388         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
11389         Darwin.
11390         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
11391         (rs6000_emit_move): Add DImode case to Darwin bits.
11392         (machopic_output_stub): Use .quad if 64-bit.
11393         * invoke.texi: Document -m32 and -m64.
11394
11395 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
11396
11397         * doc/extend.texi (AltiVec builtins): Document additional differences
11398         from the Motorola AltiVec PIM.
11399
11400 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11401
11402         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
11403         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
11404         (struct tree_common): Update public_flag documentation.
11405
11406 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11407
11408         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11409         Check for artificial variables, not is_gimple_tmp_var.
11410         * tree-ssa-live.c (var_union): Likewise.
11411
11412 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11413
11414         * calls.c (load_register_parameters): Remove spurious FIXME token.
11415
11416 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
11417
11418         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
11419         (c-lang.o): Depend on c-objc-common.h.
11420         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
11421         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
11422         * c-lang.c: Include c-objc-common.h.
11423         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
11424         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
11425         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
11426         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
11427         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
11428         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
11429         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
11430         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
11431         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
11432         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
11433         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
11434         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
11435         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
11436         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
11437         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
11438         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
11439         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
11440         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
11441         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
11442         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
11443         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
11444         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
11445         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
11446         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
11447         Move to c-objc-common.h.
11448         * c-objc-common.c: Include c-objc-common.h.
11449         * c-objc-common.h: New file.
11450
11451 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
11452             Andrew Pinski  <pinskia@physics.uc.edu>
11453
11454         PR target/14931
11455         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
11456         style.
11457
11458 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
11459
11460         * tree.h (build_int_cst): New.
11461         (build_int_2): Remove.
11462         * tree.c (build_int_2): Remove.
11463         (build_int_cst): New.
11464         (make_vector_type, build_common_tree_nodes,
11465         build_common_tree_nodes_2): Use build_int_cst.
11466         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
11467         expand_builtin_strpbrk, expand_builtin_fputs,
11468         build_string_literal, expand_builtin_printf,
11469         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
11470         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
11471         fold_builtin_isdigit, simplify_builtin_strstr,
11472         simplify_builtin_strpbrk, fold_builtin_fputs,
11473         simplify_builtin_sprintf): Use build_int_cst.
11474         * c-common.c (start_fname_decls, fix_string_type,
11475         c_common_nodes_and_builtins, c_init_attributes,
11476         shorten_compare): Likewise.
11477         * c-decl.c (complete_array_type,
11478         check_bitfield_type_and_width): Likewise.
11479         * c-lex.c (interpret_integer, lex_charconst): Likewise.
11480         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
11481         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11482         * c-typeck.c (really_start_incremental_init, push_init_level,
11483         set_nonincremental_init_from_string): Likewise.
11484         * calls.c (load_register_parameters): Likewise.
11485         * convert.c (convert_to_pointer): Likewise.
11486         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
11487         build_fn_info_type, build_ctr_info_value, build_gcov_info):
11488         Likewise.
11489         * except.c (init_eh, assign_filter_values, assign_filter_values):
11490         Likewise.
11491         * expmed.c (store_fixed_bit_field, extract_bit_field,
11492         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
11493         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
11494         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
11495         * expr.c (convert_move, emit_group_load, emit_group_store,
11496         expand_assignment, store_constructor, store_field,
11497         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
11498         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
11499         invert_truthvalue, optimize_bit_field_compare,
11500         decode_field_reference, all_ones_mask_p, constant_boolean_node,
11501         fold_div_compare, fold, fold_read_from_constant_string,
11502         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
11503         * function.c (assign_parm_setup_block): Likewise.
11504         * stmt.c (shift_return_value, expand_end_case_type,
11505         estimate_case_costs): Likewise.
11506         * stor-layout.c (layout_type, initialize_sizetypes,
11507         set_min_and_max_values_for_integral_type): Likewise.
11508         * tree-chrec.c (chrec_fold_multiply_poly_poly,
11509         reset_evolution_in_loop): Likewise.
11510         * tree-chrec.h (build_polynomial_chrec): Likewise.
11511         * tree-complex.c (build_replicated_const): Likewise.
11512         * tree-eh.c (honor_protect_cleanup_actions,
11513         lower_try_finally_onedest, lower_try_finally_copy,
11514         lower_try_finally_switch): Likewise.
11515         * tree-mudflap.c (mf_build_string, mx_register_decls,
11516         mudflap_register_call, mudflap_enqueue_constant): Likewise.
11517         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
11518         * tree-pretty-print.c (dump_generic_node): Likewise.
11519         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
11520         Likewise.
11521         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
11522         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11523         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
11524         Likewise.
11525
11526         * config/alpha/alpha.c (alpha_initialize_trampoline,
11527         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
11528         * config/arm/arm.c (arm_get_cookie_size): Likewise.
11529         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11530         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11531         * config/i860/i860.c (i860_va_start): Likewise.
11532         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11533         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
11534         mips_gimplify_va_arg_expr): Likewise.
11535         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11536         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
11537         add_compiler_branch_island): Likewise.
11538         * config/s390/s390.c (s390_va_start): Likewise.
11539         * config/sh/sh.c (sh_va_start): Likewise.
11540         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
11541         Likewise.
11542         * config/xtensa/xtensa.c (xtensa_va_start,
11543         xtensa_gimplify_va_arg_expr): Likewise.
11544
11545         * objc/objc-act.c (build_objc_string_object,
11546         build_objc_symtab_template, init_def_list, init_objc_symtab,
11547         init_module_descriptor, generate_static_references,
11548         build_selector_translation_table, get_proto_encoding,
11549         build_typed_selector_reference, build_selector_reference,
11550         build_next_objc_exception_stuff,
11551         build_method_prototype_list_template, generate_descriptor_table,
11552         generate_protocols, build_protocol_initializer,
11553         build_ivar_list_template, build_method_list_template,
11554         build_ivar_list_initializer, generate_ivars_list,
11555         generate_dispatch_table, generate_protocol_list,
11556         build_category_initializer, build_shared_structure_initializer,
11557         generate_shared_structures, handle_impent,
11558         generate_objc_image_info): Use build_int_cst.
11559
11560 2004-08-15  Ben Elliston  <bje@au.ibm.com>
11561
11562         * vec.h: Comment improvements.
11563
11564 2004-08-14  Roger Sayle  <roger@eyesopen.com>
11565
11566         * c-common.c (shorten_compare, pointer_int_sum,
11567         c_common_truthvalue_conversion, boolean_increment): Replace calls
11568         to build with calls to buildN.
11569         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
11570         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
11571         gimplify_switch_stmt): Likewise.
11572         * c-typeck.c (default_function_array_conversion,
11573         build_component_ref, build_array_ref, build_function_call,
11574         pointer_diff, build_unary_op, build_conditional_expr,
11575         build_compound_expr, build_modify_expr, c_finish_goto_label,
11576         c_finish_goto_ptr, c_finish_return, c_finish_loop,
11577         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
11578         build_binary_op): Likewise.
11579
11580 2004-08-15  Steven Bosscher  <stevenb@suse.de>
11581
11582         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
11583
11584 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11585
11586         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
11587         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
11588         * fixinc/fixincl.x: Rebuilt.
11589
11590 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
11591
11592         * config/mips/mips-protos.h (mips_symbolic_constant_p)
11593         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
11594         (mips_small_data_pattern_p): Declare.
11595         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
11596         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
11597         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
11598         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
11599         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
11600         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
11601         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
11602         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
11603         (pc_or_label_operand, call_insn_operand, move_operand)
11604         (consttable_operand, symbolic_operand, general_symbolic_operand)
11605         (global_got_operand, local_got_operand, stack_operand)
11606         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
11607         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
11608         (mips_small_data_pattern_p): Replace previous small_data_pattern
11609         predicate.  Turn into a bool () (rtx) function.
11610         * config/mips/predicates.md: New file.
11611         * config/mips/mips.md: Include it.  Use the target-independent
11612         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
11613         trap_comparison_operator and equality_op to equality_operator.
11614         Replace uses of small_int with the equivalent const_arith_operand.
11615         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
11616         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
11617         to fcc_reload_operand.
11618         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
11619
11620 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11621
11622         PR libstdc++/17005 partial fix.
11623         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
11624         except when generating ANSI/C89 code.
11625
11626 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
11627
11628         * c-common.c (shorten_compare): Use force_fit_type directly.
11629
11630 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
11631             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
11632             Dave Korn  <dk@artimi.com>
11633
11634         * doc/install.texi (Building): Avoid duplicate reference to GNU
11635         make requirement.
11636         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
11637
11638 2004-08-14  Richard Henderson  <rth@redhat.com>
11639
11640         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
11641         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
11642
11643 2004-08-13  Richard Henderson  <rth@redhat.com>
11644
11645         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
11646         for constant_call_address_operand.
11647         (call_value_pop_1, call_value_1): Likewise.
11648         (sibcall_value_1, call_value_1_rex64): Likewise.
11649
11650 2004-08-13  James E Wilson  <wilson@specifixinc.com>
11651
11652         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
11653         Correct mode from SFmode to DFmode.
11654
11655 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
11656
11657         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
11658         __cstring_object and __image_info sections with the no_dead_strip
11659         attribute.
11660
11661 2004-08-13  Roger Sayle  <roger@eyesopen.com>
11662             David Billinghurst  <David.Billinghurst@riotinto.com>
11663
11664         PR libgfortran/15930
11665         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
11666         * fixinc/fixincl.x: Regenerate.
11667         * fixinc/tests/base/internal/math_core.h: New file.
11668
11669 2004-08-13  Richard Henderson  <rth@redhat.com>
11670
11671         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
11672         (dbxout_function_end): Remove ifdefs for it.
11673         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
11674
11675 2004-08-13  Richard Henderson  <rth@redhat.com>
11676
11677         * Makefile.in (insn-preds.o): Depend on TREE_H.
11678         * genpreds.c (write_insn_preds_c): Include tree.h.
11679         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
11680         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
11681         const48_operand, and_operand, or_operand, mode_width_operand,
11682         mode_mask_operand, mul8_operand, const0_operand,
11683         hard_fp_register_operand, hard_int_register_operand,
11684         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
11685         samegp_function_operand, direct_call_operand, small_symbolic_operand,
11686         global_symbolic_operand, call_operand, symbolic_operand,
11687         dtp16_symbolic_operand, dtp32_symbolic_operand,
11688         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
11689         gottp_symbolic_operand, alpha_comparison_operator,
11690         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
11691         signed_comparison_operator, alpha_fp_comparison_operator,
11692         divmod_operator, fix_operator, aligned_memory_operand,
11693         unaligned_memory_operand, reg_or_unaligned_mem_operand,
11694         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
11695         reg_no_subreg_operand, addition_operation): Move to predicates.md.
11696         (reg_or_const_int_operand): Remove.  Replace all users with
11697         reg_or_cint_operand.
11698         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
11699         (resolve_reload_operand): Split out of aligned_memory_operand.
11700         * config/alpha/alpha-protos.h: Update for exports.
11701         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
11702         * config/alpha/alpha.md: Include predicates.md.
11703         * config/alpha/predicates.md: New file.
11704
11705 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
11706
11707         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
11708         fields with a pointer to the instruction definition.
11709         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
11710         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
11711         (write_attr_case, write_const_num_delay_slots): Update accordingly.
11712         (write_attr_case, write_const_num_delay_slots): Write the name of
11713         an insn next to its case statement.
11714         * genoutput.c (data): Add a filename field.
11715         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
11716         (output_insn_data): Print the location of each insn definition.
11717         * genrecog.c (write_action): Print the name of an insn above
11718         the statement that returns its code.
11719
11720 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
11721
11722         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
11723         * config/libgloss.h: Likewise.
11724         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
11725         * c4x/c4x-modes.def: Likewise.
11726         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
11727         (c4x_rptb_nop_p): Likewise.
11728         (c4x_rptb_valid_p): Likewise.
11729         (c4x_rptb_insert): Likewise.
11730         (c4x_address_conflict): Likewise.
11731         * config/c4x/c4x.md: Likewise.
11732         * config/frv/frv.md: Likewise.
11733         * config/i386/athlon.md: Likewise.
11734         * config/i386/i386.md: Likewise.
11735         * config/i386/predicates.md: Likewise.
11736         * config/ia64/ia64.c: Likewise.
11737         * config/ia64/itanium1.md: Likewise.
11738         * config/ia64/itanium2.md: Likewise.
11739         * config/iq2000/iq2000.md: Likewise.
11740         * config/mcore/mcore.c: Likewise.
11741         * config/mips/mips.c: Likewise.
11742         * config/mips/r3900.h: Likewise.
11743         * config/mips/sb1.md: Likewise.
11744         * config/pa/milli64.S: Likewise.
11745         * config/pa/pa.c: Likewise.
11746         * config/pa/pa.h: Likewise.
11747         * config/rs6000/8540.md: Likewise.
11748
11749 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
11750
11751         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
11752
11753 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
11754
11755         * sh.md (cbranch define_delay) Use cond_delay_slot for
11756         non-anulled condition too.
11757
11758 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
11759
11760         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
11761         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
11762         any_parallel_operand, lmw_operation, stmw_operation,
11763         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
11764         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
11765         any_parallel_operand.
11766         (return_and_restore_fpregs_{si,di}): Same.
11767
11768 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
11769
11770         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
11771         if pred->singleton != PARALLEL, issue a warning and pretend it was.
11772         Also issue a warning for any predicate we don't know about.
11773
11774 2004-08-12  Richard Henderson  <rth@redhat.com>
11775
11776         * config/i386/i386.c (internal_label_prefix): Export.
11777         (internal_label_prefix_len, struct ix86_address,
11778         ix86_decompose_address, maybe_get_pool_constant,
11779         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
11780         memory_address_length): Export.
11781         (any_fp_register_operand, fp_register_operand,
11782         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
11783         x86_64_general_operand, x86_64_szext_general_operand,
11784         x86_64_nonmemory_operand, x86_64_movabs_operand,
11785         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
11786         x86_64_zext_immediate_operand, const_int_1_31_operand,
11787         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
11788         tls_symbolic_operand, global_dynamic_symbolic_operand,
11789         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
11790         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
11791         constant_call_address_operand, const0_operand, const1_operand,
11792         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
11793         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
11794         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
11795         general_no_elim_operand, nonmemory_no_elim_operand,
11796         index_register_operand, q_regs_operand, flags_reg_operand,
11797         non_q_regs_operand, zero_extended_scalar_load_operand,
11798         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
11799         ix86_comparison_operator, ix86_carry_flag_operator,
11800         fcmov_comparison_operator, promotable_binary_operator,
11801         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
11802         mult_operator, div_operator, arith_or_logical_operator,
11803         memory_displacement_operand, cmpsi_operand, long_memory_operand,
11804         aligned_operand): Move to predicates.md as define_predicates.
11805         (tls_symbolic_operand_1): Remove.
11806         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
11807         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
11808         (legitimize_address): Merge tls_symbolic_operand contents.
11809         (ix86_expand_move): Likewise.
11810         * config/i386/i386-protos.h: Update for exports.
11811         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
11812         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
11813         * config/i386/i386.md: Include predicates.md.
11814         * config/i386/predicates.md: New file.
11815
11816 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
11817
11818         PR c++/16924
11819         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
11820         SYMBOL_REF_DECL.
11821         (i386_pe_mark_dllimport): Likewise.
11822         (i386_pe_encode_section_info): Likewise, when overriding
11823         dllimport attribute.
11824
11825 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
11826
11827         * configure.ac: When testing for flex, nm, ar, and bison, check
11828         that they will actually be built.
11829         * configure: Regenerate.
11830
11831 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
11832
11833         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
11834         (MOVE_MAX_PIECES): Define.
11835
11836 2004-08-12  Devang patel  <dpatel@apple.com>
11837
11838         * dbxout.c (dbxout_begin_prologue): New function.
11839         (dbx_debug_hooks): Use new begin prologue hook.
11840         (dbxout_function_end): Emit N_ENSYM.
11841         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
11842
11843 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
11844
11845         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
11846         argument is float*.
11847
11848         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
11849         for vec_dss.
11850
11851         * doc/extend.texi (AltiVec builtins): Fix description for recent
11852         changes.  Update operation list to match current support.
11853
11854 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
11855
11856         * config/s390/s390.c (struct s390_frame_layout): New struct as element
11857         of struct machine_function.
11858         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
11859         changed all uses.
11860         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
11861         changed all uses.
11862         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
11863         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
11864         (s390_frame_area, s390_register_info): New functions.
11865         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
11866         for base register.
11867         (s390_return_addr_rtx, s390_return_address_offset)
11868         (s390_va_start, s390_gimplify_va_arg)
11869         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
11870         layouts.
11871         (s390_frame_info): Functionality partly moved to s390_register_info.
11872         Made adaptions for new stack layout.
11873         (save_gprs, restore_gprs): Changed meaning of second parameter and
11874         adapted all callers.
11875
11876         * config/s390/s390.h (s390_backchain_string): New global variable.
11877         (MASK_BACKCHAIN): Removed definition.
11878         (TARGET_BACKCHAIN): Changed check.
11879         (TARGET_KERNEL_BACKCHAIN): New macro.
11880         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
11881         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
11882         "kernel-backchain".
11883         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
11884
11885         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
11886         as condition.  Adjusted for new stack layout.
11887
11888         * doc/invoke.texi: Added documentation for new option
11889         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
11890         "-mno-backchain".
11891
11892 2004-08-12  Paul Brook  <paul@codesourcery.com>
11893
11894         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
11895         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
11896
11897 2004-08-12  David Daney  <ddaney@avtrex.com>
11898
11899         * java/gcj.texi:  Add subsection on signal usage.
11900
11901 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
11902
11903         * expr.c (move_by_pieces): Set alignment for move to minimum of
11904         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
11905         alignment, but not less than the original alignment.
11906         (move_by_pieces_ninsns): Same.
11907         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
11908         (store_by_pieces_1): Same.
11909
11910 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
11911
11912         PR tree-optimization/16867
11913         * tree.c (is_global_var): New function.
11914         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
11915         Call is_global_var.
11916         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
11917         Update all users.
11918         (is_global_var): Declare.
11919         * tree-dfa.c (dump_variable): Display global and addressable
11920         attributes.
11921         (add_referenced_var): Clarify documentation when marking
11922         variables call-clobbered.
11923         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
11924         instead of needs_to_live_in_memory.
11925         (mark_call_clobbered): If the variable is a tag, mark it
11926         DECL_EXTERNAL.
11927         * tree-gimple.c (is_gimple_reg): Don't check for
11928         TREE_ADDRESSABLE.
11929         (is_gimple_non_addressable): Likewise.
11930         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
11931         needs to be marked call-clobbered.
11932         (setup_pointers_and_addressables): Call is_global_var instead
11933         of needs_to_live_in_memory.
11934         * tree-ssa-dce.c (need_to_preserve_store): Remove.
11935         Update all users with is_global_var.
11936         (mark_stmt_if_obviously_necessary): Fix processing of aliased
11937         stores.  Don't check the virtual definitions.  Rather, check
11938         whether the store is going into global memory.
11939         (find_obviously_necessary_stmts): Get the symbol from the PHI
11940         result.
11941         * tree-ssa-operands.c (get_call_expr_operands): Do not add
11942         clobbering may-defs if the call does not have side effects.
11943
11944 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
11945
11946         PR c++/16276
11947         * output.h (default_function_rodata_section,
11948         default_no_function_rodata_section): New prototypes.
11949         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
11950         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
11951         (TARGET_ASM_OUT): Add it.
11952         * varasm.c (default_function_rodata_section,
11953         default_no_function_rodata_section): New functions.
11954         * final.c (final_scan_insn): Call
11955         targetm.asm_out.function_rodata_section instead of
11956         readonly_data_section.
11957         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
11958         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11959         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11960         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11961         Likewise.
11962         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11963         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11964         Likewise.
11965         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11966         Likewise.
11967         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11968         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11969         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
11970
11971 2004-08-12  Paul Brook  <paul@codesourcery.com>
11972
11973         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
11974         frame info.
11975         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
11976         DWARF2_UNWIND_INFO.
11977
11978 2004-08-12  Ben Elliston  <bje@au.ibm.com>
11979
11980         PR target/16286
11981         * config/rs6000/altivec.h: Change vector to __vector throughout.
11982         (Except for the `vector' macro itself).
11983
11984 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
11985
11986         * genpreds.c: Add capability to generate predicate bodies as
11987         well as function prototypes.  Write function prototypes for
11988         the generic predicates too.
11989         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
11990         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
11991         (write_match_code, write_predicate_expr, write_one_predicate_function)
11992         (parse_option): New functions.
11993         (output_predicate_decls): Delete.
11994         (main): Read the machine description, process DEFINE_PREDICATE or
11995         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
11996         as appropriate.
11997
11998         * genrecog.c (struct decision_test): Replace index with
11999         struct pred_data pointer.
12000         (next_index): Remove, unused.
12001         (pred_table, preds, special_mode_pred_table): Delete.
12002         (compute_predicate_codes, process_define_predicate): New functions.
12003         (validate_pattern, add_to_sequence, write_switch): Update for
12004         new data structures.
12005         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
12006         Check both error_count and have_error.
12007
12008         * gensupport.c (in_fname, first_predicate): New globals.
12009         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
12010         (predicate_table, last_predicate, old_pred_table)
12011         (old_special_pred_table): New statics.
12012         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
12013         (add_predicate, init_predicate_table): New functions.
12014         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
12015         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
12016         it or max_include_len.  Call init_predicate_table.
12017         (read_rtx): Run the predicate queue after the attribute queue
12018         but before all the others.
12019         * gensupport.h (in_fname, struct pred_data, first_predicate)
12020         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
12021         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
12022         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
12023         * dummy-conditions.c: Don't include bconfig.h, system.h,
12024         coretypes.h, tm.h, or system.h.  Do include stddef.h.
12025         Duplicate declaration of struct c_test from gensupport.h.
12026
12027         * Makefile.in (OBJS-common): Add insn-preds.o.
12028         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
12029         (insn-preds.c, insn-preds.o): New rules.
12030         (s-preds): Also generate insn-preds.c.
12031         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
12032         Update dependencies.
12033         (print-rtl.o, print-rtl1.o): Correct dependencies.
12034
12035         * recog.h: Delete prototypes of predicate functions.
12036
12037         * doc/md.texi (Predicates): New section with complete
12038         documentation of operand/operator predicates.  Remove some
12039         incomplete documentation of predicates from other places.
12040         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
12041         PREDICATE_CODES; indicate that both are deprecated in favor
12042         of define_predicate/define_special_predicate.
12043
12044         * config/ia64/ia64.c: All predicate function definitions moved
12045         to ia64.md, except
12046         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
12047         (ia64_expand_load_address, ia64_expand_move):
12048         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
12049
12050         * config/ia64/ia64.md: All predicates now defined here.
12051         (symbolic_operand): Is now a special predicate.
12052
12053         * config/ia64/ia64.h: Declare ia64_section_threshold.
12054         (PREDICATE_CODES): Delete.
12055
12056 2004-08-12  Richard Henderson  <rth@redhat.com>
12057
12058         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
12059         * c-semantics.c (add_stmt): Set it.
12060         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
12061         before instantiating a variable sized type.
12062
12063 2004-08-12  Richard Henderson  <rth@redhat.com>
12064
12065         * stor-layout.c (round_up, round_down): Move ...
12066         * fold-const.c (round_up, round_down): ... here.  Use
12067         multiple_of_p to avoid any arithmetic at all.
12068
12069 2004-08-12  Richard Henderson  <rth@redhat.com>
12070
12071         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
12072         (gimplify_init_ctor_preeval_1): New.
12073         (gimplify_init_ctor_preeval): New.
12074         (gimplify_init_ctor_eval): New.
12075         (gimplify_init_constructor): Use them.  Always gimplify the LHS
12076         object first.
12077
12078 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
12079
12080         (This patch is part of merge of objc-improvements-branch
12081         into mainline.)
12082
12083         * doc/frontends.texi: Mention Objective-C++ in addition to
12084         Objective-C.
12085         * doc/install.texi: Add 'obj-c++' to list of configurable
12086         languages.
12087         * doc/invoke.texi: Rename Objective-C option headings to
12088         indicate they also apply to Objective-C++.  List file
12089         extensions for Objective-C++ sources.  Mention that
12090         ObjC and ObjC++ compilations may also use C and C++ options,
12091         respectively.  Point users to doc/standards.texi for
12092         further info on ObjC and ObjC++.
12093         * doc/sourcebuild.texi: Mention the objcp/ directory and
12094         the Objective-C++ sources it contains.
12095         * doc/standards.texi: Update link to Apple ObjC site;
12096         add link to gcc readings.html WWW doc.
12097
12098 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
12099
12100         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
12101         and 2004-07-14 changes.
12102
12103 2004-08-12  Paul Brook  <paul@codesourcery.com>
12104
12105         * doc/invoke.texi: Fix typo.
12106
12107 2004-08-11 Devang Patel  <dpatel@apple.com>
12108
12109         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
12110         and -no_dead_strip_inits_and_terms.
12111         (LINK_SPEC): Same.
12112         * doc/invoke.texi (Darwin Options): Document -dead_strip and
12113         -no_dead_strip_inits_and_terms.
12114
12115 2004-08-11  Paul Brook  <paul@codesourcery.com>
12116
12117         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
12118         (arm_load_pic_register): ... to this.
12119         * config/arm/arm.c (arm_finalize_pic): Rename ...
12120         (arm_load_pic_register): ... to this.  Always output insns at the
12121         current location.  Load via low reg in thumb mode.
12122         (arm_expand_prologue): Call arm_load_pic_register.
12123         (thumb_expand_prologue): Ditto.
12124         * config/arm/arm.h (FINALIZE_PIC): Remove.
12125         * config/arm/arm.md (builtin_setjmp_receiver): Call
12126         arm_load_pic_register.
12127
12128 2004-08-11  Paul Brook  <paul@codesourcery.com>
12129
12130         * arm.c (thumb_force_lr_save): Add prototype.
12131         (thumb_compute_save_reg_mask): New function.
12132         (thumb_find_work_register): New function.
12133         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
12134         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
12135         Don't clobber r3 when removing pretend args.
12136         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
12137         (thumb_output_function_prologue): Use new functions.
12138         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
12139         * arm.h (THUMB_REG_PUSHED_P): Remove.
12140
12141 2004-08-11  James E Wilson  <wilson@specifixinc.com>
12142
12143         PR rtl-optimization/16490
12144         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
12145         global_live_at_end for new basic block if already set for other blocks.
12146
12147 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
12148
12149         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
12150
12151         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
12152         (mfcr rlwinm rlwinm patterns): Set length to 12.
12153
12154 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
12155
12156         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
12157         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
12158         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
12159         (start_ssa_stmt_operands): Delete.
12160         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
12161         struct stmt_operands_d.
12162         (build_ssa_operands): New extern entry point.
12163         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
12164         building code, replace with create_ssa_artficial_load_stmt().
12165         * tree-ssa-operands.c (struct voperands_d): Delete.
12166         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
12167         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
12168         (free_uses, free_defs, free_vuses, free_v_may_defs,
12169         free_v_must_defs): Remove dealloc parameter.
12170         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
12171         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
12172         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
12173         vector comparisons, ssa_name reuse, and allocations here.
12174         (verify_start_operands): Delete.
12175         (finalize_ssa_stmt_operands): Set new operands by calling finalize
12176         routines.
12177         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
12178         (append_def, append_usei): Simplify to simple accumulation.
12179         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
12180         duplicates and simple accumulation.
12181         (free_ssa_operands): Free vectors in a stmt_operand structure.
12182         (build_ssa_operands): New. Create a new stmt_operand structure from
12183         a stmt and an old set of stmt_operands.
12184         (get_stmt_operands): Simplify and call build_ssa_operands.
12185         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
12186         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
12187         add_call_read_ops): Don't pass prev_vops around anymore.
12188         (note_addressable): Return if no stmt annotation.
12189         (copy_virtual_operands): Access v_may_def operands through a struct.
12190         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
12191         hash tables without treating the stmt as a real stmt.
12192         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
12193         v_may_def def and use through a struct instead of 2 array elements.
12194         (struct v_may_def_optype_d): Use v_may_def_operand_type.
12195         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
12196
12197 2004-08-11  Nick Clifton  <nickc@redhat.com>
12198
12199         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
12200         this funciton's behaviour.  Return true when the current function
12201         has a section attribute and -mlong-calls is in effect.
12202         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
12203         short-call marker when -mlong-calls is in effect and the function
12204         has a section attribute.
12205
12206 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
12207
12208         * stmt.c (expand_return): If asked to return the RESULT_DECL,
12209         just call expand_value_return on result_rtl.
12210
12211 2004-08-10  Richard Henderson  <rth@redhat.com>
12212
12213         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
12214         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
12215         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
12216         (add_location_or_const_value_attribute): ... not here.  Use
12217         loc_descriptor_from_tree if possible.
12218         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
12219         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
12220         values specially.
12221         (loc_descriptor_from_tree): New.  Update callers.
12222         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
12223         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
12224         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
12225         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
12226         and BUILT_IN_STACK_RESTORE.
12227         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
12228         * stmt.c (expand_stack_alloc): Remove.
12229         * tree-mudflap.c (mx_register_decls): Don't look for
12230         BUILT_IN_STACK_ALLOC.
12231         * tree-nested.c (convert_local_reference): Likewise.
12232         * tree.h (DECL_VALUE_EXPR): New.
12233
12234 2004-08-10  Richard Henderson  <rth@redhat.com>
12235
12236         * stor-layout.c (round_up): Check for 0/1 before dividing.
12237         (round_down): Likewise.
12238
12239         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
12240
12241 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
12242
12243         * config.gcc (arm*-*-eabi*): New target.
12244         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
12245         (TARGET_LIB_INT_CMP_BIASED): Likewise.
12246         * expmed.c (expand_divmod): Try a two-valued divmod function as a
12247         last resort.
12248         * gthr.h: Remove bogus tokens at end of #pragma.
12249         * optabs.c (expand_twoval_binop_libfunc): New function.
12250         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
12251         (prepare_float_lib_cmp): Try reversing the condition.
12252         (debug_optab_libfuncs): New function.
12253         * optabs.h (expand_twoval_binop_libfunc): Declare.
12254         * config/arm/arm.c (arm_init_libfuncs): New function.
12255         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
12256         (TARGET_INIT_LIBFUNCS): Define it.
12257         * config/arm/arm.h (TARGET_BPABI): New macro.
12258         * config/arm/arm-protos.h
12259         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
12260         * config/arm/bpabi.S: New file.
12261         * config/arm/bpabi.c: Likewise.
12262         * config/arm/bpabi.h: Likewise.
12263         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
12264         (__aeabi_drsub): Likewise.
12265         (__aeabi_dsub): Likewise.
12266         (__aeabi_dadd): Likewise.
12267         (__aeabi_ui2d): Likewise.
12268         (__aeabi_i2d): Likewise.
12269         (__aeabi_f2d): Likewise.
12270         (__aeabi_dmul): Likewise.
12271         (__aeabi_ddiv): Likewise.
12272         (__aeabi_cdrcmple): Likewise.
12273         (__aeabi_cdcmpeq): Likewise.
12274         (__aeabi_cdcmple): Likewise.
12275         (__aeabi_dcmpeq): Likewise.
12276         (__aeabi_dcmplt): Likewise.
12277         (__aeabi_dcmple): Likewise.
12278         (__aeabi_dcmpge): Likewise.
12279         (__aeabi_dcmpgt): Likewise.
12280         (__aeabi_dcmpun): Likewise.
12281         (__aeabi_d2iz): Likewise.
12282         (__aeabi_d2uiz): Likewise.
12283         (__aeabi_d2f): Likewise.
12284         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
12285         (__aeabi_frsub): Likewise.
12286         (__aeabi_fsub): Likewise.
12287         (__aeabi_fadd): Likewise.
12288         (__aeabi_ui2f): Likewise.
12289         (__aeabi_i2f): Likewise.
12290         (__aeabi_fmul): Likewise.
12291         (__aeabi_fdiv): Likewise.
12292         (__aeabi_cfrcmple): Likewise.
12293         (__aeabi_cfcmpeq): Likewise.
12294         (__aeabi_cfcmple): Likewise.
12295         (__aeabi_fcmpeq): Likewise.
12296         (__aeabi_fcmplt): Likewise.
12297         (__aeabi_fcmple): Likewise.
12298         (__aeabi_fcmpge): Likewise.
12299         (__aeabi_fcmpgt): Likewise.
12300         (__aeabi_fcmpun): Likewise.
12301         (__aeabi_f2iz): Likewise.
12302         (__aeabi_f2uiz): Likewise.
12303         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
12304         (__aeabi_uidivmod): New function or alias.
12305         (__aeabi_idivmod): Likewise.
12306         (__aeabi_idiv0): Likewise.
12307         (__aeabi_ldiv0): Likewise.
12308         (__aeabi_llsr): Likewise.
12309         (__aeabi_lasr): Likewise.
12310         (__aeabi_llsl): Likewise.
12311         (bpabi.S): Include it.
12312         * config/arm/libgcc-bpabi.ver: New file.
12313         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
12314         (LINK_SPEC): Remove.
12315         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
12316         __aeabi_ulcmp.
12317         * config/arm/t-bpabi: New file.
12318         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
12319         (TARGET_LIB_INT_CMP_BIASED): Likewise.
12320
12321 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
12322
12323         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
12324         * config/rs6000/rs6000.md (clrmemsi): New pattern.
12325         * config/rs6000/rs6000.c (expand_block_clear): New function.
12326         (expand_block_move): Convert alignment to bits.  Use SImode and
12327         HImode for unaligned addresses if not STRICT_ALIGNMENT.
12328
12329 2004-08-10  Caroline Tice  <ctice@apple.com>
12330
12331         * varasm.c (unlikely_section_label): New global variable.
12332         (unlikely_text_section_name): New global variable.
12333         (text_section):  Remove alignment statement.
12334         (unlikely_text_section): Remove alignment statement; use
12335         unlikely_section_label rather than hard-coded string.
12336         (assemble_start_function): Initialize unlikely_section_label and
12337         unlikely_text_section_name;  make sure cold section is properly
12338         aligned at start of function; output unlikely_section_label if
12339         appropriate.
12340
12341 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
12342
12343         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
12344         * config/s390/s390.c (s390_canonicalize_comparison): New function.
12345         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
12346         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
12347         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
12348         ("*tmqi_mem"): Remove SUBREG from pattern.
12349         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
12350         ("*andsi3_cconly"): Likewise.
12351
12352 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
12353
12354         PR target/16909
12355         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
12356
12357 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
12358
12359         * doc/sourcebuild.texi (compat testing): Document available test
12360         framework commands.  Use the preferred spelling of DejaGnu.
12361
12362 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
12363
12364         * lambda.h: Add matrix type, and prototypes for remainder of
12365         matrix and vector functions.
12366         (lambda_vector_mult_const): New function.
12367         (lambda_vector_negate): Ditto.
12368         (lambda_vector_add): Ditto.
12369         (lambda_vector_add_mc): Ditto.
12370         (lambda_vector_copy): Ditto.
12371         (lambda_vector_zerop): Ditto.
12372         (lambda_vector_equal): Ditto.
12373         (lambda_vector_min_nz): Ditto.
12374         (lambda_vector_first_nz): Ditto.
12375         (lambda_vector_matrix_mult): Ditto.
12376         * lambda-mat.c: New file.
12377         * Makefile.in (lambda-mat.o): New.
12378
12379 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
12380
12381         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
12382         after linking stmt into the program.
12383         (bsi_remove): Don't call modify_stmt.
12384         * tree-complex.c (update_complex_assignment,
12385         expand_complex_comparison): Call modify_stmt after changing the stmt.
12386         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
12387         removing the stmt.
12388         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
12389         the stmt, and only if needed.
12390         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
12391         expression.
12392         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
12393         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
12394         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
12395         (eliminate_redundant_computations): Don't pass an annotation. Call
12396         modify_stmt rather than setting the annotation directly.
12397         (record_equivalences_from_stmt): Remove unused local 'j'.
12398         (cprop_operand): Take a stmt rather than an annotation as a parameter.
12399         Call modify_stmt.
12400         (cprop_into_stmt): Pass stmt rather than annotation.
12401         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
12402         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
12403         modify_stmt.
12404         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
12405
12406 2004-08-10  Jason Merrill  <jason@redhat.com>
12407
12408         PR middle-end/16948
12409         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
12410         the RESULT_DECL.
12411
12412 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
12413
12414         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
12415         hash function.
12416
12417 2004-08-10  Roger Sayle  <roger@eyesopen.com>
12418
12419         * config/mips/mips.md: New reciprocal square root patterns that
12420         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
12421
12422 2004-08-10  Paul Brook  <paul@codesourcery.com>
12423
12424         * config/arm/arm-protos.h (arm_set_return_address,
12425         thumb_set_return_address): Add prototypes.
12426         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
12427         * config/arm/arm.c (arm_compute_func_type,
12428         use_return_insn, arm_compute_save_reg0_reg12_mask,
12429         arm_compute_save_reg_mask, arm_output_function_prologue,
12430         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
12431         current_function_calls_eh_return.
12432         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
12433         old eh code.
12434         (arm_set_return_address, thumb_set_return_address): New functions.
12435         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
12436         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
12437         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
12438         (epilogue): Use the stackadj register.
12439         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
12440
12441 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
12442
12443         PR target/3144
12444         * expr.c (move_by_pieces_ninsns): Add max_size argument.
12445         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
12446         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
12447         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
12448         but using MOVE_RATIO.
12449         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
12450         (can_store_by_pieces): Change max_size type to unsigned int.
12451         (store_by_pieces_1): Likewise.  Pass max_size to
12452         move_by_pieces_ninsns.
12453         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
12454         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
12455         to move_by_pieces_ninsns.
12456         (STORE_BY_PIECES_P): Define.
12457         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
12458         to move_by_pieces_ninsns.
12459         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
12460
12461         * config/i386/i386.h (CLEAR_RATIO): Define.
12462
12463 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12464
12465         * expr.c (expand_expr_real_1): Add back code that was not dead.
12466
12467 2004-08-09  Andrew Pinski  <apinski@apple.com>
12468
12469         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
12470         which is found to be compatible before returning the aliasing set.
12471
12472 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
12473
12474         * ggc-zone.c (struct alloc_zone): Add statistics counters.
12475         (always_collect): New flag.
12476         (ggc_alloc_zone_1): Update statistics support.  Don't include
12477         overhead in allocated counter.
12478         (sweep_pages): Update allocated counter for large pages.  Don'y
12479         include overhead.
12480         (ggc_collect_1): Always collect.
12481         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
12482         whether to collect.
12483         (SCALE, LABEL): New macros.
12484         (ggc_print_statistics): Add statistics support.
12485
12486 2004-08-09  Roger Sayle  <roger@eyesopen.com>
12487
12488         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
12489         (init_expmed): Fix potential overrun problem with "all.reg".
12490         (expand_sdiv2_pow2): Add an alternate implementation for signed
12491         division, if the target provides a suitable conditional move insn.
12492
12493 2004-08-09  Paul Brook  <paul@codesourcery.com>
12494         Richard Henderson  <rth@redhat.com>
12495
12496         * unwind-dw2.c (uw_install_context_1): Update target saved stack
12497         pointer.
12498
12499 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
12500
12501         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
12502         Check DATA limit only if there's no AS limit.  Ignore insanely
12503         low DATA limits.
12504         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
12505         but take care that the AS limit isn't overrun.
12506         * doc/invoke.texi: Update documentation of min-heapsize parameter.
12507
12508 2004-08-09  Jeff Law  <law@redhat.com>
12509
12510         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
12511         (tree-ssa-threadupdate.o): Add dependencies.
12512         * tree-ssa-threadupdate.c: New file.
12513         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
12514         (rewrite_vars_out_of_ssa): Remove prototype.
12515         (cleanup_tree_cfg): Returns a bool.
12516         * tree.h (thread_through_all_blocks): Prototype.
12517         * tree-outof-ssa.c  (SSANORM_*): Move into here.
12518         (remove_ssa_form): Now static.
12519         (rewrite_vars_out_of_ssa): Kill.
12520         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
12521         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
12522         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
12523         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
12524         anything was changed.
12525         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
12526         from the PHI's annotation rather than the edge associated with
12527         the new argument.
12528         * tree-ssa-dom.c (redirection_edges): Kill.
12529         (redirect_edges_and_update_ssa_graph): Kill.
12530         (tree_ssa_dominator_optimize): Do not reset forwardable flag
12531         for blocks anymore.  Do not initialize redirection_edges.
12532         Call thread_through_all_blocks.  Simplify code for cleanup
12533         of the CFG and iterating.  No longer call cleanup_tree_cfg
12534         outside the iteration loop.
12535         (thread_across_edge): No longer mess with forwardable blocks.
12536
12537 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
12538
12539         * explow.c (memory_address): Use memory_address_p.
12540         * recog.c (general_operand): Likewise.
12541         * regrename.c: No need to define REG_OK_STRICT.
12542
12543 2004-08-09  Steven Bosscher  <stevenb@suse.de>
12544
12545         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
12546         New timers.
12547         * gcse.c: Include timevar.h.
12548         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
12549         and global_copy_prop_count.
12550         (local_const_prop_count, local_copy_prop_count): New static globals.
12551         (gcse_main): Set the right timevar for each pass.
12552         (cprop_jump): Increment global_const_prop_count when a constant is
12553         propagated.  Add "GLOBAL" to dump output.
12554         (cprop_insn): Increment global_const_prop_count when a constant is
12555         propagated, or global_copy_prop_count when a copy is propagated.
12556         (do_local_cprop): Likewise for local_const_prop_count and
12557         local_copy_prop_count.
12558         (one_cprop_pass): Initialize const/cprop counters to zero.
12559         Print out results of local and global const/cprop separately.
12560         (bypass_block): Break over-length line.
12561         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
12562         for bb-reorder.o and tracer.o.
12563
12564 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12565
12566         * Makefile.in (GTFILES): Remove stmt.c
12567         (stmt.o): Do not depend on gt-stmt.h.
12568         * emit-rtl.c (emit_line_note): Do not call
12569         set_file_and_line_for_stmt.
12570         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
12571         do everything.
12572         * function.c (free_after_parsing): Do not free STMT field.
12573         (allocate_struct_function): Do not call init_stmt_for_function.
12574         (assign_stack_temp_for_type): Do not accept values of keep
12575         other than 0 or 1.
12576         (init_temp_slots): Do not initialize removed variables.
12577         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
12578         and X_VAR_TEMP_SLOT_LEVEL fields.
12579         * rtl.h (set_file_and_line_for_stmt): Remove.
12580         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
12581         struct stmt_status, cond_stack, case_stack, nesting_stack,
12582         nesting_depth, emit_locus, set_file_and_line_for_stmt,
12583         same_case_target_p, init_stmt_for_function, emit_nop,
12584         expand_start_cond, expand_start_elseif, expand_start_else,
12585         expand_elseif, expand_end_cond): Remove.
12586         (preserve_subexpressions_p): Remove references to CFUN->STMT.
12587         (expand_start_case, expand_end_case_type): Remove, merge into...
12588         (expand_case): ... this one, including other bits from
12589         expand_expr_real_1.  Inline same_case_target_p.  Turn members
12590         of CASE_STACK into local variables.
12591         (emit_case_bit_tests): Inline same_case_target_p.
12592         (add_case_node): Add HEAD argument, return new head of the list,
12593         do not handle default label here.
12594         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
12595         expand_start_elseif, current_nesting_level, expand_start_case,
12596         expand_end_case_type, expand_end_case, add_case_node,
12597         init_stmt_for_function, expand_elseif): Remove prototypes.
12598         (expand_case): Add prototype.
12599
12600 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12601
12602         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
12603
12604 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12605
12606         * expr.c (var_rtx): Remove.
12607         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
12608         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
12609         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
12610         Abort.
12611         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
12612         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
12613         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
12614
12615 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
12616         Ayal Zaks <zaks@il.ibm.com>
12617
12618         * common.opt (freschedule-modulo-scheduled-loops): New flag.
12619         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
12620         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
12621         when -freschedule-modulo-scheduled-loops flag is not specified.
12622         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
12623         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
12624         More accurate placing of insn in row of partial schedule.
12625         (ps_insn_find_column): New function.
12626         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
12627         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
12628         (schedule_region): Use sched_is_disabled_for_current_region_p.
12629         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
12630
12631 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12632
12633         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
12634         change.
12635
12636 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12637
12638         * config/i386/i386.c (ix86_expand_clrmem): Properly call
12639         gen_strset for 64bit target.
12640
12641 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
12642
12643         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
12644
12645 2004-08-07  Jason Merrill  <jason@redhat.com>
12646
12647         Make return in memory explicit.
12648         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
12649         (assign_parm_find_data_types): Remove code for old front end
12650         invisible reference handling.
12651         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
12652         (expand_function_end): Likewise.
12653         * gimplify.c (gimplify_return_expr): Handle a dereferenced
12654         RESULT_DECL.
12655         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
12656         (declare_return_variable): Handle DECL_BY_REFERENCE.
12657         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
12658         (cp_genericize_r): Use convert_from_reference.
12659         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
12660         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
12661
12662         * c-common.c (c_warn_unused_result): Check TREE_USED before
12663         warning about a CALL_EXPR with an unused value.
12664
12665 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
12666
12667         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
12668         to the compiler.  Use -fshort-wchar by default.
12669
12670 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
12671
12672         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
12673         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
12674         threshhold.
12675         * doc/invoke.texi (param): Document min-crossjump-insns.
12676
12677 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
12678
12679         PR c/13282
12680         * c.opt (Wmissing-field-initializers): New option.
12681         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
12682         * c-typeck.c (pop_init_level): Guard the missing field warning with
12683         warn_missing_field_initializers rather than extra_warnings.
12684         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
12685         some of the explanation from...
12686         (-Wextra): ...here.  Say that the missing field warning can be
12687         seperately controlled by -Wmissing-field-initializers.
12688
12689 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
12690
12691         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
12692         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
12693         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
12694         * tree.def (ENTRY_VALUE_EXPR): Remove.
12695
12696 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
12697
12698         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
12699         the places where it is actually needed.  Don't use repz; stosb
12700         for -Os with sufficiently small constant sizes.
12701         For sufficiently small repz; stos{l,q} repeat counts use a sequence
12702         of stos{l,q} instructions instead.
12703
12704 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12705
12706         PR tree-optimization/16807
12707         * loop-iv.c (dump_iv_info): Dump invariants correctly.
12708         (iv_subreg, iv_extend): Express value of invariant purely in
12709         base field.
12710
12711 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
12712
12713         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
12714         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
12715
12716 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
12717
12718         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
12719         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
12720         pre_dec_operand.
12721         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
12722         pattern until reload is finished to allow better code generation
12723         and split them completely into separate instrunctions.
12724         (*andsi3_split): New pattern.
12725
12726 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
12727
12728         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
12729         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
12730         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12731         * tree.h (handle_dll_attribute): Declare.  Test
12732         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12733         * c-common.h (c_determine_visibility): Declare.
12734         * c-common.c (c_determine_visibility): New function.
12735         * c-decl.c (finish_decl): Use it.
12736         (finish_function): Likewise.
12737         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
12738         zero, by default.  Use #if, not #ifdef, to test it.
12739         * config/arm/arm.c (arm_attribute_table): Use
12740         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
12741         #if.
12742         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
12743         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12744         to 1.
12745         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
12746         * config/i386/i386.c (ix86_attribute_table): Use
12747         handle_dll_attribute for dllimport/dllexport.  Test
12748         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12749         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
12750         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12751         it to 1.
12752         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
12753         with #if.
12754         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12755         it to 1.
12756         * doc/extend.texi (dllexport): Clarify and correct documentation.
12757         (dllimport): Likewise.
12758         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
12759         handle_dll_attribute.
12760
12761 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12762
12763         * tree-ssa-loop-manip.c: New file.
12764         * Makefile.in (tree-ssa-loop-manip.o): Add.
12765         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
12766         Declare.
12767         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
12768         form.
12769         (tree_ssa_loop_done): Verify loop closed ssa form.
12770         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
12771
12772 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12773
12774         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
12775         pa_asm_output_aligned_local): New functions.
12776         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
12777         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
12778         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
12779         pa_asm_output_aligned_common.
12780         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12781         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
12782         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
12783         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12784         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
12785         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
12786         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12787         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
12788         common data.
12789
12790 2004-08-05  Andrew Pinski  <apinski@apple.com>
12791
12792         * objc/objc-act.c (build_objc_string_object): Mark the address
12793         expression as constant.
12794
12795 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
12796
12797         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
12798         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
12799         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
12800
12801 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12802
12803         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
12804         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
12805         out, and associated obsolete comments.
12806
12807 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
12808
12809         * tree.h (force_fit_type): Return a tree, take three flags.
12810         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
12811         TREE_CONSTANT_OVERFLOW here.
12812         (int_const_binop, const_binop): Adjust.
12813         (size_int_type): Do sign extension here.
12814         (fold_convert_const, optimize_bit_field_compare,
12815         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
12816         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
12817         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
12818
12819 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12820
12821         PR tree-optimization/16864
12822         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
12823         for ssa names without default_def.
12824
12825 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
12826
12827         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
12828         frame pointer, restore eax with an ebp-relative address.
12829
12830 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
12831
12832         PR 14516
12833         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
12834         * c-common.h (make_rtl_for_local_static): Delete.
12835         * c-decl.c (shadow_tag_warned): Clean up comment.
12836         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
12837         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
12838         * c-semantics.c (make_rtl_for_local_static): Delete.
12839         * expr.c (init_block_move_fn): Use set_user_assembler_name.
12840         (init_block_clear_fn): Likewise.
12841         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
12842         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
12843         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
12844         * tree.h (make_decl_rtl): Remove second parameter.
12845         (set_user_assembler_name): New.
12846         * varasm.c (set_user_assembler_name): New.
12847         (make_decl_rtl): Remove second parameter.  Update callers in many
12848         files.
12849
12850 2004-08-05  Adam Nemet  <anemet@lnxw.com>
12851
12852         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
12853         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
12854         to LynxOS 4.0.
12855         * gthr-lynx.h: New file.
12856         * config/lynx-ng.h: Remove file.
12857         * config/lynx.h: Update to LynxOS 4.0.
12858         * config/t-lynx: New file.
12859         * config/i386/lynx-ng.h: Remove file.
12860         * config/i386/lynx.h: Update to LynxOS 4.0.
12861         * config/rs6000/lynxbase.h: Remove file.
12862         * config/rs6000/lynx.h: Update to LynxOS 4.0.
12863         * config/rs6000/t-lynx: New file.
12864         * doc/install.texi (Options specification): Remove reference to
12865         LynxOS from systems where --with-gnu-as makes a difference.
12866
12867 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12868
12869         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
12870         __UINTMAX_TYPE__.
12871         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
12872         __INTMAX_MAX__.
12873         (c_cpp_builtins): Call it.
12874         * doc/cpp.texi: Update.
12875
12876 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
12877
12878         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
12879         cost.
12880
12881 2004-08-04  Jan Hubicka  <jh@suse.cz>
12882
12883         * basic-block.h (profile_staus): New global variable.
12884         * cfg.c (profile_status): Declare.
12885         (check_bb_profile): Break out from ....; use profile_status
12886         (dump_flow_info): ... here.
12887         * cfgbuild.c (find_basic_blocks): Set profile_status.
12888         * cfgexpand.c (tree_expand_cfg): Likewise.
12889         * predict.c (estimate_probability): Likewise.
12890         * profile.c (branch_prob): Likewise.
12891         * tree-cfg.c (build_tree_cfg): Likewise.
12892         (dump_function_to_file): Use check_bb_profile.
12893         * tree-pretty-print (dump_bb_header): Likewise.
12894         * tree-profile.c (do_tree_profiling): Cleanup.
12895
12896 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
12897
12898         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
12899         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
12900         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
12901         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
12902         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
12903         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
12904         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
12905         (ggc-none.o, errors.o): Move rule to generators section;
12906         correct dependencies.
12907         (min-insn-modes.o): Move rule to generators section; remove
12908         unnecessary explicit command; correct dependencies.
12909         (print-rtl.o, print-rtl1.o): Correct dependencies.
12910         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
12911         (mostlyclean): Update.
12912
12913         * errors.c: Include bconfig.h not config.h.  Correct comment.
12914         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
12915         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
12916         * print-rtl.c: Don't include tm_p.h.
12917
12918         * rtl.h: Move forward-decl of struct function down where it's
12919         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
12920         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
12921
12922 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12923             Jeff Law  <law@redhat.com>
12924
12925         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
12926         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
12927         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
12928         manipulate the duplicated ssa names.
12929         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
12930         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
12931         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
12932         New functions.
12933         (release_ssa_name): Do not release ssa names that may have multiple
12934         definitions.
12935         * tree.h (release_ssa_name_force, mark_for_rewrite,
12936         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
12937         marked_ssa_names): Declare.
12938         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
12939         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
12940         Update call to rewrite_ssa_into_ssa.
12941
12942 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
12943
12944         * defaults.h (TARGET_DECLSPEC): New macro.
12945         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
12946         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
12947         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
12948         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
12949         __declspec support.
12950         (TARGET_DECLSPEC): Define.
12951         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
12952         __declspec support.
12953         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
12954         __declspec support.
12955         (TARGET_DECLSPEC): Define.
12956         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
12957         __declspec support.
12958         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
12959         support.
12960         * doc/tm.texi (TARGET_DECLSPEC): Document.
12961
12962         * doc/extend.texi: Fix typo in comment.
12963
12964 2004-08-04  Paul Brook  <paul@codesourcery.com>
12965
12966         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
12967         (TARGET_CXX): Use it.
12968         * target.h (struct gcc_target): Add cdtor_returns_this.
12969         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
12970         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
12971         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
12972
12973 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
12974
12975         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
12976         low/high pair. Do range checking directly.
12977         (interpret_integer): Adjust.
12978
12979 2004-08-04  Nick Clifton  <nickc@redhat.com>
12980
12981         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
12982         GCC ABI.
12983         * doc/invoke.texi: Document this new switch and also the -mrenesas
12984         switch.
12985
12986 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
12987
12988         * cfglayout.c (insn_locators_initialize): Update the current
12989         location before initializing a location.
12990
12991 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
12992
12993         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
12994         (dbxout_function_end): Return after emitting the "Lscope" symbol
12995         under the same conditions that this function formerly wasn't called.
12996         Add explanatory comments.
12997
12998         PR 14860
12999         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
13000         on the new decl.
13001
13002         PR 13956
13003         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
13004         functions, broken out of dbxout_block.
13005         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
13006         stabs too, if it contains symbols.  Use the begin_label and
13007         the Lscope label (emitted by dbxout_function_end) for the
13008         range of this block.
13009
13010 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
13011
13012         * doc/install.texi: Update autoconf version requirements.
13013
13014 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13015
13016         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
13017         * recog.c (general_operand, immediate_operand, nonmemory_operand)
13018         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
13019         * regclass.c (record_reg_classes): Likewise.
13020         * reload.c (find_reloads): Likewise.
13021         * reload1.c (reload): Likewise.
13022
13023 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13024
13025         * gensupport.c (init_md_reader_args_cb): Renamed from
13026         init_md_reader_args.  Add third option, callback function for
13027         parsing program-specific options.  Add diagnosis of incorrect
13028         number of input files.
13029         (init_md_reader): Fold into init_md_reader_args_cb.
13030         (init_md_reader_args): Now a thin wrapper around
13031         init_md_reader_args_cb.
13032         * gensupport.h: Update prototypes.
13033
13034         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
13035         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
13036         * genrecog.c: No need to diagnose lack of an input file;
13037         init_md_reader_args will handle it.
13038         * genconditions.c: Likewise, and use init_md_reader_args.
13039         * genconstants.c: Likewise, and no need to call read_md_rtx.
13040
13041 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
13042
13043         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
13044         declarations.
13045
13046 2004-08-03  Mike Stump  <mrs@apple.com>
13047
13048         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
13049         for frameworks.
13050         * doc/invoke.texi (Darwin Options): Update to reflect above.
13051
13052 2004-08-03  Roger Sayle  <roger@eyesopen.com>
13053
13054         PR middle-end/16790
13055         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
13056         truncations, not just global truncations.
13057
13058 2004-08-03  Andrew Pinski  <apinski@apple.com>
13059
13060         PR bootstrap/16865
13061         * loop-iv.c (simplify_using_assignment): Initialize lhs.
13062
13063 2004-08-03  Paul Brook  <paul@codesourcery.com>
13064
13065         * gcc/doc/install.texi: Document MPFR requirement.
13066
13067 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
13068
13069         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
13070         and mmap() explicitly instead of relying on preset autoconf cache
13071         variables.
13072         * configure: Regenerate.
13073
13074 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
13075
13076         PR target/16570
13077         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
13078         to tmake_file.
13079         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
13080         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
13081         to tmake_file.
13082
13083         * config/i386/t-gmm_malloc: New file.
13084         * config/i386/t-pmm_malloc: Likewise.
13085
13086         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
13087
13088 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
13089             Tanguy Fautrà <tfautre@pandora.be>
13090
13091         * config/i386/pmm_malloc.h: New file.
13092
13093 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
13094
13095         * config/i386/gmm_malloc.h: New file.
13096
13097 2004-08-03  Dale Johannesen  <dalej@apple.com>
13098
13099         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
13100         * c-common.c: Include opts.h.
13101         (c_common_get_alias_set): Fix check for a single input file.
13102         * toplev.c: Remove current_file_decl.
13103         * tree.h: Ditto.
13104
13105 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
13106
13107         * config.gcc (arm*-*-symbianelf*): New target.
13108         * config/arm/symbian.h: New file.
13109
13110         * gthr-gnat.c: Add visibility #pragmas.
13111         * gthr-gnat.h : Likewise.
13112         * gthr.h: Likewise.
13113         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
13114         (__ffsDI2): Likewise.
13115         (__clzSI2): Likewise.
13116         (__ctzSI2): Likewise.
13117         (__ctzDI2): Likewise.
13118         (__popcountSI2): Likewise.
13119         (__popcountDI2): Likewise.
13120         (__paritySI2): Likewise.
13121         (__parityDI2): Likewise.
13122         * libgcc2.h: Add visibility #pragmas.
13123         (__clzDI2): Add prototype.
13124         (__clzSI2): Likewise.
13125         (__ctzSI2): Likewise.
13126         (__ffsDI2): Likewise.
13127         (__ffsSI2): Likewise.
13128         (__ctzDI2): Likewise.
13129         (__popcountSI2): Likewise.
13130         (__popcountDI2): Likewise.
13131         (__paritySI2): Likewise.
13132         (__parityDI2): Likewise.
13133         * unwind-dw2-fde.h: Add visibility #pragmas.
13134         * unwind.h: Likewise.
13135
13136 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
13137             Dale Johannesen  <dalej@apple.com>
13138             Roger Sayle  <roger@eyesopen.com>
13139
13140         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
13141         constants more accurately.  Adjust costs for FMA instructions.
13142         Add cases for most logical and float operations.  Recurse into
13143         most operands.
13144
13145 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
13146
13147         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
13148
13149 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
13150
13151         * ra-build.c (conflicts_between_webs): For webs that cross a call add
13152         conflicts to regs_invalidated_by_call.
13153
13154 2004-08-03  Paul Brook  <paul@codesourcery.com>
13155
13156         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
13157
13158 2004-08-03  Jan Hubicka  <jh@suse.cz>
13159
13160         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
13161         ARRAY_REF argument.
13162
13163 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
13164
13165         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
13166         arm968es, arm10e, arm1020e, arm1022e.
13167         * invoke.texi: Update list of ARM cores.
13168         * arm-tune.md: Regenerate.
13169
13170 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
13171
13172         * arm/gentune.sh: New file.
13173         * arm/t-arm: New file.
13174         * arm/arm-tune.md: New file (autogenerated).
13175         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
13176         * arm.md (attribute tune): Delete.  Include arm-tune.md.
13177
13178 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
13179
13180         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
13181         penultimate parameter.  All callers adjusted.
13182         (struct prefix_list): Remove used_flag_ptr.
13183         (find_a_file): Do not set *pl->used_flag_ptr.
13184         (warn_B, warn_std_ptr): Remove.
13185
13186 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
13187             Mostafa Hagog <mustafa@il.ibm.com>
13188
13189         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
13190
13191 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
13192
13193         * dwarf2out.c (output_call_frame_info): Don't change data format
13194         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
13195         label.  Use 'true' not '1'.
13196         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
13197         required.
13198
13199 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13200
13201         * gdbinit.in: Reflect previous changes to rtunion_def.
13202
13203 2004-08-02  Roger Sayle  <roger@eyesopen.com>
13204
13205         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
13206         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
13207
13208 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13209
13210         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
13211         vec_p_reserve.
13212         * langhooks.h (lang_hooks::builtin_function): Rename parameter
13213         from "class" to "bt_class".
13214
13215 2004-08-02  Paul Brook  <paul@codesourcery.com>
13216
13217         PR rtl-optimization/15068
13218         * flow.c (init_propagate_block_info): Check condition is reversible.
13219
13220 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13221
13222         * gengtype.h (options::info): Change type to const char *.
13223         (enum gc_used_enum): Move out of struct type scope.
13224         * gengtype.c (create_option): Convert initializer for option::info to
13225         appropiate type.
13226         (adjust_field_type, walk_type, write_func_for_structure,
13227         write_root, write_roots): Remove pointless cast.
13228
13229 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
13230
13231         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
13232
13233 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13234
13235         * rtl.h (union rtunion_def): Have all members  start with the
13236         prefix "rt_".
13237         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
13238         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
13239         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
13240         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
13241         access.
13242         * gengtype.c (adjust_field_rtx_def): Likewise.
13243         * rtlanal.c (loc_mentioned_in_p): Likewise.
13244
13245 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
13246
13247         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
13248         Replace uses of mips/elf64.h with mips/elf.h
13249         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
13250         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
13251         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
13252         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
13253         (HANDLE_SYSV_PRAGMA): Delete.
13254         (ASM_OUTPUT_DEF): Fix formatting.
13255         * config/mips/elf64.h: Delete.
13256
13257 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
13258
13259         * config/ia64/ia64.c (got_symbolic_operand): Do require a
13260         symbol+offset operand to have its offset be zero mod 0x3fff
13261         when GOT entries are in use.  Clarify logic in SYMBOL_REF
13262         case.  Clarify comments.
13263         (ia64_expand_load_address): Split a symbol+offset load when
13264         the offset is nonzero mod 0x3fff, not 0x1fff.
13265
13266 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
13267
13268         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
13269         if trying to *store* to a non-offsettable address.
13270         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
13271         a nonoffsettable address.
13272         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
13273         Clean up.
13274         (movti_string): Don't move GPRs to a nonoffsettable address.
13275         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
13276
13277 2004-08-02  Ben Elliston  <bje@au.ibm.com>
13278
13279         PR target/16155
13280         * config/rs6000/altivec.h: Replace typeof with __typeof__.
13281
13282 2004-08-01  Richard Henderson  <rth@redhat.com>
13283
13284         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
13285         variable sized types.
13286
13287 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13288
13289         * doc/invoke.texi: In the MIPS options section, remove the passage
13290         saying that -mexplicit-relocs is usually disabled for -mabicalls
13291         -fno-unit-at-a-time.
13292         * config/mips/mips.c (override_options): Remove the code that enforced
13293         this rule.
13294
13295 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13296
13297         * config/mips/mips.md (cprestore): Provide two alternatives, one for
13298         an in-range offset and one for an out-of-range offset.  Wrap the latter
13299         in .set macro/.set nomacro if it's inside a .set nomacro block.
13300
13301 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13302
13303         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
13304         (mips_restore_gp): Declare.
13305         * config/mips/mips.c (mips_add_offset): Add a scratch register
13306         argument.  Reimplement in rtl only, reusing MIPS16 logic from
13307         mips_output_mi_thunk.
13308         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
13309         to mips_add_offset.
13310         (mips_gp_save_slot): Delete.
13311         (mips_restore_gp): New function.
13312         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
13313         * config/mips/mips.md (exception_receiver): Turn into a
13314         define_insn_and_split.  Use mips_restore_gp to do the split.
13315         (call_internal, call_value_internal, call_value_multiple_internal): Use
13316         mips_restore_gp to restore $gp.
13317
13318 2004-07-31  Andrew Pinski  <apinski@apple.com>
13319
13320         PR other/16842
13321         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
13322
13323 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
13324
13325         * c-decl.c (diagnose_mismatched_decls): Give error for external
13326         redeclaration of identifier declared with no linkage, not just
13327         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
13328         error for redeclaration with no linkage.
13329
13330 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
13331             Fariborz Jahanian <fjahanian@apple.com>
13332
13333         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
13334         non-offsettable addresses even for DImode.
13335         (rs6000_split_multireg_move): Cope with non-offsettable addresses
13336         being moved into multiple GPRs.
13337
13338         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
13339         to 64.
13340         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
13341         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
13342         to 128.
13343         * config/rs6000/darwin-ldouble.c (isless): New macro.
13344         (inf): New macro.
13345         (nonfinite): New macro.
13346         (FPKINF): Delete.
13347         (_xlqadd): Completely rewrite.
13348         (_xlqmul): Correct overflow handling.
13349         (_xlqdiv): Correct overflow handling.
13350         * config/rs6000/darwin-ldouble-format: New file.
13351
13352 2004-07-30  Roger Sayle  <roger@eyesopen.com>
13353             Richard Henderson  <rth@redhat.com>
13354
13355         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
13356         9 into the equivalent lea instruction.
13357
13358 2004-07-30  Richard Henderson  <rth@redhat.com>
13359
13360         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
13361         with DECL_INITIAL if fb_lvalue.
13362         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
13363         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
13364         with <Cxxx>.
13365         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
13366
13367 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13368
13369         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
13370         pointer escapes through a function call, assume that the
13371         callee will dereference it.
13372         (add_pointed_to_var): Assume that VALUE is always an
13373         ADDR_EXPR.
13374         (collect_points_to_info_r): Only call add_pointed_to_var if
13375         the value is an ADDR_EXPR.
13376
13377 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13378
13379         * tree-ssa-alias.c (create_alias_map_for): Do not get the
13380         alias set of the inner type of ARRAY_TYPEs.
13381
13382 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13383
13384         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
13385         setting a non-register to UNDEFINED right before the call to
13386         set_lattice_value.
13387
13388 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13389
13390         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
13391
13392 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13393
13394         * tree-ssa.c (verify_flow_sensitive_alias_info): When
13395         comparing points-to sets of different pointers, make sure the
13396         second pointer is actually referenced in the code.
13397
13398 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
13399
13400         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
13401         (got_symbolic_operand): Remove unreachable code.
13402         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
13403         setjmp_operand; add entry for tls_symbolic_operand.
13404         * config/ia64/ia64-protos.h: Remove all prototypes of
13405         predicate functions.
13406
13407 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
13408
13409         * c-common.h (lang_post_pch_load): New variable.
13410         * c-pch.c (lang_post_pch_load): Define it.
13411         (c_common_read_pch): Use it.
13412         * cgraphunit.c (record_call_1): Give the front end a chance to
13413         record additional needed entities when a variable is marked as
13414         needed.
13415         * tlink.c (recompile_files): Robustify.
13416         (scan_linker_output): If a symbol is assigned to a file,
13417         but after recompilation is not present there, issue an error
13418         message.
13419
13420 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13421
13422         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
13423         Take orig_loop argument and pass it to set_level.
13424         (schedule_sm): Pass the correct orig_loop to force_move_till.
13425
13426 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13427
13428         * cfgloop.c (update_latch_info): Update dominator of the new block.
13429         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
13430         info.
13431         * dominance.c (verify_dominators): Check that the dominance tree is
13432         connected.
13433         (recount_dominator): Ignore unreachable blocks.
13434         (iterate_fix_dominators): Cleanup old dominance information before
13435         recomputing it.
13436
13437 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13438
13439         * tree-ssa-operands.c (get_expr_operands): Revert changes
13440         to ADDR_EXPR processing introduced by:
13441             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13442             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
13443
13444 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
13445
13446         * doc/implement-c.texi: Add C90 subclause references.  Point to
13447         preprocessor documentation instead of duplicating it.  Add points
13448         only present in C90.  Fill in documentation for all points.
13449
13450 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13451
13452         * pa.c (output_movb): Correct typo.
13453
13454 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
13455
13456         * ra.h (single_reg_in_regclass): Declare.
13457         * ra.c (single_reg_in_regclass): Define.
13458         (first_hard_reg): New.
13459         (init_ra): Initialize single_reg_in_regclass.
13460         * ra-colorize.c (ok_class): New.
13461         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
13462
13463 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
13464
13465         * gcov-io.h: Allow zero tag as EOF indicator.
13466         (gcov_is_eof): Remove.
13467         (gcov_truncate): Remove.
13468         * gcov-io.c (gcov_seek): Always SEEK_SET.
13469         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
13470         EOF tag.
13471         * coverage.c (read_counts_file): Don't use gcov_is_eof.
13472         * gcov-dump.c (dump_file): Likewise.
13473         * gcov.c (read_graph_file, read_count_file): Likewise.
13474
13475         * c-decl.c (complete_array_type): Don't gratuitously copy
13476         maxindex.  Check it always has a type.
13477
13478 2004-07-29  Steven Bosscher  <stevenb@suse.de>
13479
13480         * rtl.c (currently_expanding_to_rtl): New.
13481         * rtl.h (currently_expanding_to_rtl): Export it.
13482         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
13483
13484         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
13485         inliner hack.
13486         * config/sh/sh.c: Replace rtx_equal_function_value_matters
13487         with currently_expanding_to_rtl.
13488         * config/sh/sh.md: Likewise.
13489         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
13490
13491 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13492
13493         Introduce sh2a support.
13494         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13495         * config.gcc: Build multilibs for sh2a and sh2a-single by
13496         default.
13497         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
13498         default.  Split their tests out of the corresponding SH4
13499         multilibs.
13500         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
13501         multilibs for SH2a.
13502         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13503         * config.gcc: Handle sh2a multilibs and cpu selection.
13504         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
13505         * config/sh/t-mlib-sh2a: New.
13506         * config/sh/t-mlib-sh2a-nofpu: New.
13507         * config/sh/t-mlib-sh2a-single: New.
13508         * config/sh/t-mlib-sh2a-single-only: New.
13509         2004-07-09  Nick Clifton  <nickc@redhat.com>
13510         Issue 43400
13511         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
13512         -ml and -m2a are used together.
13513         2004-03-23  DJ Delorie  <dj@redhat.com>
13514         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
13515         when we have a double-sized FPU.
13516         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13517         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
13518         is set.
13519         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
13520         -msh2a-single and -msh2a-single-only
13521         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13522         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
13523         is set.
13524         2004-02-20  DJ Delorie  <dj@delorie.com>
13525         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
13526         2004-02-20  Fred Fish <fnf@redhat.com>,
13527         Corinna Vinschen <vinschen@redhat.com>
13528         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
13529         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
13530         2004-02-18  DJ Delorie  <dj@redhat.com>
13531         * config/sh/sh.c (broken_move): Add support for movi20.
13532         * config/sh/sh.h: Likewise.
13533         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
13534         * config/sh/sh.md (udivsi3_sh2a): New.
13535         (udivsi3): Call it.
13536         (divsi3_sh2a): New.
13537         (divsi3): Call it.
13538         (mul_r): New.
13539         (ashlsi3_sh2a): New.
13540         (ashrsi3_sh2a): New.
13541         (lshrsi3_sh2a): New.
13542         (movsi_i): Disable for sh2a.
13543         (movsi_ie): Add movi20.
13544         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
13545         sh2a, for -m2a-nofpu mode.
13546         2004-02-13  DJ Delorie  <dj@redhat.com>
13547         * config/sh/lib1funcs.asm: Handle double vs single better.
13548         * config/sh/sh.h: Likewise.
13549         2004-02-09  DJ Delorie  <dj@redhat.com>
13550         * config/sh/crt1.asm: Add support for sh2a.
13551         * config/sh/elf.h: Likewise.
13552         * config/sh/lib1funcs.asm: Likewise.
13553         * config/sh/sh.c: Likewise.
13554         * config/sh/sh.md: Likewise.
13555         * config/sh/sh.h: Likewise.
13556         * config/sh/t-sh: Likewise.
13557
13558 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13559
13560         * config/frv/frv.md (movqi_internal, movhi_internal,
13561         movsi_internal): Add backup alternatives for memory inputs.
13562
13563 2004-07-28  Matt Austern  <austern@apple.com>
13564
13565         * config/darwin.c (darwin_one_byte_bool): New global variable.
13566         * config/darwin.h (darwin_one_byte_bool): Declare.
13567         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
13568         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
13569         value of darwin_one_byte_bool.
13570         * doc/invoke.texi: Document -mone-byte-bool flag.
13571
13572 2004-07-28  Eric Christopher  <echristo@redhat.com>
13573
13574         * c-common.c (c_common_unsafe_for_reeval): Delete.
13575         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
13576         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
13577         * calls.c (fix_unsafe_tree): Delete.
13578         (expand_call): Delete code which used above.
13579         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
13580         * expr.c (expand_expr_real_1): Ditto.
13581         * fold-const.c (non_lvalue): Ditto.
13582         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13583         (lhd_unsafe_for_reeval): Ditto.
13584         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
13585         * langhooks.h (unsafe_for_reeval): Ditto.
13586         (unsave_expr_now): Adjust comment.
13587         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
13588         (estimate_num_insns_1): Ditto.
13589         * tree-pretty-print.c (dump_generic_node): Ditto.
13590         * tree.c (expr_align): Ditto.
13591         (unsave_expr): Delete.
13592         (unsafe_for_reeval): Ditto.
13593         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
13594         * tree.def (UNSAVE_EXPR): Delete.
13595         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13596
13597 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
13598
13599         * tree.h (enum tls_model): Move ...
13600         * coretypes.h: ... here.
13601
13602 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
13603
13604         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
13605
13606 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
13607
13608         * cse.c (validate_canon_reg): New function, split out from...
13609         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
13610
13611 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13612
13613         * tree-ssa-alias.c (maybe_create_global_var): Don't just
13614         return if .GLOBAL_VAR has been created.
13615
13616 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13617
13618         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
13619         every variable that may have aliases, not just tags.
13620
13621 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
13622
13623         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
13624         move_from_CR_eq_bit.
13625         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
13626
13627
13628         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
13629         e500_flip_eq_bit.
13630
13631         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
13632         output_e500_flip_eq_bit.
13633
13634         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
13635         output_e500_flip_eq_bit.
13636         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
13637         output_e500_flip_eq_bit.
13638         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
13639         (print_operand): case D.  Get to EQ bit.
13640
13641 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
13642
13643         * gcov.c (function_summary): Add missing \n.
13644
13645 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13646
13647         Introduce sh4a support.
13648         * config.gcc: Handle sh4a multilibs and cpu selection.
13649         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
13650         * config/sh/t-mlib-sh4a: New.
13651         * config/sh/t-mlib-sh4al: New.
13652         * config/sh/t-mlib-sh4a-nofpu: New.
13653         * config/sh/t-mlib-sh4a-single: New.
13654         * config/sh/t-mlib-sh4a-single-only: New.
13655         2004-02-20  DJ Delorie  <dj@redhat.com>
13656         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
13657         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
13658         2003-08-22  Eric Christopher  <echristo@redhat.com>
13659         * config/sh/sh4a.md: Update for chip errata.
13660         2003-08-07  Eric Christopher  <echristo@redhat.com>
13661         * config/sh/sh4a.md: New file. sh4a processor description.
13662         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
13663         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
13664         of -m4a-nofpu.
13665         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
13666         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
13667         * doc/invoke.texi (SH Options): Document -m4al.
13668         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
13669         * config/sh/sh.c (expand_block_move): Remove commented-out code
13670         checked in by mistake.
13671         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
13672         single elements from SFmode vectors.
13673         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
13674         register.
13675         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
13676         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
13677         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
13678         sh_fsca_int2sf): Remove variable declarations.
13679         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
13680         sh_fsca_int2sf): New functions.
13681         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
13682         sh_fsca_int2sf_rtx): New static variables.
13683         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
13684         sh_fsca_int2sf): Declare.
13685         * config/sh/sh.md: Adjust.
13686         * doc/invoke.texi (SH Options): Document new options.
13687         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
13688         compatibility from SH4 code.
13689         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
13690         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
13691         early.
13692         (memory_movsrc_operand): Renamed to...
13693         (unaligned_load_operand): ... this.  Simplified.
13694         * config/sh/sh.h (PREDICATE_CODES): Adjust.
13695         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
13696         input operand to SImode, and adjust the others.  Introduce
13697         post-increment by peephole.
13698         * config/sh/sh.c (expand_block_move): Give the target address the
13699         same mode as the temp reg.
13700         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
13701         copying.
13702         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
13703         Introduce support for SH4a.
13704         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
13705         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
13706         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
13707         sh_fsca_int2sf): New.
13708         (sh_init_builtins): Initialize them.
13709         (print_operand): Support `d'.
13710         (expand_block_move): Use movua if src is misaligned.
13711         (memory_movsrc_operand): New.
13712         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
13713         and one of the SH4 macros.
13714         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
13715         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
13716         SELECT_SH4A_SINGLE): New.
13717         (TARGET_NONE): Add SH4A_BIT.
13718         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
13719         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
13720         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
13721         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
13722         (enum processor_type): Added PROCESSOR_SH4A.
13723         (PREDICATE_CODES): Add memory_movsrc_operand.
13724         * config/sh/sh.md: Removed unused variables.
13725         (attr cpu): Add sh4a.
13726         (attr type): Add movua, fsrra and fsca.
13727         (prefetch): New, for SH4.
13728         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
13729         (toggle_sz): Set type to fp.
13730         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
13731         (movua, extv, extzv): New.
13732         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
13733         and 4a-single-only.
13734
13735 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13736
13737         * tree-optimize.c (init_tree_optimization_passes): Schedule
13738         pass_may_alias right after the program is renamed into SSA.
13739         * tree-pass.h (PROP_alias): Define.
13740         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
13741         * tree-sra.c (pass_sra): Likewise.
13742         * tree-ssa-ccp.c (pass_ccp): Likewise.
13743         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
13744         * tree-ssa-dce.c (pass_dce): Likewise.
13745         * tree-ssa-dom.c (pass_dominator): Likewise.
13746         * tree-ssa-dse.c (pass_dse): Likewise.
13747         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
13748         * tree-ssa-loop-ch.c (pass_ch): Likewise.
13749         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
13750         * tree-ssa-pre.c (pass_pre): Likewise.
13751         * tree-tailcall.c (pass_tail_recursion): Likewise.
13752         * tree-ssa.c (pass_redundant_phi): Likewise.
13753         * tree-ssa-alias.c (aliases_computed_p): Remove.
13754         Update all users.
13755         (init_alias_info): Do not mark all type tags for renaming
13756         unconditionally.
13757         Clear may_aliases from every symbol.
13758         (setup_pointers_and_addressables): If a pointer has not been
13759         dereferenced and it had a type tag, clear it and mark the old
13760         tag for renaming.
13761
13762 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13763
13764         PR tree-optimization/16705
13765         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
13766         .GLOBAL_VAR.
13767
13768 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13769
13770         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
13771         check.
13772
13773         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
13774         don't make another one.
13775
13776         PR optimization/15077
13777         * function.h (struct function): Add field saved_static_chain_decl.
13778         Fix comment for static_chain_decl.
13779         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
13780         * tree-inline.h (save_body): Add new arg.
13781         * tree-optimize.c (tree_rest_of_compilation): Handle saving
13782         static_chain_decl.
13783
13784 2004-07-27  Richard Henderson  <rth@redhat.com>
13785
13786         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
13787         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
13788         is_gimple_addressable.
13789         * tree-gimple.c (is_gimple_addressable): Rename from
13790         is_gimple_addr_expr_arg; accept INDIRECT_REF.
13791         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
13792         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
13793         rename to is_gimple_addressable.
13794
13795 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
13796
13797         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
13798
13799 2004-07-27  Richard Henderson  <rth@redhat.com>
13800
13801         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
13802         before rounding.
13803
13804 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
13805
13806         * libgcc2.c: Change all conditionals testing
13807         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
13808         * libgcc2.h: Likewise.
13809         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
13810         TYPE_PRECISION of float80_type to 80.
13811         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
13812         of fpreg_type and float80_type to 80.
13813         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
13814         * config/m68k/netbsd-elf.h:
13815         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
13816         to evaluate to 80 whenever they would formerly have evaluated to 96.
13817         * config/i386/sco5.h: Remove unnecessary redefinition of
13818         LONG_DOUBLE_TYPE_SIZE.
13819         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
13820         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
13821         XFmode, with a bitsize of 80.  Update commentary.
13822         * config/ia64/ia64-modes.def: Likewise.
13823         * config/m68k/m68k-modes.def: Likewise.
13824
13825 2004-07-27  Steven Bosscher  <stevenb@suse.de>
13826
13827         * cfgexpand.c (tree_expand_cfg): Fix comment.
13828
13829         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
13830         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
13831         Remove.
13832         (prepare_function_start): Don't set rtx_equal_function_value_matters.
13833         * integrate.c (copy_rtx_and_substitute): Don't test for it.
13834         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
13835         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
13836         here again.  Update leading comment.
13837         * rtl.c (rtx_equal_function_value_matters): Remove.
13838         (rtx_equal_p): Don't test for it.
13839         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
13840         Likewise.
13841
13842         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
13843         * rtl.c (note_insn_name): Likewise.
13844         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
13845         * final.c (final_scan_insn): Likewise.
13846
13847         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
13848         * passes.c (rest_of_handle_eh): Do it here.
13849
13850         * stmt.c (struct nesting): Remove struct nesting block member.
13851         (struct stmt_status): Remove x_block_start_count field.
13852         (current_block_start_count): Remove.
13853
13854 2004-07-27  Brian Booth  <bbooth@redhat.com>
13855
13856         * tree-optimize.c (register_one_dump_file): Update condition that uses
13857         static_pass_number.
13858         (dup_pass_1): Replace with...
13859         (next_pass_1): This.
13860         (NEXT_PASS): Call next_pass_1.
13861         (DUP_PASS): Remove.
13862         (init_tree_optimization_passes): Remove uses of DUP_PASS.
13863         (execute_one_pass): Update condition that uses
13864         static_pass_number.
13865         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
13866         integer.
13867
13868 2004-07-27  Nick Clifton  <nickc@redhat.com>
13869
13870         * config/m32r/m32r.c: Include integrate.h in order to get the
13871         prototype for get_hard_reg_initial_val().
13872
13873         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
13874         and tidy up indentation.
13875         (final_presence_set): Use absence_set instead, so that if there is
13876         nothing in the "o" pipe the "s" pipe can be scheduled.
13877
13878 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
13879
13880         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
13881         don't have PT_VARS nor PT_MALLOC set.
13882         Clear name tag from pointers that have not been dereferenced.
13883         (set_pt_anything, set_pt_malloc): Forward declare.
13884         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
13885         not type compatibility when determining if a pointer can be
13886         copy propagated.
13887
13888 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
13889
13890         * expr.h (canonicalize_condition, get_condition): Add an int argument.
13891         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
13892         it to check whether the condition is still valid at the jump insn.
13893         * ifcvt.c (noce_get_condition): Likewise.
13894         (noce_get_alt_condition): Update call to canonicalize_condition.
13895         * loop-iv.c (simplify_using_initial_values): Update call to
13896         get_condition.  Remove FIXME.
13897         (check_simple_exit): Update call to get_condition.
13898         * loop-unswitch.c (may_unswitch_on): Likewise.
13899         * loop.c (check_dbra_loop): Likewise.
13900         (canonicalize_condition, get_condition): Add an argument to say whether
13901         the condition must still be valid at INSN.
13902         (get_condition_for_loop): Update call to get_condition.  Require that
13903         the condition be valid at INSN.
13904         * predict.c (estimate_probability): Update call to get_condition.
13905         Remove unused earliest parameter.
13906         (expected_value_to_br_prob): Update call to canonicalize_condition.
13907
13908 2004-07-26  Eric Christopher  <echristo@redhat.com>
13909
13910         * tree-dfa.c (add_referenced_var): Register initializers of global
13911         variables.
13912
13913 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
13914
13915         * config/i386/i386.c (function_arg): Always treat 8-
13916         and 16-byte wide vectors the same, even if MMX/SSE
13917         are disabled.
13918         (contains_128bit_aligned_vector_p): Add comment.
13919
13920 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
13921
13922         * ra.h (enum node_type): Rename to:
13923         (enum ra_node_type).
13924         * ra-colorize.c: Likewise.
13925
13926 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
13927
13928         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
13929         after simplifying the jump.
13930
13931 2004-06-26  Richard Henderson  <rth@redhat.com>
13932
13933         * calls.c (combine_pending_stack_adjustment_and_call): Make
13934         preferred_unit_stack_boundary argument unsigned.  Make
13935         unadjusted_alignment unsigned.
13936         (expand_call): Make preferred_stack_boundary and
13937         preferred_unit_stack_boundary variables unsigned.
13938         * function.c (assign_stack_local_1): Make alignment unsigned.
13939         * function.h (struct function): Make stack_alignment_needed,
13940         preferred_stack_boundary unsigned.
13941         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
13942         (ix86_compute_frame_layout): Make stack_alignment_needed,
13943         preferred_alignment variables unsigned.
13944         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
13945
13946 2004-07-26  Tom Tromey  <tromey@redhat.com>
13947
13948         * tree.h: Fix typo in comment.
13949
13950 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
13951
13952         PR bootstrap/12804
13953         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
13954         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
13955         (ggc_free): Remove incorrect freeing.
13956         (sweep_pages): Advance PP for large pages.  Fix indentation.
13957
13958 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
13959
13960         PR rtl-optimization/16643
13961         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
13962         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
13963         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
13964         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
13965         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
13966         * function.c (thread_prologue_and_epilogue_insns): Likewise.
13967         * rtl.h (tracer): Add a flags parameter.
13968         * tracer.c (tracer): Pass it to cfg_layout_initialise.
13969         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
13970         (rest_of_handle_reorder_blocks): Update calls to tracer and
13971         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
13972         (rest_of_handle_tracer): Pass 0 to tracer.
13973         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
13974
13975 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
13976
13977         PR target/16239
13978         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
13979         f->f.
13980
13981 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
13982
13983         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
13984         (BINFO_BASE_ACCESS): Adjust.
13985         (BINFO_BASE_ACCESS_APPEND): New.
13986         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
13987         * dbxout.c (dbxout_type): Adjust binfo access accessing.
13988         * dwarf2out.c (gen_member_die): Likewise.
13989         * tree-dump.c (deque_and_dump): Likewise.
13990
13991 2004-07-26  Falk Hueffner  <falk@debian.org>
13992
13993         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
13994         costs.
13995
13996 2004-07-25  Roger Sayle  <roger@eyesopen.com>
13997
13998         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
13999         value off of the stack if TARGET_USE_FFREEP.
14000
14001 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14002
14003         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
14004         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
14005         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
14006         check on invocation of XRESIZEVEC ().
14007
14008 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14009
14010         * c-common.c (disable_builtin_function): Rename variable n to
14011         new_disabled_builtin.
14012         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
14013         Rename local variable old to old_decl.
14014         * gensupport.c (shift_output_template): Rename parameter old to src.
14015         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
14016         old_rtx and newx to new_rtx.
14017
14018 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14019
14020         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
14021         of c-pragma.h.
14022         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
14023         enum cpp_ttype.
14024         * c-lex.c: Likewise.
14025
14026 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14027
14028         * fold-const.c (constant_boolean_node): Make extern.
14029         (make_range): Wrap long lines.
14030         (fold_cond_expr_with_comparison): Remove unnecessary call to
14031         pedantic_non_lvalue.  Add missing calls to fold_convert.
14032         (fold_truthop): Add missing calls to fold_convert.
14033         (fold): Likewise.
14034         * tree.h (constant_boolean_node): Add prototype here.
14035         * builtins.c (expand_builtin_strncmp): Add missing calls to
14036         fold_convert.
14037         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
14038         Call fold_convert and constant_boolean_node to correct types.
14039         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
14040         missing call to fold_convert to correct types.
14041
14042 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
14043             Brian Ryner  <bryner@brianryner.com>
14044
14045         PR c++/9283
14046         PR c++/15000
14047         * c-common.c (c_common_attribute_table): Allow
14048         handle_visibility_attribute to be called for types.
14049         (handle_visibility_attribute) When given a type, set the visibility
14050         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
14051         so that we can check later whether the attribute was present. Added
14052         warning if attribute applied to non class type.
14053         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
14054         decls and checking that they are consistent.
14055         * common.opt: Added -fvisibility.
14056         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
14057         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
14058         * flags.h, tree.h: Added assorted support defines for overall patch
14059         * opts.c: Added parsing support for -fvisibility.
14060         * tree.c (build_decl): Set visibility for all decls to be whatever
14061         is in force at that time.
14062         * varasm.c (default_binds_local_p_1): Reworked logic determining
14063         when to make a symbol locally bound.
14064         * doc/invoke.texi: Added documentation for -fvisibility and
14065         -fvisibility-inlines-hidden.
14066
14067 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14068
14069         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
14070         * c-common.c: Add missing casts from void * to other types.
14071         * c-decl.c: Likewise.
14072         * c-format.c: Likewise.
14073         * c-lex.c: Likewise.
14074         * c-pragma.c: Likewise.
14075         * c-typeck.c: Likewise.
14076         * defaults.h: Likewise.
14077         * genconstants.c: Likewise.
14078         * gengtype-lex.l: Likewise.
14079         * genmodes.c: Likewise.
14080         * read-rtl.c: Likewise.
14081         * rtl.c: Likewise.
14082
14083 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14084
14085         * bitmap.c: Use type-safe memory allocation macros from libiberty.
14086         * c-common.c: Likewise.
14087         * c-decl.c: Likewise.
14088         * c-lang.c: Likewise.
14089         * c-lex.c: Likewise.
14090         * c-opts.c: Likewise.
14091         * c-parse.in: Likewise.
14092         * c-typeck.c: Likewise.
14093         * genconditions.c: Likewise.
14094         * gengtype-lex.l: Likewise.
14095         * gengtype-yacc.y: Likewise.
14096         * gengtype.c: Likewise.
14097         * genmodes.c: Likewise.
14098         * gensupport.c: Likewise.
14099         * read-rtl.c: Likewise.
14100         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
14101         htab_find_slot().
14102
14103 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14104
14105         * c-decl.c (groktypename, groktypename_in_param_context): Rename
14106         variable typename to type_name.
14107         * c-lex.c (interpret_float): Likewise.
14108
14109 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14110
14111         * convert.c (convert_to_real, convert_to_integer,
14112         convert_to_complex): Replace calls to build with calls to buildN.
14113         * coverage.c (tree_coverage_counter_ref): Likewise.
14114         * dojump.c (do_jump): Likewise.
14115         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
14116         * emit-rtl.c (component_ref_for_mem_expr,
14117         set_mem_attributes_minus_bitpos): Likewise.
14118         * explow.c (update_nonlocal_goto_save_area): Likewise.
14119         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
14120         expand_mult_add): Likewise.
14121         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
14122         store_constructor, get_inner_reference, expand_expr_real_1,
14123         try_casesi, try_tablejump): Likewise.
14124         * function.c (expand_function_start): Likewise.
14125         * stmt.c (emit_case_bit_tests, expand_end_case_type,
14126         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
14127         * stor-layout.c (place_union_field, layout_type): Likewise.
14128         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
14129         * varasm.c (copy_constant): Likewise.
14130
14131 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14132
14133         * c-common.c: Rename all identifiers named `new'.
14134         * c-decl.c: Likewise.
14135         * gensupport.c: Likewise.
14136         * simplify-rtx.c: Likewise.
14137         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
14138         with XNEW().
14139         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
14140         with XNEWVEC().
14141
14142 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
14143
14144         PR c/15360
14145         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
14146         declarations until after calling pushdecl.
14147         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
14148         "extern" and not on whether the declaration is initialized.
14149
14150 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
14151
14152         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
14153         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
14154         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
14155         "cpplib.h", "c-pragma.h", "c-common.h".
14156         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
14157         (solaris_register_pragmas): New functions.
14158         * config/sol2-protos.h: New file.
14159         * config/sol2.c: New file.
14160         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
14161         (REGISTER_TARGET_PRAGMAS): New macros.
14162         (solaris_pending_aligns, solaris_pending_inits)
14163         (solaris_pending_finis): New variables.
14164         * config/t-sol2 (sol2-c.o): Update dependencies.
14165         (sol2.o): New rule.
14166         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
14167         SUBTARGET_INSERT_ATTRIBUTES.
14168         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
14169         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
14170         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
14171         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
14172         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
14173         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
14174         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
14175         * config/sparc/sparc.c (sparc_attribute_table): New.
14176         (TARGET_INSERT_ATTRIBUTES): Define in terms of
14177         SUBTARGET_INSERT_ATTRIBUTES.
14178         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
14179         is defined.
14180         * doc/extend.texi (Solaris Pragmas): New section.
14181
14182 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14183
14184         * c-common.c: Rename all identifiers named `class' to `cl'.
14185         * c-common.h: Likewise.
14186         * c-parse.in: Likewise.
14187         * c-typeck.c: Likewise.
14188         * genmodes.c: Likewise.
14189         * real.c: Likewise.
14190         * real.h: Likewise.
14191         * recog.c: Likewise.
14192         * recog.h: Likewise.
14193         * regrename.c: Likewise.
14194         * tree.h: Likewise.
14195         * c-common.c (builtin_function_2): Change type of 5th parameter from
14196         int to enum built_in_function. Change type of 8th parameter from int
14197         to bool.
14198         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
14199         with GGC_CNEW().
14200         * c-typeck.c (convert_arguments): Change type of formal_prec from
14201         int to unsigned int.
14202         * genmodes.c (blank_mode): Make a few negative constants unsigned.
14203         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
14204         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
14205         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
14206         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
14207         iterator to for_all_modes () instead of an enum because enums can't
14208         be incremented in C++.
14209
14210
14211 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
14212
14213         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
14214         hard registers.
14215
14216 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14217
14218         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
14219         Handle ARRAY_RANGE_REF like ARRAY_REF.
14220
14221 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
14222
14223         * c-typeck.c (digest_init): Don't allow arrays of signed or
14224         unsigned variants of wchar_t to be initialized by wide string
14225         constants.  Do allow arrays of enumerated types compatible with
14226         wchar_t to be initialized by wide string constants.  Refine tests
14227         distinguishing wide and narrow strings and arrays.  Give specific
14228         error for arrays of other integer types initialized by string
14229         constants.
14230         (output_init_element, process_init_element): Check for
14231         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
14232         initializing with string constants.
14233
14234 2004-07-25  Richard Henderson  <rth@redhat.com>
14235
14236         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
14237         on the RESULT_DECL.
14238         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
14239         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
14240         DECL_IGNORED_P to new decl.
14241
14242 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
14243
14244         * config/ia64/ia64.c (general_xfmode_operand)
14245         (destination_xfmode_operand): Delete.
14246         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
14247         * config/ia64/ia64.md (*movxf_internal): Use general_operand
14248         and destination_operand.
14249
14250 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
14251
14252         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
14253         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
14254
14255 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
14256             Zack Weinberg  <zack@codesourcery.com
14257
14258         PR 16684
14259         * c-decl.c (diagnose_mismatched_decls): Don't issue a
14260         redundant-declaration warning the first time a builtin is
14261         declared explicitly.
14262
14263 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14264
14265         * tree.h (staticp): Change return type to bool.
14266
14267 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14268
14269         * c-common.c (c_staticp): Last episode of the staticp saga.
14270
14271 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14272
14273         * c-common.h (c_staticp): Change return type from int to bool.
14274         * tree.c (staticp): Likewise.
14275         * langhooks.h (staticp): Likewise.
14276
14277 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14278
14279         * langhooks-def.h (lhd_staticp): Change return type from int to
14280         bool in prototype to match definition.
14281
14282 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14283
14284         * system.h (bool, true, false): Don't redefine as preprocessor macros
14285         in C++.
14286
14287 2004-07-24  Roger Sayle  <roger@eyesopen.com>
14288
14289         * expmed.c (init_expmed): A signed modulus by a power of two is
14290         considered cheap if its less than or equal to four instructions.
14291
14292 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14293
14294         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
14295         GGC_CNEWVAR): New macros.
14296
14297 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14298
14299         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
14300         lists.
14301         * c-decl.c: Likewise.
14302         * c-format.c: Likewise.
14303         * c-lex.c: Likewise.
14304         * c-opts.c: Likewise.
14305         * c-pragma.c: Likewise.
14306         * c-typeck.c: Likewise.
14307         * gencheck.c: Likewise.
14308         * genconditions.c: Likewise.
14309         * genconfig.c: Likewise.
14310         * genflags.c: Likewise.
14311         * gengtype.c: Likewise.
14312         * gensupport.c: Likewise.
14313         * ggc-none.c: Likewise.
14314         * langhooks.c: Likewise.
14315         * statistics.h: Likewise.
14316         * stub-objc.c: Likewise.
14317         * java/decl.c: Likewise.
14318
14319 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
14320
14321         * config/m68k/m68k.c (output_scc_di): Fix coding style.
14322         (symbolic_operand): Fix prototype.
14323         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
14324         * config/m68k/m68k.md: Add constants for registers a0 and sp and
14325         use them, change from the "{...}" syntax to the simpler {...}
14326         syntax.
14327         (*cfv4_extendqisi2): Fix destination predicate.
14328         * config/m68k/m68k-protos.h: Remove various declarations also
14329         generated via PREDICATE_CODES.
14330
14331 2004-07-23  Mike Stump  <mrs@apple.com>
14332
14333         * c-typeck.c (convert_for_assignment): Tightened up pointer
14334         converstions that differ in signedness.
14335
14336 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14337
14338         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
14339
14340 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14341
14342         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
14343         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
14344
14345         * gimplify.c (gimplify_compound_lval): Check for no handled
14346         operations, rather than checking for explicit list of nodes.
14347         (is_gimple_addr_expr_arg_or_indirect): New function.
14348         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
14349         redundant setting of TREE_INVARIANT.
14350         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
14351         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
14352
14353 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
14354
14355         PR tree-optimization/16688
14356         PR tree-optimization/16689
14357         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
14358         unnecessary initialization of 'tag'.
14359         (get_tmt_for): Check that the new type tag has the same alias
14360         set as the pointed-to type.
14361         (group_aliases): Only regular variables need to be removed
14362         from the alias set of a name tag.
14363         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
14364         propagation if the two types are not compatible.
14365         (merge_alias_info): Rename from replace_ssa_names_ann.
14366         Add more checking.
14367         (replace_exp_1): If both arguments are SSA_NAMEs, check that
14368         the propagation can be done.
14369         Only call merge_alias_info on pointers.
14370         (propagate_value): Likewise.
14371         * tree-ssa-copyrename.c: Include langhooks.h.
14372         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
14373         to do the merging.
14374         Do not coalesce variables with incompatible types.
14375         (rename_ssa_copies): Call replace_ssa_name_symbol.
14376         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
14377         the same type as the underlying _DECL.
14378         * tree-ssanames.c (replace_ssa_name_symbol): New function.
14379         * tree.h (replace_ssa_name_symbol): Declare.
14380
14381 2004-07-23  Richard Henderson  <rth@redhat.com>
14382
14383         PR c++/16277
14384         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
14385         unshare it properly.
14386         (gimplify_modify_expr_rhs): Push assignment from a conditional into
14387         the conditional for all non-register types.
14388
14389 2004-07-23  Richard Henderson  <rth@redhat.com>
14390
14391         * expr.c (expand_expr_real_1): Don't handle non-local variables.
14392         * expr.h (fix_lexical_addr): Remove.
14393         * function.c (NEED_SEPARATE_AP): Remove.
14394         (fix_lexical_addr): Remove.
14395         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
14396         not null decl_function_context.
14397         (create_alias_vars): Likewise.
14398         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
14399         (simple_goto_p): Likewise.
14400         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
14401         * tree-ssa-ccp.c (get_default_value): Likewise.
14402         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14403         * tree.c (needs_to_live_in_memory): Likewise.
14404         * tree-flow-inline.h (may_be_aliased): Move...
14405         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
14406         when TREE_STATIC variables may be addressable.
14407
14408 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
14409
14410         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
14411
14412 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14413
14414         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
14415         bitmap contents if GENERATOR_FILE is defined.
14416         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
14417         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
14418
14419 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
14420
14421         * c-decl.c (start_function): Form composite type of function types
14422         rather than copying type from previous prototype declaration.
14423
14424 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
14425
14426         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
14427         the const qualifier for the second argument in the C++ functions.
14428
14429         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
14430         specific pointer types.
14431
14432         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
14433         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
14434         for vector bool and/or vector pixel, add C++ and C missing support.
14435         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
14436         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
14437         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
14438         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
14439         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
14440         missing C++ and C support for vector bool and/or vector pixel.
14441         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
14442         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
14443         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
14444         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
14445         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
14446         C++ and C types used for vector bool and/or vector pixel.
14447         (vec_st, vec_stl): Add C++ support for vector pixel.
14448         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
14449         (vec_all_ne): Add C++ support for vector pixel.
14450
14451         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
14452         (vec_vmulesb): Add missing C++ function.
14453         (vec_perm): Fix type of third argument in C++ function.
14454         (vec_vsum4shs): Fix C++ function name.
14455         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
14456         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
14457         argument passed to the error handler in C macro.
14458         (vec_nmsub): Remove extra parens around argument names in C macro.
14459         (vec_packpx): Add missing parens in C macro.
14460
14461 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
14462
14463         * machmode.def: Remove vector modes.
14464         * config/alpha/alpha-modes.def: Add supported vector modes.
14465         * config/arm/arm-modes.def: Likewise.
14466         * config/frv/frv-modes.def: Likewise.
14467         * config/i386/i386-modes.def: Likewise.
14468         * config/rs6000/rs6000-modes.def: Likewise.
14469         * config/sh/sh-modes.def: Likewise.
14470
14471 2004-07-23  Matthias Klose  <doko@debian.org>
14472
14473         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
14474         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
14475         * config.h: Regenerate.
14476         * configure: Likewise.
14477
14478 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
14479
14480         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
14481         generated SYMBOL_REFs for labels.
14482         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
14483         Change prototype.
14484         (machopic_stub_name): Remove.
14485         (machopic_indirection_name): New function.
14486         (machopic_mcount_stub_name): Likewise.
14487         (machopic_classify_name): Remove.
14488         (machopic_function_base_sym): New function.
14489         (machpoic_classify_symbol): Likewise.
14490         (machopic_classify_ident): Remove.
14491         (machopic_define_ident): Likewise.
14492         (machopic_define_name): Likewise.
14493         (machopic_name_defined_p): Likewise.
14494         (machopic_ident_defined_p): Likewise.
14495         (darwin_strip_name_encoding): Likewise.
14496         (machopic_define_symbol): New function.
14497         * config/darwin.c (hashtab.h): Include.
14498         (machopic_defined_list): Remove.
14499         (machopic_classify_ident): Likewise.
14500         (machopic_classify_name): Likewise.
14501         (machopic_ident_defined_p): Likewise.
14502         (machopic_define_ident): Likewise.
14503         (machopic_define_name): Likewise.
14504         (machopic_symbol_defined_p): New function.
14505         (machopic_classify_symbol): Likewise.
14506         (machopic_data_defined_p): Use machopic_classify_symbol.
14507         (machopic_define_symbol): New function.
14508         (machopic_function_base_sym): New function.
14509         (machopic_non_lazy_pointers): Remove.
14510         (machopic_non_lazy_ptr_name): Likewise.
14511         (machopic_stubs): Likewise.
14512         (machopic_stub_name): Likewise.
14513         (NON_LAZY_POINTER_SUFFIX): New macro.
14514         (STUB_SUFFIX): Likewise.
14515         (machopic_indirection): New structure.
14516         (machopic_indirections): New variable.
14517         (machopic_indirection_hash): New function.
14518         (machopic_indirection_eq): Likewise.
14519         (machopic_indirection_name): Likewise.
14520         (machopic_mcount_stub_name): New function.
14521         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
14522         hash table.
14523         (machopic_indirect_data_reference): Rework to use new functions.
14524         (machopic_indirect_call_target): Likewise.
14525         (machopic_legitimize_pic_address): Likewise.
14526         (machopic_output_indirection): New function.
14527         (machopic_finish): Use it.
14528         (machopic_operand_p): Rework to use new functions.
14529         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
14530         (darwin_strip_name_encoding): Remove.
14531         (update_non_lazy_ptrs): Remove.
14532         (update_stubs): Likewise.
14533         (darwin_non_lazy_pcrel): Use new functions.
14534         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14535         (ASM_OUTPUT_LABELREF): Likewise.
14536         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
14537         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
14538         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
14539         (TARGET_STRIP_NAME_ENCODING): Do not use
14540         darwin_strip_name_encoding.
14541         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
14542         darwin_strip_name_encoding.
14543         * config/i386/darwin.h (FUNCTION_PROFILER): Use
14544         machopic_mcount_stub_name.
14545         * config/i386/i386.c (x86_output_mi_thunk): Use
14546         machopic_indirection_name, not machopic_stub_name.
14547         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
14548         machopic_function_base_sym.
14549         (print_operand): Use machopic_classify_symbol.
14550         (rs6000_emit_prologue): Use machopic_function_base_sym.
14551         (output_profile_hook): Do not use machopic_stub_name.
14552         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
14553
14554 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14555
14556         PR c/7284
14557         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
14558         as multiplication.
14559
14560 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14561
14562         * doc/implement-c.texi: New file.
14563         * doc/extend.texi (C Implementation): Move to there.
14564         * doc/gcc.texi: Include implement-c.texi.
14565         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
14566
14567 2004-07-22  Jason Merrill  <jason@redhat.com>
14568
14569         * integrate.c (copy_decl_for_inlining): Remove invisible reference
14570         handling.
14571         * tree-inline.c (setup_one_parameter): Likewise.
14572
14573 2004-07-22  Brian Booth  <bbooth@redhat.com>
14574
14575         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
14576         (substitute_and_fold): Propigate into VUSE operands when possible.
14577         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
14578         (cp_lattice_meet): Handle merging of latticevalues when
14579         UNKNOWN_VAL is present.
14580         (visit_stmt): Visit assignments with V_MUST_DEFs.
14581         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
14582         (ccp_fold): Deal with RHS' that are constant and virtual.
14583         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
14584         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
14585         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
14586         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
14587         computing immediate uses.
14588         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
14589         transition.
14590         (replace_vuse_in): New function.
14591         (likely_value): Add check of vuse operands.
14592         (get_default_value): Set the default value of virtually defined
14593         variables to UKNOWN_VAL instead of VARYING.
14594
14595 2004-07-22  Richard Henderson  <rth@redhat.com>
14596
14597         * expr.c (emit_push_insn): Don't use set_mem_attributes.
14598
14599 2004-07-22  Richard Henderson  <rth@redhat.com>
14600
14601         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
14602         variables due to conditional compilation.
14603
14604 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
14605
14606         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
14607         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
14608         Release SSA names that have been re-renamed.
14609         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
14610         variable.
14611         * tree-ssa-alias.c (init_alias_info): If aliases have been
14612         computed before, clear existing alias information.
14613         (create_name_tags): Do no fixup PT_ANYTHING pointers.
14614         If the new name tag for a pointer is different than the one it
14615         had before, mark the old tag for renaming.
14616         (replace_may_alias): New function.
14617         (group_aliases): Call it.
14618         (setup_pointers_and_addressables): Always call get_tmt_for.
14619         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
14620         once.
14621         (set_pt_anything): New local function.
14622         (set_pt_malloc): New local function.
14623         (merge_pointed_to_info): Don't merge pointed-to variables from
14624         the original pointer if the destination is pointing to an
14625         unknown location.
14626         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
14627         (add_pointed_to_var): Do not add a variable to the points-to
14628         set if the pointer is already pointing to anywhere.
14629         (collect_points_to_info_r): If the defining statement is a PHI
14630         node, only merge pointed-to information if the argument has
14631         already been visited.
14632         (get_tmt_for): Only create a new tag if the pointer didn't
14633         have one already.
14634         (dump_alias_info): Emit more information.
14635         (dump_points_to_info_for): Likewise.
14636         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
14637         try to get the annotation of an SSA_NAME.
14638         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
14639         alias sets when checking is enabled.
14640         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
14641         (eliminate): Mark basic blocks that will need
14642         EH information cleaned up.
14643         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
14644         predecessor.
14645         Initialize need_eh_cleanup.
14646         (fini_pre): Call tree_purge_all_dead_eh_edges and
14647         cleanup_tree_cfg if needed.
14648         Free need_eh_cleanup.
14649         * tree-ssa.c (verify_ssa_name): New function.
14650         (verify_def): Call it.
14651         Re-arrange to avoid printing too many error messages.
14652         (verify_use): Likewise.
14653         (verify_phi_args): Likewise.
14654         (verify_flow_insensitive_alias_info): New function.
14655         (verify_flow_sensitive_alias_info): New function.
14656         (verify_alias_info): New function.
14657         (verify_ssa): Call verify_alias_info.
14658         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
14659         program.
14660         Re-arrange to avoid printing too many error messages.
14661         * tree-ssanames.c (make_ssa_name): Clear
14662         SSA_NAME_IN_FREE_LIST.
14663         (release_ssa_name): Never release a default definition.
14664         (release_defs): New function.
14665         * tree.h: Declare it.
14666         * tree-ssa-dce.c (remove_dead_stmt): Call it.
14667
14668 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
14669
14670         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
14671         If true, do a depth-first search.  Do a breadht-first search,
14672         otherwise.
14673         (walk_use_def_chains): Add new argument IS_DFS.
14674         Update all users.
14675         * tree-flow.h (walk_use_def_chains): Update prototype.
14676
14677 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
14678
14679         * config/cris/cris.md: Tweak formatting.
14680         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
14681         (mover2side, moverside, movemside, movei, op3, andu): Replace
14682         live define_peephole:s with define_peephole2 near-equivalents.
14683         Delete the rest.
14684         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
14685         word-size modes.
14686         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
14687         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
14688         "*mov_sidesi_mem" respectively.
14689
14690 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
14691
14692         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
14693         (gimplify_build1): Move from tree-complex.c do_unop.
14694         (gimplify_build2): Move from tree-complex.c do_binop.
14695         (gimplify_build3): New.
14696         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
14697         Adjust throughout to call the functions above.
14698         * tree-flow.h: Declare the functions above.
14699         * tree-nested.c (gimplify_val): Rename to...
14700         (tsi_gimplify_val): ... this.
14701
14702         * Makefile.in (tree_complex.o): Update dependencies.
14703         (stor-layout.o): Depend on regs.h.
14704         * c-common.c (handle_vector_size_attribute): Update for
14705         vector types without corresponding vector modes.
14706         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
14707         a corresponding vector mode is not available.
14708         * print-tree.c (print_node): Print nunits for vector types
14709         * regclass.c (have_regs_of_mode): New.
14710         (init_reg_sets_1): Initialize it and use it instead
14711         of allocatable_regs_of_mode.
14712         * regs.h (have_regs_of_mode): Declare it.
14713         * stor-layout.c (layout_type): Pick a mode for vector types.
14714         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
14715         build_replicated_const, do_unop, do_binop, do_plus_minus,
14716         do_negate, expand_vector_piecewise, expand_vector_parallel,
14717         expand_vector_addition, expand_vector_operations_1,
14718         expand_vector_operations, tree_lower_operations,
14719         pass_lower_vector_ssa, pass_pre_expand): New.
14720         (expand_complex_operations, pass_lower_complex): Remove.
14721         * tree-optimize.c (init_tree_optimization_passes): Adjust
14722         pass ordering for changes in tree-complex.c.
14723         * tree-pass.h: Declare new passes.
14724         * tree.c (finish_vector_type): Remove.
14725         (make_vector_type): New.
14726         (build_vector_type_for_mode, build_vector_type): Rewritten.
14727         * tree.def (VECTOR_TYPE): Document where the number of
14728         subparts is stored.
14729         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
14730         (make_vector): Remove declaration.
14731
14732 2004-07-21  Richard Henderson  <rth@redhat.com>
14733
14734         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
14735         TREE_THIS_VOLATILE, may_aliases, or optimization level.
14736         (remove_useless_vars): Dump debugging info.
14737         (expand_used_vars): Move ...
14738         * cfgexpand.c (expand_used_vars): ... here.  Make static.
14739         * tree-flow-inline.h (set_is_used): New.
14740         (set_default_def): Use get_var_ann.
14741         * tree-flow.h: Update decls.
14742         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
14743         (create_ssa_var_map): Use it.
14744         * tree-ssa.c (set_is_used): Remove.
14745
14746 2004-07-22  Ben Elliston  <bje@au.ibm.com>
14747
14748         * gdbinit.in: Set a breakpoint on internal_error.
14749
14750 2004-07-21  Richard Henderson  <rth@redhat.com>
14751
14752         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
14753         to create a new basic block.
14754
14755 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14756
14757         PR c/15052
14758         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
14759         return type on function definitions.  Move other warnings for
14760         qualified return type to -Wreturn-type.  Do not condition any such
14761         warnings on -pedantic.  Update comments.
14762         (start_function): Only copy function type from previous prototype
14763         declaration if return types are compatible.
14764         * c-typeck.c (function_types_compatible_p): Don't condition
14765         warning for incompatibility of volatile qualifiers on the return
14766         type on -pedantic.  Update comment.
14767         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
14768
14769 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14770
14771         * c-typeck.c (set_init_index): Require designator to be of integer
14772         type.
14773
14774 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14775
14776         PR c/11250
14777         * c-parse.in (init): Change to exprtype.
14778         (primary): Set original_code for STRING to STRING_CST.
14779         Call maybe_warn_string_init for compound literals.
14780         (initdcl, notype_initdcl): Call maybe_warn_string_init.
14781         (initval): Update.
14782         * c-tree.h (maybe_warn_string_init): New.
14783         (pop_init_level, process_init_element): Use struct c_expr.
14784         (struct c_expr): Update comment.
14785         * c-typeck.c (maybe_warn_string_init): New function.
14786         (digest_init): Call it.  Additional parameter strict_string.  All
14787         callers changed.
14788         (output_init_element): Likewise.
14789         (struct constructor_stack): Use struct c_expr for
14790         replacement_value.
14791         (really_start_incremental_init, push_init_level): Update.
14792         (pop_init_level): Update.  Return struct c_expr.
14793         (process_init_level): Update.  Take struct c_expr argument.
14794
14795 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
14796
14797         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
14798         commit.
14799
14800 2004-07-21  Eric Christopher  <echristo@redhat.com>
14801
14802         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
14803         removal.
14804         * c-decl.c (pop_scope): Ditto.
14805         * calls.c (expand_call): Remove call to current_nesting_level,
14806         update comment accordingly. Remove calls to expand_start_target_temps
14807         and expand_end_target_temps.
14808         * cfgexpand.c (construct_init_block): Remove call to
14809         expand_start_bindings_and_block.
14810         (construct_exit_block): Remove call to expand_end_bindings.
14811         * expr.c (safe_from_p): Remove BIND_EXPR handling.
14812         (expand_expr_real_1): Ditto. Fix formatting.
14813         (expand_vars): Delete.
14814         * stmt.c (POPSTACK): Remove block_stack.
14815         (stmt_status): Remove x_block_stack.
14816         (block_stack): Delete.
14817         (expand_start_bindings_and_block): Ditto.
14818         (expand_start_target_temps): Ditto.
14819         (expand_end_target_temps): Ditto.
14820         (current_nesting_level): Ditto.
14821         (warn_about_unused_variables): Ditto.
14822         (expand_end_bindings): Ditto.
14823         * tree.h: Remove declarations for above.
14824
14825 2004-07-21  Steven Bosscher  <stevenb@suse.de>
14826
14827         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
14828         * rtl.c (note_insn_name): Likewise.
14829         * print-rtl.c (print_rtx): Don't print it.
14830         * cfgrtl.h (can_delete_note_p): Don't handle it.
14831         (rtl_delete_block): Likewise.
14832         * passes.c (rest_of_handle_guess_branch_prob): Remove.
14833         (rest_of_compilation): Don't call it.
14834         * predict.c (process_note_predictions, process_note_prediction,
14835         note_prediction_to_br_prob): Remove.
14836         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
14837         * stmt.c (return_prediction): Remove.
14838         (expand_value_return): Don't call it.  Don't add prediction
14839         notes for return statements.
14840
14841 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
14842
14843         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
14844         once.
14845
14846 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
14847
14848         * c-common.c (vector_types_convertible_p): Use vector types'
14849         TYPE_SIZE and TREE_TYPE instead of their mode.
14850         * convert.c (convert_to_integer): Likewise.
14851         (convert_to_vector): Likewise.
14852         * fold-const.c (fold_convert): Likewise.
14853         * varasm.c (output_constant): Likewise.
14854         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
14855         Allow a VECTOR_TYPE initializer to be made of several vectors.
14856         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
14857         of cleared and need_to_clear, and use fold_convert.
14858         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
14859         integer vectors.
14860
14861 2004-07-20  Richard Henderson  <rth@redhat.com>
14862
14863         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
14864         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
14865
14866 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
14867
14868         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
14869         enormous cost if not TARGET_HARD_MUL.
14870
14871 2004-07-20  Andrew Pinski  <apinski@apple.com>
14872
14873         PR target/16557
14874         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
14875         (ASM_SPEC): here.
14876
14877 2004-07-21  Paul brook  <paul@codesourcery.com>
14878
14879         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
14880
14881 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14882
14883         * fold-const.c (operand_equal_p): Temporarily support NULL args.
14884         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
14885         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
14886
14887 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
14888
14889         * rtl.h (plus_constant): Delete.
14890         (plus_constant_wide): Rename to plus_constant.
14891         (plus_constant_for_output_wide): Delete vestigial prototype.
14892         (GEN_INT): Remove unnecessary cast.
14893         * tree.h (build_int_2, size_int_type): Delete.
14894         (build_int_2_wide): Rename to build_int_2.
14895         (size_int_wide): Rename to size_int_kind.
14896         (size_int_type_wide): Rename to size_int_type.
14897         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
14898         Remove unnecessary cast.
14899         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
14900         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
14901         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
14902         (size_int_type_wide): Rename size_int_type.
14903         (int_const_binop): Use size_int_type.
14904         * c-lex.c (interpret_integer): Use build_int_2.
14905         * final.c (split_double): Remove unnecessary casts.
14906         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
14907
14908 2004-07-20  Richard Henderson  <rth@redhat.com>
14909
14910         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
14911         (gimplify_compound_lval): Use is_gimple_tmp_reg.
14912         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
14913         (is_gimple_tmp_reg): New.
14914         * tree-gimple.h (is_gimple_tmp_reg): Declare.
14915
14916 2004-07-20  Richard Henderson  <rth@redhat.com>
14917
14918         * tree-pretty-print.c (dump_generic_node): Dump
14919         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
14920
14921 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
14922
14923         * tree-mudflap.c (mf_set_options_fndecl): New tree.
14924         (mudflap_init): Set it.
14925         (mudflap_register_call): Remove __mf_init call.
14926         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
14927         to pass "-ignore-reads" option to libmudflap if needed.
14928
14929 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
14930
14931         PR c++/14607
14932         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
14933         (MAKE_DECL_ONE_ONLY): Undefine.
14934         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
14935         readonly_data, one_only_data_section, forget_section): New prototypes.
14936         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
14937         functions.
14938         (pa_select_section): Add one-only (COMDAT) support.
14939         * pa.h (struct machine_function): Define.
14940         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
14941         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
14942         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
14943         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
14944         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
14945         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
14946         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
14947         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
14948         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
14949         for EXTRA_SECTION_FUNCTIONS.
14950         * doc/install.texi: Update binutils requirements.
14951
14952 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
14953
14954         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
14955         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
14956         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
14957         size_t.
14958         (struct VEC): Use unsigned for num and alloc.
14959         * vec.c (struct vec_prefix): Likewise.
14960         (vec_o_reserve): Adjust.
14961
14962         * dbxout.c (dbxout_type): Fix printf format.
14963
14964         * tree.h (binfo_member): Remove.
14965         * tree.c (binfo_member): Remove.
14966
14967 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
14968
14969         * tree.h: Include vec.h
14970         (DEF_VEC_P(tree)): New type.
14971         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
14972         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
14973         (BINFO_LANG_SLOT): Remove.
14974         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
14975         (struct tree_binfo): Turn base_binfos into a trailing
14976         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
14977         (binfo_lang_slots): Remove.
14978         * tree.c (binfo_lang_slots): Remove.
14979         (make_tree_binfo_stat): Take a base binfo count, not a
14980         lang slot count.  Adjust.
14981         * Makefile.in (TREE_H): Add vec.h
14982         * alias.c (record_component_aliases): Adjust BINFO access.
14983         * dbxout.c (dbxout_type): Likewise.
14984         * dwarf2out.c (gen_member_die): Likewise.
14985         * sdbout.c (sdbout_one_type): Likewise.
14986         * tree-dump.c (deque_and_dump): Likewise.
14987         * config/i386/i386.c (classify_argument,
14988         contains_128bit_aligned_vector_p): Likewise.
14989         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
14990         * doc/c-tree.texi (Classes): Update BINFO documentation.
14991
14992 2004-07-20  Steven Bosscher  <stevenb@suse.de>
14993
14994         * c-common.h (check_case_value): Remove prototype.
14995         (c_add_case_label): Adjust prototype.
14996         * c-common.c (check_case_value): Make static.
14997         (check_case_bounds): New function.
14998         (c_add_case_label): Use it.  Take new argument orig_type.
14999         * c-typeck.c (struct c_switch): New orig_type field.
15000         (c_start_case): Set it.
15001         (do_case): Pass it to c_add_case_label.
15002         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
15003         cases from here.  Add the labels in reverse order.
15004         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
15005         (add_case_node): Return nothing, don't check for duplicate cases.
15006         Insert new case nodes in a list, not in an AVL tree.
15007         (expand_end_case_type): Don't turn a case tree into a case list.
15008         (case_tree2list): Remove.
15009         * tree.h (add_case_node): Adjust prototype.
15010
15011 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
15012
15013         * genattr.c (struct range, struct function_unit,
15014         write_units, extend_range, init_range): Remove them.
15015         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
15016         Output "#define INSN_SCHEDULING" here.
15017         * genattrtab.c (struct range, struct function_unit_op,
15018         struct function_unit, struct dimension, enum operator,
15019         operate_exp, expand_units, simplify_knowing,
15020         encode_units_mask, simplify_by_exploding,
15021         find_and_mark_used_attributes, unmark_used_attributes,
15022         add_values_to_cover, increment_current_value,
15023         test_for_current_value, simplify_with_current_value,
15024         simplify_with_current_value_aux, gen_unit,
15025         write_unit_name, write_function_unit_info,
15026         write_complex_function, write_toplevel_expr,
15027         find_single_value, extend_range): Remove.
15028         (write_attr_get): Do not handle common_av->value
15029         being an FFS.
15030         (struct attr_desc): Remove func_units_p and blockage_p.
15031         (write_attr_valueq): Do not handle them.
15032         (find_attr): Do not clear them.
15033         (make_internal_attr): Do not initialize them.
15034         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
15035         * sched-vis.c (init_target_units, insn_print_units,
15036         init_block_visualization, print_block_visualization,
15037         visualize_scheduled_insns, visualize_no_unit,
15038         visualize_stall_cycles, visualize_alloc,
15039         visualize_free, target_units, get_visual_tbl_length,
15040         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
15041         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
15042         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
15043         * haifa-sched.c (blockage_range, clear_units,
15044         schedule_unit, actual_hazard, potential_hazard,
15045         insn_unit, unit_last_insn, unit_tick,
15046         actual_hazard_this_instance, potential_hazard,
15047         schedule_unit, max_insn_queue_index_value): Remove.
15048         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
15049         max_insn_queue_index.
15050         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
15051         * doc/md.texi (Processor pipeline description): Remove
15052         references to old pipeline descriptions.
15053         (Automaton pipeline description): Merge with the above.
15054         (Old pipeline description, Comparison of the two descriptions):
15055         Remove.
15056
15057         * bt-load.c (migrate_btr_def): Remove references to
15058         use_pipeline_interface.
15059         * haifa-sched.c (insn_cost, schedule_insn,
15060         schedule_block, advance_one_cycle, sched_init,
15061         queue_to_ready, sched_finish): Likewise.
15062         * modulo-sched.c (sms_schedule, advance_one_cycle,
15063         ps_has_conflicts): Likewise.
15064         * sched-rgn.c (init_ready): Likewise.
15065         (debug_dependencies): Likewise, and remove an "if (1)".
15066         * target.h (use_dfa_pipeline_interface): Remove.
15067         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15068         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15069         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15070         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15071         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15072         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15073         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15074         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15075         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15076         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15077         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15078         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15079         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15080         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15081         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15082         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15083         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15084         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15085         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15086
15087 2004-07-19  Roger Sayle  <roger@eyesopen.com>
15088
15089         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
15090
15091 2004-07-19  Jeff Law  <law@redhat.com>
15092
15093         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
15094         (get_eq_expr_value): Use it.  Simplify slightly.
15095
15096 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
15097
15098         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
15099         (umulsidi3_32bit_r4000): Likewise.
15100
15101 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
15102
15103         * vec.h: Propagate location information properly.
15104         (VEC_T_iterate): Add result pointer parameter.
15105         (VEC_T_space): New.
15106         (VEC_T_reserve): Use it.
15107
15108 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
15109
15110         * Makefile.in (c-format.o): Depend on c-format.h.
15111         * c-format.h: New file.
15112         (struct format_char_info): Add CHAIN member.
15113         * c-format.c: Move some types and constants to c-format.h.
15114         (format_type_error): Set to -1.
15115         (struct function_format_info): Use an int for format_type.
15116         (decode_format_type): Return an int.  Return format_type_error
15117         on error.
15118         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
15119         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
15120         (scan_char_table, time_char_table, monetary_char_table): Initialize
15121         CHAIN to NULL.
15122         (n_format_types): New variable.
15123         (check_format_info_main): Handle CHAIN in format_char_info.
15124         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
15125         TARGET_N_FORMAT_TYPES.
15126         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
15127         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
15128         * config/sol2-c.c: New file.
15129         * config/t-sol2: New file.
15130         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
15131         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
15132         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
15133
15134         * doc/extend.texi (Target Format Checks): New section.
15135         (Function Attributes): Mention it.
15136         * doc/invoke.texi: Mention target format checks.
15137         * doc/sourcebuild.texi: Mention target format checks.
15138         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
15139         TARGET_FORMAT_TYPES.
15140
15141 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
15142
15143         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
15144         added.
15145         * config/s390/s390.c (regclass_map initializer): Register 35 added to
15146         ADDR_REGS.
15147         (load_multiple_operation, store_multiple_operation): Removed
15148         pointless sanity check.
15149         (s390_decompose_address): Added check for return_address_pointer_rtx.
15150         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
15151         (s390_return_address_offset): New function.
15152         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
15153         (FRAME_REGNO_P): Added check for register 35.
15154         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
15155         REG_ALLOC_ORDER): Appended entry for register 35.
15156         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
15157         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
15158         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
15159         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
15160         is eliminable using stack pointer or hard frame pointer.
15161         (REGISTER_NAMES): Added name for register 35.
15162         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
15163         pointless sanity check.
15164
15165 2004-07-19  Roger Sayle  <roger@eyesopen.com>
15166
15167         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
15168         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
15169         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
15170         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
15171         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
15172         (fold_relational_const): Tidy up handling of floating point
15173         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
15174         transformation; fold_relational_const assumes constant operands.
15175
15176 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
15177
15178         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
15179         directory.
15180
15181 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
15182
15183         * c-tree.h (struct c_expr): Define.
15184         (C_SET_EXP_ORIGINAL_CODE): Remove.
15185         (parser_build_binary_op, build_compound_expr): Update prototypes.
15186         * c-parse.in (%union): Add exprtype.
15187         (FUNC_NAME): Mark as ttype.
15188         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
15189         exprtype.
15190         (expr): Update.  Define directly in terms of expr_no_commas
15191         instead of using nonnull_exprlist.
15192         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
15193         offsetof_member_designator, typespec_nonreserved_nonattr, init,
15194         initval, designator, component_declarator,
15195         component_notype_declarator, enumerator, array_declarator,
15196         condition, exexpr, switch_statement, stmt_nocomp, stmt,
15197         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
15198         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
15199         where appropriate.
15200         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
15201         * c-common.c (c_common_truthvalue_conversion): Don't check
15202         C_EXP_ORIGINAL_CODE.
15203         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
15204         Don't use C_EXP_ORIGINAL_CODE.
15205         (default_conversion, default_function_array_conversion): Don't use
15206         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
15207         (internal_build_compound_expr): Merge into build_compound_expr.
15208         (build_compound_expr): Take two operands instead of a TREE_LIST.
15209         * objc/objc-act.c (get_super_receiver): Update calls to
15210         build_compound_expr.
15211
15212 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
15213
15214         * config/sh/sh.c (sh_use_dfa_interface): Remove.
15215         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
15216         hook_int_void_1.
15217         * config/sh/sh.md: Extract pipeline descriptions
15218         into separate files.
15219         * config/sh/sh1.md: New file, extracted from sh.md.
15220         * config/sh/sh4.md: New file, extracted from sh.md.
15221         * config/sh/shmedia.md: New file, extracted from sh.md
15222         and rewritten using new-style pipeline description.
15223
15224 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
15225
15226         * config/pa/pa.md: Delete the two remaining define_peephole
15227         patterns.
15228
15229 2004-07-18  Steven Bosscher  <stevenb@suse.de>
15230             Joseph S. Myers  <jsm@polyomino.org.uk>
15231
15232         * c-common.c (c_common_truthvalue_conversion): Don't warn if
15233         TREE_NO_WARNING is set.
15234
15235 2004-07-18  Roger Sayle  <roger@eyesopen.com>
15236
15237         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
15238         simplify_builtin_strncmp): Delete.
15239         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
15240         Change argument to accept an arglist instead of an "exp".  Assume
15241         that the return type is always integer_type_node.  Copy missing
15242         transformations from their now obsolete simplify_builtin_*
15243         equivalents.
15244         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
15245         fold_builtin_strcmp and fold_builtin_strncmp.
15246         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
15247         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
15248         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
15249
15250 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
15251
15252         * Makefile.in (tree-alias-common.o): Update dependencies.
15253
15254 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
15255
15256         * cfgloop.c (flow_loop_nested_p): Fix comment.
15257
15258 2004-07-17  Jason Merrill  <jason@redhat.com>
15259
15260         PR c++/16115
15261         * stor-layout.c (relayout_decl): New fn.
15262         * tree.h: Declare it.
15263         (DECL_BY_REFERENCE): New macro.
15264
15265 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
15266
15267         * libgcc2.c (__enable_execute_stack): New symbol.
15268         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
15269         and declare __enable_execute_stack.
15270         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
15271         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
15272         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15273         ENABLE_EXECUTE_STACK.
15274         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
15275         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15276         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15277         ENABLE_EXECUTE_STACK.
15278         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15279         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
15280         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15281         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15282         ENABLE_EXECUTE_STACK.
15283         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15284         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15285         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15286         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15287         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
15288         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15289         (sparc64_initialize_trampoline): Likewise.
15290         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
15291
15292 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15293
15294         * langhooks.h (builtin_function): New langhook.
15295         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
15296         (LANG_HOOKS_INITIALIZER): Update.
15297         * tree.h (builtin_function): Remove.
15298         * doc/tm.texi: Update.
15299         * c-tree.h (builtin_function): Declare.
15300         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
15301         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
15302         config/ia64/ia64.c, config/iq2000/iq2000.c,
15303         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
15304         config/stormy16/stormy16.c: All callers of builtin_function
15305         changed.
15306
15307 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
15308
15309         PR target/16556
15310         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
15311         Remove white space after the backslash.
15312
15313 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
15314
15315         PR rtl-optimization/16294
15316         * resource.c (return_insn_p): New predicate.
15317         (mark_target_live_regs): Use it.  Special-case return insns.
15318         (init_resource_info): Use it.  Don't scan the epilogue past
15319         a return.
15320
15321 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15322
15323         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
15324         destroy dominance information.
15325         * passes.c (rest_of_handle_loop2):  Free dominance information.
15326         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
15327         jump threading.
15328         (thread_jumps): Update dominance information and remove unreachable
15329         blocks.
15330         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
15331         information and remove the unreachable block.
15332
15333 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
15334
15335         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
15336
15337 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
15338
15339         * doc/sourcebuild.texi: Remove libf2c entry.
15340
15341 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
15342
15343         * config/i386/i386.md (movv16qi_internal): Fix typo.
15344
15345 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15346
15347         * final.c (final_scan_insn): Fix broken commit from previous
15348         patch.
15349
15350 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15351
15352         * c-typeck.c (parser_build_binary_op): Condition warnings for
15353         X<=Y<=Z on -Wparentheses instead of -Wextra.
15354         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
15355         supported for C only.
15356
15357 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15358
15359         * cfgcleanup.c (try_simplify_condjump): Don't remove line
15360         notes to avoid unreachable code warnings.
15361         * toplev.c (backend_init): Don't emit line notes for
15362         unreachable code warnings.
15363
15364         * combine.c (distribute_notes): Don't distribute a
15365         REG_VTABLE_REF note.
15366         * final.c (final_scan_insn): Don't handle it.
15367         * rtl.c (reg_note_name): Remove it.
15368         * rtl.h (enum reg_node): Dito.
15369
15370         * emit-rtl.c (force_line_numbers, restore_line_number_status):
15371         Remove.
15372         * rtl.h (force_line_numbers, restore_line_number_status):
15373         Remove prototypes.
15374
15375         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
15376         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
15377         (using_eh_for_cleanups): Also moved here.
15378
15379         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
15380         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
15381         to expand_start_case and add_case_node.
15382         * stmt.c (struct nesting): Cleanup unused fields condition_code,
15383         last_unconditional_cleanup, nominal_type, printname, and
15384         line_number_status.
15385         (struct fixup_goto): Remove.
15386         (struct stmt_status): Remove x_goto_fixup_chain field.
15387         (goto_fixup_chain): Remove.
15388         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
15389         pushcase, pushcase_range): Remove.
15390         (expand_start_bindings_and_block): Don't set unused fields in
15391         the nesting stack.
15392         (expand_start_case, add_case_node): Cleanup unused formal arguments.
15393         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
15394         instead of emit_jump_if_reachable.
15395         (emit_case_nodes): Likewise.
15396         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
15397         static.
15398         (update_eh_label): Work around left-over exception handing regions.
15399         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
15400         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
15401         (pass_cleanup_cfg_post_optimizing): New pass.
15402         (init_tree_optimization_passes): Run the new pass after all
15403         optimizations.
15404         * tree.h (pushcase, pushcase_range): Remove prototypes.
15405         (expand_start_case, add_case_node): Update prototypes.
15406
15407 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
15408
15409         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
15410
15411 2004-07-16  Richard Henderson  <rth@redhat.com>
15412
15413         * builtins.c (std_expand_builtin_va_arg): Remove.
15414         (expand_builtin_va_arg): Remove.
15415         * expr.h: Don't declare them.
15416         * gimplify.c (mark_decls_volatile_r): Remove.
15417         (copy_if_shared_r): Don't call it.
15418         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
15419         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
15420         * gimple-low.c (lower_stmt): Likewise.
15421         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
15422         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
15423         * tree-ssa-operands.c (get_expr_operands): Likewise.
15424         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
15425         EXPAND_BUILTIN_VA_ARG.
15426         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
15427         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
15428         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
15429         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
15430
15431 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
15432
15433         * tree-ssa-pre.c (insert_aux): Break out if we hit
15434         a critical edge.
15435
15436 2004-07-16  Richard Henderson  <rth@redhat.com>
15437
15438         * basic-block.h (remove_fake_exit_edges): Declare.
15439         * cfganal.c (remove_fake_predecessors): Rename from
15440         remove_fake_successors; iterate over predecessors.
15441         (remove_fake_exit_edges): New.
15442         * cfgcleanup.c (try_optimize_cfg): Use it.
15443         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
15444         * predict.c (estimate_probability): Likewise.
15445         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
15446         * tree-cfg.c (make_edges): Likewise.
15447         * tree-ssa-pre.c (fini_pre): Likewise.
15448         * profile.c (instrument_edges): Don't remove_fake_edges.
15449         (branch_prob): Do it earlier here.
15450
15451 2004-07-16  Richard Henderson  <rth@redhat.com>
15452
15453         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
15454         switchification wrt CONSTRUCTOR.  Document the reason.
15455
15456 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
15457
15458         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
15459         that prevented descriptive __mf_check source location strings.
15460
15461 2004-07-16  Richard Henderson  <rth@redhat.com>
15462
15463         * tree-def (WITH_SIZE_EXPR): New.
15464         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
15465         * expr.c (expand_expr_real_1): Likewise.
15466         * gimplify.c (maybe_with_size_expr): New.
15467         (gimplify_arg, gimplify_modify_expr): Use it.
15468         (gimplify_modify_expr_to_memcpy): Take size parameter.
15469         (gimplify_modify_expr_to_memset): Likewise.
15470         (gimplify_expr): Handle WITH_SIZE_EXPR.
15471         * tree-alias-common.c (find_func_aliases): Likewise.
15472         * tree-eh.c (tree_could_trap_p): Likewise.
15473         (tree_could_throw_p): Likewise.
15474         * tree-gimple.c (is_gimple_lvalue): Likewise.
15475         (get_call_expr_in): Likewise.
15476         * tree-inline.c (estimate_num_insns_1): Likewise.
15477         (expand_calls_inline): Likewise.
15478         * tree-nested.c (convert_call_expr): Likewise.
15479         * tree-pretty-print.c (dump_generic_node): Likewise.
15480         * tree-sra.c (sra_walk_expr): Likewise.
15481         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
15482         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
15483         * tree-ssa-operands.c (get_expr_operands): Likewise.
15484         * tree-tailcall.c (find_tail_calls): Likewise.
15485
15486         * calls.c (expand_call): Reset old_stack_allocated after
15487         calling emit_stack_restore.
15488
15489 2004-07-16  Richard Henderson  <rth@redhat.com>
15490
15491         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
15492         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15493         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15494         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
15495         copy_res_decl_for_inlining.
15496
15497         * tree-inline.c (declare_return_variable): New modify_dest argument.
15498         Use it as the return value, when possible or manditory.  Handle
15499         TREE_ADDRESSABLE types.
15500         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
15501         replacement of CALL_EXPR.
15502
15503 2004-07-16  Richard Henderson  <rth@redhat.com>
15504
15505         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
15506         * gimple-low.c (expand_var_p): Don't check it.
15507         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
15508         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
15509         * tree-ssa-operands.c (add_stmt_operand): Likewise.
15510         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
15511         (find_referenced_vars): Don't call them.
15512         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
15513
15514 2004-07-16  Richard Henderson  <rth@redhat.com>
15515
15516         * function.c (pass_by_reference): True for all variable sized types.
15517
15518 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
15519
15520         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
15521         * tree-pretty-print.c: Include tree-chrec.h.
15522         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
15523         and POLYNOMIAL_CHREC nodes.
15524
15525 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
15526
15527         * builtins.c (expand_builtin_stpcpy): Do not create temporary
15528         reg with VOIDmode.
15529
15530 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15531
15532         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
15533
15534 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
15535
15536         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
15537         to BASE_REGNUM.
15538         * config/s390/s390.c: Likewise.
15539         * config/s390/s390.h: Likewise.
15540
15541 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15542
15543         * config/mips/mips.md (addsi3, adddi3): Remove special handling
15544         of $sp adds.  Remove REGNO checks from mips16 patterns.
15545
15546 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15547
15548         * config/mips/mips.md: Delete outdated comment.
15549
15550 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15551
15552         * config/mips/mips.c (get_float_compare_codes): Delete.
15553         (mips_emit_compare): New function, mostly extracted from
15554         get_float_compare_codes and gen_conditional_branch.
15555         (gen_conditional_branch, gen_conditional_move): Use it.
15556
15557 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15558
15559         * genautomata.c (add_vect): Speedup by using integers as
15560         bit-vectors for walking through the comb_vect and finding
15561         a match.
15562
15563 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15564
15565         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
15566         operand is an uns_arith_operand; use subtraction otherwise.
15567         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
15568         not just arith_operands.
15569
15570 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15571
15572         * config/mips/mips-protos.h (gen_int_relational): Delete.
15573         (mips_emit_scc): Declare.
15574         * config/mips/mips.c (internal_test): Delete.
15575         (sle_operand, sleu_operand): New functions.
15576         (map_test_to_internal_test, gen_int_relational): Delete.
15577         (mips_emit_binary, mips_relational_operand_ok_p)
15578         (mips_emit_int_relational, mips_zero_if_equal)
15579         (mips_emit_scc): New functions.
15580         (gen_conditional_branch): Rework to use mips_emit_int_relational.
15581         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
15582         sleu_operand.
15583         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
15584         (sltu, sleu): Use mips_emit_scc.
15585         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
15586         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
15587         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
15588
15589 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15590
15591         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
15592
15593 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15594
15595         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
15596         (*sne_[sd]i): Likewise sne_[sd]i_zero.
15597         (*sgt_[sd]i): ...and sgt_[sd]i.
15598         (*slt_[sd]i): ...and slt_[sd]i.
15599         (*sgtu_[sd]i): ...and sgtu_[sd]i.
15600         (*sltu_[sd]i): ...and sltu_[sd]i.
15601         (*sleu_[sd]i): ...and sleu_[sd]i_const.
15602         Name previously unnamed mips16 patterns.  Formatting fixes.
15603
15604 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15605
15606         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
15607         (branch_type): Delete.
15608         (gen_conditional_branch, gen_conditional_move)
15609         (mips_gen_conditional_trap): Update after name change.  Get the
15610         comparison mode from cmp_operands[0].
15611         * config/mips/mips.h (cmp_type, branch_type): Delete.
15612         (cmp_operands): Renamed from branch_cmp.
15613         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
15614         name change.  Don't set branch_type.
15615         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
15616         mode class of cmp_operands[0] rather than branch_type.  Update after
15617         name change.
15618
15619 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15620
15621         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
15622         of 0...255 to 0 when inside a SET.
15623
15624 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15625
15626         * config/mips/mips.md: Remove mips16 define_peepholes.
15627
15628 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
15629
15630         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
15631         (fini_pre): Remove fake edges.
15632
15633 2004-07-15  Richard Henderson  <rth@redhat.com>
15634
15635         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
15636         (get_indirect_ref_operands, get_call_expr_operands): ... these.
15637
15638 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
15639
15640         * vec.h (VEC_address): New function.
15641
15642 2004-07-14  Jason Merrill  <jason@redhat.com>
15643
15644         PR middle-end/15885
15645         * gimplify.c (gimplify_arg): New fn, split out from...
15646         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
15647
15648 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15649
15650         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
15651         generate code which is generated by pushqi1 now
15652         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
15653
15654 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15655
15656         * combine.c (simplify_set): match the mode of the constant 0 with
15657         the tested operand to match the compare behaviour and the
15658         simplify_relational_operation() expectation.
15659
15660 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
15661
15662         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
15663         ("bordered"): Same.
15664
15665 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
15666
15667         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
15668         unconditionally.
15669         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
15670
15671 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
15672
15673         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
15674         calls in mips16 code.
15675
15676 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
15677
15678         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
15679         the destination of the li as well as for the neg.
15680
15681 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
15682
15683         g++/15861
15684         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
15685         * cgraph.h: Update declaration.
15686         * c-decl.c (build_cdtor): Update call with default priority.
15687         * coverage.c (create_coverage): Ditto.
15688         * tree-mudflap.c (mf_init_fndecl): New tree.
15689         (mudflap_init): Set it.
15690         (mudflap_register_call): Arrange to call __mf_init before the first
15691         __mf_register call.
15692         (mudflap_finish_file): Mark the mudflap static initializer as extra
15693         high priority, to beat all C++ static constructors.
15694
15695 2004-07-15  Jeff Law  <law@redhat.com>
15696
15697         * loop.c (check_insn_for_givs): Restore check for code labels that was
15698         accidentally deleted by a recent checkin.
15699
15700 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
15701
15702         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
15703         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
15704
15705 2004-07-14  Richard Henderson  <rth@redhat.com>
15706
15707         * print-tree.c (print_node): Fix casts last change.
15708
15709 2004-07-15  Paul Brook  <paul@codesourcery.com>
15710
15711         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
15712         to TARGET_UNWIND_INFO.
15713         * except.c (output_function_exception_table): Ditto.
15714         * except.h: Ditto.
15715         * opts.c (decode_options): Ditto.
15716         * passes.c (rest_of_handle_final): Ditto.
15717         * final.c (final_start_function): Ditto.
15718         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
15719         target hook.
15720         * targhooks.h (default_unwind_emit): Declare.
15721         * targhooks.c (default_unwind_emit): New function.
15722         * target-def.h: Define and use TARGET_UNWIND_EMIT.
15723         * target.h (struct gcc_target): Add unwind_emit.
15724         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
15725         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
15726         Remove IA64_UNWIND_EMIT.
15727         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
15728
15729 2004-07-14  Richard Henderson  <rth@redhat.com>
15730
15731         * print-tree.c (print_node): Handle SSA_NAME.
15732
15733 2004-07-14  James E Wilson  <wilson@specifixinc.com>
15734
15735         PR target/16325
15736         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
15737         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
15738
15739 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
15740
15741         * expr.c (expand_assignment): Reenable bitfield += optimizations.
15742         Use alias set 0 for memory, do proper mode calculations and adjust
15743         address for memories.
15744
15745 2004-07-14  Per Bothner  <per@bothner.com>
15746
15747         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
15748         structure with extra column field.
15749         * tree.c (expand_location):  Also fill in column field.
15750         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
15751         gets confused by the two conditionally-compiled definitions.
15752
15753 2004-07-14  Eric Christopher  <echristo@redhat.com>
15754
15755         * calls.c (expand_call): Fix typo in comment.
15756
15757 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
15758
15759         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
15760         comparision of TFmode.
15761
15762 2004-07-14  Richard Henderson  <rth@redhat.com>
15763
15764         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
15765         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
15766         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
15767         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
15768         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
15769         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
15770         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
15771         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
15772         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
15773
15774 2004-07-14  Mike Stump  <mrs@apple.com>
15775
15776         * config/darwin.h (WINT_TYPE): Define to be int to match
15777         system header files.
15778
15779 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
15780
15781         * config/xtensa/xtensa.c (function_arg_advance): Check for args
15782         that must be passed in the stack.
15783         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
15784         arguments if the size is not a constant.
15785
15786 2004-07-14  Per Bothner  <per@bothner.com>
15787
15788         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
15789         instead of EXPR_LOCUS in a boolean context, which is always true
15790         if --enable-mapped-location.
15791         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
15792
15793 2004-07-14  Richard Henderson  <rth@redhat.com>
15794
15795         * dominance.c (struct dom_info): Add fake_exit_edge.
15796         (init_dom_info): Allocate it.
15797         (free_dom_info): Free it.
15798         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
15799         in two passes.
15800         (calc_idoms): Honor fake_exit_edge.
15801
15802 2004-07-13  Jason Merrill  <jason@redhat.com>
15803
15804         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
15805         (rhs_test_for): New fn.
15806         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
15807         * tree-gimple.h: Declare them.
15808         * gimplify.c (gimplify_modify_expr): Use the new fns.
15809
15810 2004-07-14  Richard Henderson  <rth@redhat.com>
15811
15812         * config/arm/arm-protos.h (arm_va_arg): Remove.
15813         * config/arm/arm.c (arm_va_arg): Remove.
15814         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
15815         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
15816
15817 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15818
15819         * pa.c (fix_range): New function to mark a range(s) of registers as
15820         fixed registers.
15821         (override_options): Call fix_range if the -mfixed-range option string
15822         is not empty.
15823         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
15824         * doc/invoke.texi (-mfixed-range): Document new option.
15825
15826 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
15827
15828         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
15829         for TARGET_64BIT.
15830         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
15831
15832 2004-07-14  Roger Sayle  <roger@eyesopen.com>
15833
15834         * expmed.c (expand_sdiv_pow2): New function to expand signed division
15835         by a positive power of two, split out from expand_divmod.  Provide
15836         an alternate implementation when shifts are expensive.  Lower the
15837         threshold for using a branchless implementation to BRANCH_COST >= 2.
15838         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
15839
15840 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15841
15842         * tree-dfa.c (make_rename_temp): *Really* work just
15843         like create_tmp_var if called while outside SSA form.
15844
15845 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
15846
15847         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
15848         for division by zero.
15849         ("umodsi3"): Likewise.
15850
15851 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
15852
15853         * config/mips/mips.c (mips_output_move): When generating mips16 code,
15854         force loads of negative constants to be split.
15855         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
15856         Generalize SImode li/neg splitter to cope with other modes.
15857
15858 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15859
15860         * expmed.c: Remove more references to QUEUED in the comments.
15861         * expr.c: Likewise.
15862
15863 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
15864
15865         Revert:
15866         2004-07-13  Richard Henderson  <rth@redhat.com>
15867         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
15868         correctly.
15869
15870 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15871
15872         * tree-dfa.c (make_rename_temp): Work just like
15873         create_tmp_var if called while outside SSA form.
15874
15875 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15876
15877         * expr.c (enqueue_insn, finish_expr_for_function,
15878         protect_from_queue, queued_subexp_p, mark_queue,
15879         emit_insns_enqueued_after_mark, emit_queue,
15880         expand_increment): Remove.
15881         (store_constructor): Expand increment as an assignment.
15882         (expand_expr_real_1 <case PREINCREMENT_EXPR,
15883         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
15884         case POSTDECREMENT_EXPR>): Abort.
15885         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
15886         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
15887         protect_from_queue, emit_queue, queued_subexp_p): Remove.
15888         * function.h (pending_chain, x_pending_chain): Remove.
15889         * rtl.def (QUEUED): Remove.
15890
15891         * emit-rtl.c (copy_insn_1, copy_most_rtx,
15892         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
15893         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
15894         encode_units_mask): Likewise.
15895         * local-alloc.c (equiv_init_varies_p): Likewise.
15896         * rtl.c (copy_rtx): Likewise.
15897         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
15898         * simplify-rtx.c (simplify_gen_subreg): Likewise.
15899         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
15900
15901         * builtins.c (expand_builtin, expand_builtin_apply,
15902         expand_builtin_mathfn, expand_builtin_mathfn_2,
15903         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
15904         Remove calls to emit_queue and protect_from_queue.
15905         * calls.c (expand_call, precompute_arguments,
15906         precompute_register_parameters, rtx_for_function_call,
15907         store_one_arg): Likewise.
15908         * dojump.c (do_compare_and_jump, do_jump): Likewise.
15909         * explow.c (memory_address): Likewise.
15910         * expmed.c (clear_by_pieces_1, clear_storage,
15911         clear_storage_via_libcall, emit_group_load,
15912         emit_group_store, emit_store_flag,
15913         expand_expr_real_1, store_by_pieces,
15914         store_constructor, store_expr, try_casesi,
15915         try_tablejump): Likewise.
15916         * function.c (expand_pending_sizes): Likewise.
15917         * optabs.c (emit_cmp_and_jump_insns,
15918         emit_conditional_add, emit_conditional_move,
15919         expand_fix, expand_float, prepare_cmp_insn): Likewise.
15920         * stmt.c (emit_case_bit_tests,
15921         expand_asm_expr, expand_computed_goto,
15922         expand_decl_init, expand_end_case_type,
15923         expand_end_stmt_expr, expand_expr_stmt_value,
15924         expand_return, expand_start_case,
15925         optimize_tail_recursion): Likewise.
15926         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
15927         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
15928
15929 2004-07-14  Ben Elliston  <bje@au.ibm.com>
15930
15931         * vec.h: Comment fix.
15932
15933 2004-07-13  Richard Henderson  <rth@redhat.com>
15934
15935         * target.h (struct gcc_target): Add calls.pass_by_reference.
15936         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
15937         * function.c (pass_by_reference): Use the hook.
15938         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
15939         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
15940         (hook_pass_by_reference_must_pass_in_stack): New.
15941         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
15942         (alpha_pass_by_reference): New.
15943         (TARGET_PASS_BY_REFERENCE): New.
15944         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15945         * config/arc/arc.c (arc_pass_by_reference): New.
15946         (TARGET_PASS_BY_REFERENCE): New.
15947         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15948         (FUNCTION_ARG_CALLEE_COPIES): True.
15949         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
15950         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
15951         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
15952         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15953         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15954         * config/cris/cris.c (cris_pass_by_reference): New.
15955         (TARGET_PASS_BY_REFERENCE): New.
15956         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
15957         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
15958         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15959         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
15960         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15961         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
15962         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
15963         (frv_function_arg_pass_by_reference): Remove.
15964         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15965         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
15966         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
15967         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
15968         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15969         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
15970         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
15971         (ia64_pass_by_reference): Rename from
15972         ia64_function_arg_pass_by_reference.
15973         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15974         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15975         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
15976         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
15977         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
15978         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15979         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15980         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
15981         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
15982         (m32r_pass_by_reference): Adjust prototype.  Make static.
15983         Handle mode sizes correctly.
15984         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15985         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
15986         (m68hc11_function_arg_pass_by_reference): Remove.
15987         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15988         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15989         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
15990         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15991         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
15992         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
15993         (mips_va_arg): Use pass_by_reference.
15994         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
15995         Handle mode sizes correctly.
15996         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15997         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15998         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
15999         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
16000         (mmix_pass_by_reference): Rename from
16001         mmix_function_arg_pass_by_reference.
16002         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16003         (FUNCTION_ARG_CALLEE_COPIES): True.
16004         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
16005         (mn10300_pass_by_reference): New.
16006         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16007         (FUNCTION_ARG_CALLEE_COPIES): True.
16008         * config/pa/pa.c (pa_pass_by_reference): New.
16009         (TARGET_PASS_BY_REFERENCE): New.
16010         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16011         (FUNCTION_ARG_CALLEE_COPIES): True.
16012         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
16013         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
16014         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
16015         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16016         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
16017         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
16018         (s390_pass_by_reference): Rename from
16019         s390_function_arg_pass_by_reference.
16020         (s390_function_arg_advance): Don't query pass-by-ref.
16021         (s390_function_arg): Likewise.
16022         (s390_gimplify_va_arg): Use pass_by_reference.
16023         (s390_call_saved_register_used): Likewise.
16024         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16025         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
16026         (shcompact_byref, sh_pass_by_reference): New.
16027         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16028         (SHCOMPACT_BYREF): Remove.
16029         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
16030         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
16031         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
16032         (sparc_gimplify_va_arg): Use pass_by_reference.
16033         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16034         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16035         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
16036         (v850_pass_by_reference): New.
16037         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16038         (FUNCTION_ARG_CALLEE_COPIES): True.
16039         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
16040         FUNCTION_ARG_PASS_BY_REFERENCE docs.
16041
16042 2004-07-14  Richard Henderson  <rth@redhat.com>
16043             Richard Sandiford  <rsandifo@redhat.com>
16044
16045         * config/mips/mips-protos.h (mips_va_arg): Delete.
16046         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
16047         * config/mips/mips.c: Include tree-gimple.h.
16048         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
16049         (mips_arg_info): Remove special handling of must_pass_in_stck args.
16050         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
16051         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
16052
16053 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
16054
16055         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
16056         arguments for COND_EXPR in big-endian adjustment code.
16057
16058 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16059
16060         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
16061         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
16062         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
16063         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
16064
16065 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
16066
16067         PR tree-optimization/16443
16068         * tree-ssa-alias.c: Add more description for
16069         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
16070         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
16071         clobbering of call-clobbered and addressable variables.  If
16072         there are any before aliases have been computed, add them.
16073
16074 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
16075
16076         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
16077         verification.
16078
16079 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
16080
16081         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
16082         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
16083         to the same type.
16084
16085 2004-07-13  Per Bothner  <per@bothner.com>
16086
16087         * collect2.c (main):  Handle --no-demangle and --demangle flags.
16088
16089 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
16090
16091         * Makefile.in (OBJS-common): Add tree-data-ref.o.
16092         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
16093         (tree-data-ref.o): New rule.
16094         * lambda.h: New file.
16095         * tree-data-ref.c: New file.
16096         * tree-data-ref.h: New file.
16097         * tree.c (int_cst_value, tree_fold_gcd): New functions.
16098         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
16099
16100 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16101
16102         PR target/13926
16103         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
16104         * config/sparc/sparc.c (output_ubranch): New function.
16105         * config/sparc/sparc.md (jump pattern): Use it.
16106
16107 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16108
16109         PR target/16494
16110         * config/sparc/sparc.c (output_cbranch): Properly guard
16111         the code handling far branches with TARGET_V9.
16112         * config/sparc/sparc.md (length attribute): Document the
16113         side-effect of having a length greater or equal to 3.
16114
16115 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16116             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
16117
16118         PR target/15186
16119         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
16120         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
16121
16122 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16123             Martin Sebor  <sebor@roguewave.com>
16124
16125         PR target/12602
16126         * doc/invoke.texi (SPARC options): Document -threads
16127         and -pthreads on Solaris.
16128
16129 2004-07-13  Richard Henderson  <rth@redhat.com>
16130
16131         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
16132         by reference.
16133         (ind_gimplify_va_arg_expr): Remove.
16134         * tree.h (ind_gimplify_va_arg_expr): Remove.
16135         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
16136         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
16137         argsp to be null.
16138
16139         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
16140         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
16141         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
16142         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
16143         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
16144
16145 2004-07-13  Richard Henderson  <rth@redhat.com>
16146
16147         * function.c (pass_by_reference): New.
16148         (assign_parm_find_data_types): Use it.
16149         * calls.c (initialize_argument_information): Likewise.
16150         (emit_library_call_value_1): Likewise.
16151         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16152         * function.h (pass_by_reference): Declare.
16153
16154 2004-07-13  Richard Henderson  <rth@redhat.com>
16155
16156         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
16157         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
16158         * expr.h (MUST_PASS_IN_STACK): Remove.
16159         * system.h (MUST_PASS_IN_STACK): Poison.
16160         * tree.h (must_pass_in_stack_var_size): Declare.
16161         (must_pass_in_stack_var_size_or_pad): Declare.
16162         * calls.c (must_pass_in_stack_var_size): New.
16163         (must_pass_in_stack_var_size_or_pad): Rename from
16164         default_must_pass_in_stack.
16165         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
16166         (TARGET_MUST_PASS_IN_STACK): New.
16167         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
16168         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
16169         (TARGET_MUST_PASS_IN_STACK): New.
16170         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
16171         * config/frv/frv.c (frv_must_pass_in_stack): New.
16172         (TARGET_MUST_PASS_IN_STACK): New.
16173         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
16174         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
16175         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
16176         (ix86_must_pass_in_stack): Make static.
16177         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
16178         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
16179         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
16180         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
16181         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
16182         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
16183         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
16184         (mcore_must_pass_on_stack): Remove.
16185         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
16186         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
16187         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
16188         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
16189         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
16190         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
16191         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
16192         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
16193         (TARGET_MUST_PASS_IN_STACK): New.
16194         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
16195         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
16196         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
16197         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
16198         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
16199         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
16200         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
16201         MUST_PASS_IN_STACK.
16202
16203         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
16204         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
16205         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
16206         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
16207         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
16208         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
16209         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
16210         config/xtensa/xtensa.c: Use target hook.
16211
16212 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
16213
16214         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
16215         * configure: Rebuilt.
16216
16217 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
16218
16219         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
16220         * config/mips/mips.h (mips_reg_names): Don't declare.
16221         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
16222         (TARGET_NAME_REGS): Delete.
16223         (TARGET_SWITCHES): Remove -mrnames.
16224         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
16225         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
16226         in REGISTER_NAMES.
16227         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
16228         (override_options): Remove handling of TARGET_NAME_REGS.
16229
16230 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
16231
16232         * config/mips/mips.h (TARGET_*): Boolify.
16233
16234 2004-07-12  Nick Clifton  <nickc@redhat.com>
16235
16236         * config.gcc: Add sh-*-symbianelf target.
16237         * config/sh/sh.c: Add new target macros:
16238         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
16239         TARGET_CXX_IMPORT_EXPORT_CLASS.
16240         (sh_file_start): Create a definition of the .directive section.
16241         (sh_attribute): Add dllimport and dllexport attributes.
16242         * config/sh/symbian-pre.h: New file.
16243         * config/sh/symbian-post.h: New file.
16244         * config/sh/symbian.c: New file. Contains Symbian specific
16245         functions.
16246         * config/sh/sh-protos.h: Add prototypes for new functions
16247         provided by symbian.c.
16248         * config/sh/t-symbian: New file.
16249         * doc/extend.texi: Document support for dllimport and dllexport
16250         attributes by the sh-symbianelf target.
16251
16252 2004-07-12  James E Wilson  <wilson@specifixinc.com>
16253
16254         * Makefile.in (AR): Use @AR@ not ar.
16255         (NM): New.
16256         (AR_FOR_TARGET): Use $(AR) not ar for native.
16257         (NM_FOR_TARGET): Use $(NM) not nm for native.
16258         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
16259         * configure: Regenerate.
16260
16261 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
16262
16263         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
16264         special case.
16265         (ashldi3_sp64): Likewise.
16266
16267 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16268
16269         PR target/16477
16270         * pa.c (function_arg): Update comment.
16271         * pa.h (BLOCK_REG_PADDING): Define.
16272
16273 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16274
16275         PR tree-optimization/16461
16276         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
16277         arguments of phi nodes.
16278
16279 2004-07-12  Devang Patel  <dpatel@apple.com>
16280
16281         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
16282
16283 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
16284
16285         * function.c (expand_function_start): Ensure r_save is in Pmode.
16286         * calls.c (prepare_call_address): Ensure static_chain_value is
16287         in Pmode.
16288         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
16289         r_save_area are in Pmode.
16290         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
16291         fnaddr, and static_chain are in Pmode.
16292
16293 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
16294
16295         PR target/16445
16296         * config/ia64/ia64.c (bundling): Don't count ignored insns.
16297
16298 2004-07-12  Richard Henderson  <rth@redhat.com>
16299
16300         * target.h (struct gcc_target): Move gimplify_va_arg_expr
16301         next to build_builtin_va_list.
16302         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
16303         * builtins.c (gimplify_va_arg_expr): Likewise.
16304         * gimplify.c (copy_if_shared_r): Likewise.
16305
16306 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
16307
16308         * passes.c (rest_of_decl_compilation): Don't defer call of
16309         assemble_variable if its DECL_RTL is already set.
16310
16311 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
16312
16313         * cfgloop.h (struct loop): Add nb_iterations field.
16314         (current_loops): Declare.
16315         * tree-chrec.c (chrec_not_analyzed_yet,
16316         chrec_dont_know, chrec_known, count_ev_in_wider_type,
16317         chrec_contains_symbols_defined_in_loop): Remove the temporary
16318         hooks.
16319         * tree-flow-inline.h (loop_containing_stmt): New function.
16320         * tree-scalar-evolution.c: Add implementation.
16321         * tree-scalar-evolution.h: Add declarations.
16322
16323 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
16324
16325         PR rtl-optimization/15921
16326         * Makefile.in (global.o): Add recog.h.
16327
16328         * global.c (recog.h): Add the include-clause.
16329         (bb_info): New member earlyclobber.
16330         (allocate_bb_info, free_bb_info): Initialize/finish the new
16331         member.
16332         (earlyclobber_regclass, earlyclobber_regclass_length): The new
16333         global variables.
16334         (check_earlyclobber, regclass_intersect,
16335         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
16336         New functions.
16337         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
16338         (make_accurate_live_analysis): Modify pavin.
16339
16340 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
16341
16342         * tree-cfg.c (find_taken_edge): Statically compute the truth
16343         value of a predicate comparing an SSA_NAME to itself.
16344
16345 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16346
16347         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
16348         rs6000 doesn't have shift-and-add or shift-and-sub instructions
16349         by returning the cost of a multiplication plus an addition.
16350
16351 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
16352
16353         PR tree-optimization/14107
16354         * gimplify.c (gimplify_return_expr): Accept a
16355         RETURN_EXPR with an error argument.
16356         * tree-optimize.c (init_tree_optimization_passes):
16357         Run pass_warn_function_return at -O0.
16358
16359 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16360
16361         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
16362         index entry.
16363
16364 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
16365
16366         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
16367         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16368         * config/mips/3000.md: Add copyright notice.  Remove automota and
16369         function units; use generic ones instead.  Only define reservations
16370         for things that are different from generic.md.  Extend each clause
16371         to include r3900.
16372         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
16373         * config/mips/mips.md: Include them. Remove define_function_units.
16374         (alu, imuldiv): New automata and units.
16375
16376 2004-07-12  Ben Elliston  <bje@au.ibm.com>
16377
16378         * doc/invoke.texi (Optimize Options): Document -frename-registers
16379         not being enabled by default at -O3.
16380
16381 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16382
16383         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
16384         floating point additions, to keep real immediate constant positive.
16385         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
16386         into X + C, and leave positive real constants as X - C.
16387
16388 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16389
16390         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
16391
16392 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16393
16394         PR tree-optimization/15654
16395         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
16396
16397 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16398
16399         * builtins.c (fold_builtin_fputs): Don't bother converting the
16400         return type to integer_type_node, as we've already checked that
16401         the result will be ignored.
16402
16403         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
16404         that signed addition, subtraction, multiplication, division,
16405         remainder, negation and absolute value may potentially trap.
16406
16407         * fold-const.c (fold_ignored_result): New function to strip
16408         non-side-effecting tree nodes from an expression whose result
16409         is ignored.
16410         (fold_convert): Call fold_ignored_result when casting a value
16411         to VOID_TYPE.
16412         (omit_one_operand):  Call fold_ignored_result on the "omitted"
16413         operand when building a COMPOUND_EXPR.
16414         (pedantic_omit_one_operand): Likewise.
16415         * tree.h (fold_ignored_result): Prototype here.
16416         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
16417         when we're going to ignore the result.
16418
16419 2004-07-11  Richard Henderson  <rth@redhat.com>
16420
16421         PR tree-opt/16383
16422         * tree-ssa-ccp.c (fold_stmt_r): Split out...
16423         * tree.c (fields_compatible_p, find_compatible_field): ... new.
16424         * tree.h (fields_compatible_p, find_compatible_field): Declare.
16425         * tree-sra.c (sra_hash_tree): Hash fields by offset.
16426         (sra_elt_eq): Use fields_compatible_p.
16427         (generate_one_element_ref): Use find_compatible_field.
16428
16429 2004-07-11  Richard Henderson  <rth@redhat.com>
16430
16431         PR tree-opt/16422
16432         * tree-sra.c (generate_one_element_init): New.
16433         (generate_element_init): Use it.
16434         (scalarize_init): Push/pop gimplify context around it.
16435         (find_new_referenced_vars_1, find_new_referenced_vars): New.
16436         * gimplify.c (gimplify_expr): Allow SSA_NAME.
16437
16438 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16439
16440         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
16441         combine.c's combine_insn_cost.
16442         * rtl.h (insn_rtx_cost): Prototype here.
16443         * combine.c (combine_insn_cost): Delete function.
16444         (combine_validate_cost): Update callers of combine_insn_cost to
16445         call insn_rtx_cost instead.
16446         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
16447         requesting the rtx_cost of call and/or jump instructions.
16448
16449         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
16450         rtx_cost directly.  Don't request/use the cost of call or jump
16451         instructions.  Return -1 if the cost of any instruction can't be
16452         determined (or the BB contains a function call).
16453         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
16454         -1 (i.e. can't determine the cost of any instruction or the basic
16455         block contains a subroutine call).
16456         (find_if_case_2): Likewise.
16457
16458 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16459
16460         * rs6000.c (struct processor_costs): Change semantics of fields to
16461         include the COST_N_INSNS scaling, and update all initializers.
16462         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
16463         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
16464         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
16465         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
16466
16467 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16468
16469         * LANGUAGES: Remove obsolete information.
16470
16471 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16472
16473         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
16474         SIGBUS signal frames, the PSW address points *to* the faulting
16475         instruction, not after it.
16476
16477 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16478
16479         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
16480         added to TLS symbol addresses.
16481
16482 2004-07-11  Richard Henderson  <rth@redhat.com>
16483
16484         * expmed.c (init_expmed): Use stack-local structures for
16485         temporary rtl.  Don't recognize shifts.
16486
16487 2004-07-11  Richard Henderson  <rth@redhat.com>
16488
16489         * expr.c (store_expr): Don't fiddle subreg promotion for types
16490         with precision smaller than the mode.
16491
16492 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16493
16494         * tree.h (all_types_permanent): Remove.
16495
16496 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16497
16498         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
16499         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
16500         * langhooks.c (lhd_clear_binding_stack): Remove.
16501         * langhooks-def.h (lhd_clear_binding_stack,
16502         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16503         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
16504         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
16505         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16506         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
16507         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
16508         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
16509         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16510         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
16511         * tree.h (poplevel): Don't declare.
16512         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
16513         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16514         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
16515         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16516         Remove.
16517
16518 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16519
16520         PR tree-optimization/16437
16521         * c-common.c (shorten_compare): Don't mark result of conversion to
16522         narrower signed type as overflowing.
16523         * fold-const.c (decode_field_reference): Determine whether
16524         signedness comes from outer type using precision rather than size.
16525
16526 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16527
16528         * configure.ac:  Alphabetize --enable-checking list, add
16529         missing valgrind entry.
16530         * configure:  Regenerate.
16531
16532 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16533
16534         * doc/install.texi (Testing):  Fix syntax in "make check" example.
16535
16536 2004-07-10  James E Wilson  <wilson@specifixinc.com>
16537
16538         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
16539
16540 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16541
16542         PR rtl-optimization/16001
16543         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
16544         niter_expr.
16545
16546 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
16547
16548         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
16549
16550 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
16551             James Morrison  <phython@gcc.gnu.org>
16552
16553         * doc/contrib.texi (Contributors): Add gfortran contributors and
16554         fix a couple of typos.
16555
16556 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16557
16558         PR rtl-optimization/15387
16559         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
16560         to incoming args space correctly.
16561
16562 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16563
16564         * pa.c (output_indirect_call): Only use %r2 as the link register in
16565         indirect calls with the long PA 2.0 pc-relative branch.
16566
16567 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
16568
16569         * config/i386/i386.c (override_options): Pick a 64-bit CPU
16570         for the default tuning if TARGET_64BIT.
16571
16572 2004-07-10  Richard Henderson  <rth@redhat.com>
16573
16574         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
16575         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
16576
16577 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
16578
16579         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
16580         * expmed.c (store_bit_field, extract_bit_field): Remove last
16581         argument.
16582         * builtins.c (expand_builtin_signbit): Adjust callers.
16583         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
16584         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
16585         * ifcvt.c (noce_emit_move_insn): Likewise.
16586         * stmt.c (expand_return): Likewise.
16587         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
16588         store_field, expand_expr_real_1): Likewise.
16589
16590 2004-07-10  Richard Henderson  <rth@redhat.com>
16591
16592         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
16593
16594 2004-07-09  Mike Stump  <mrs@apple.com>
16595
16596         * config/darwin.c (no_dead_strip): Add.
16597         (HAVE_DEAD_STRIP): Add.
16598         (darwin_emit_unwind_label): Ensure that we don't dead code strip
16599         the .eh label.
16600
16601 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16602
16603         * tree-ssa-loop-im.c: New file.
16604         * Makefile.in (tree-ssa-loop-im.o): Add.
16605         * cfgloop.c (superloop_at_depth): New function.
16606         * cfgloop.h (superloop_at_depth): Declare.
16607         * common.opt (ftree-lim): New flag.
16608         * expr.c (array_ref_up_bound): New function.
16609         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
16610         * timevar.def (TV_LIM): New timevar.
16611         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
16612         computing immediate uses of a phi node.
16613         * tree-flow.h (struct tree_ann_common_d): Add aux field.
16614         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
16615         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
16616         * tree-pass.h (pass_lim): Declare.
16617         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
16618         functions.
16619         (pass_lim): New pass structure.
16620         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
16621         * tree.c (in_array_bounds_p): New function.
16622         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
16623         (in_array_bounds_p, array_ref_up_bound): Declare.
16624         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
16625         * doc/passes.texi (tree-ssa-loop-im.c): Document.
16626
16627 2004-07-09  Richard Henderson  <rth@redhat.com>
16628
16629         * builtins.c (expand_builtin_stpcpy): Don't modify len.
16630
16631         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
16632         with prejudice.
16633
16634 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
16635
16636         * flags.h: Delete redundant prototypes that are being generated
16637         in options.h from common.opt.
16638         * common.opt: Add in the expository comments formerly in flags.h.
16639
16640 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16641
16642         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
16643         available for use only when TARGET_MMX/_SSE is set, and check for
16644         variable argument function if any register count is non-zero.
16645         (function_arg): Correctly suppress repeated warnings for passing SSE
16646         vectors are arguments without SSE enabled.
16647         (ix86_function_arg_boundary): Without SSE enabled, the use of what
16648         would be SSE register modes does no longer influence the alignment.
16649
16650 2004-07-09  Richard Henderson  <rth@redhat.com>
16651
16652         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
16653         Always align upward to arg boundary.  Use size_in_bytes/round_up.
16654         Maintain type-correctness of constants.
16655         * stor-layout.c (round_up, round_down): Special-case powers of 2.
16656
16657 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
16658
16659         * config/sparc/sparc.c (*_costs): Scale instruction costs
16660         by COSTS_N_INSNS.
16661         (sparc_rtx_costs): Adjust as appropriate.
16662
16663 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16664
16665         * config/i386/mm3dnow.h: New.
16666         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
16667
16668 2004-07-09  Richard Henderson  <rth@redhat.com>
16669
16670         * simplify-rtx.c (simplify_const_relational_operation): Only
16671         look at bounds of scalar integers.
16672
16673 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16674
16675         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
16676
16677 2004-07-09  Andrew Pinski  <apinski@apple.com>
16678
16679         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
16680         always referenced.
16681         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
16682         UOBJC_METACLASS_decl.
16683
16684 2004-07-09  James E Wilson  <wilson@specifixinc.com>
16685
16686         PR target/16364
16687         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
16688         do return a parallel if hfa_mode == XFmode and mode == TImode.
16689
16690 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16691
16692         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
16693         permissible for unary plus.
16694
16695 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16696
16697         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
16698         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
16699         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
16700         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
16701         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
16702         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
16703         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
16704         (BUILTIN_xxxIMAX): New.
16705         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
16706         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
16707         BUILT_IN_PARITYIMAX.
16708
16709 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
16710
16711         * config/sparc/sparc.h (processor_costs): Define.
16712         (sparc_costs): Declare.
16713         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
16714         hypersparc_costs, sparclet_costs, ultrasparc_costs,
16715         ultrasparc3_costs): New.
16716         (sparc_override_options): Set sparc_costs as appropriate.
16717         (sparc_rtx_costs): Use sparc_costs instead of messy
16718         conditionals.
16719
16720 2004-07-09  Steven Bosscher  <stevenb@suse.de>
16721
16722         * doc/md.texi (Processor pipeline description): Mention that
16723         the old pipeline description is deprecated.
16724
16725         * config/rs6000/7450.md (automaton ppc7450): Split up, move
16726         mciu_7450 function unit to...
16727         (automaton ppc7450mciu): ...new automaton.
16728
16729         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
16730         (schedule_block): Don't consider inserting bubbles.
16731         (sched_init): Don't initialize DFA bubbles.
16732         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
16733         TARGET_SCHED_DFA_BUBBLE): Remove.
16734         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
16735         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
16736         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
16737
16738         * stmt.c (conditional_context): Remove prototype.
16739         * tree.h (conditional_context): Remove.
16740         * tree-cfg.c (pre_insert_on_edge): Remove.
16741
16742         * c-common.h (c_expand_asm_operands): Remove prototype.
16743         * c-typeck.c (c_expand_asm_operands): Remove.
16744
16745 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16746
16747         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
16748         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
16749         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
16750         and V8QI are class SSE. All sufficiently small remaining vector modes
16751         must be passed in one or two integer registers.
16752         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
16753         returned in memory.
16754         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
16755         __builtin_ia32_pmuludq128 have non-uniform argument and return types
16756         and must thus be handled explicitly.
16757         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
16758         MMX and XMM regs.
16759         (movv8qi_internal, movv4hi_internal, movv2si_internal,
16760         movv2sf_internal): Permit moving between MMX and XMM registers (since
16761         MMX areguments and return values are passed in XMM registers).
16762         (sse2_umulsidi3): Correct type and mode.
16763
16764 2004-07-09  Richard Henderson  <rth@redhat.com>
16765
16766         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
16767
16768 2004-07-09  Eric Christopher  <echristo@redhat.com>
16769
16770         * config/rs6000/40x.md: Split into two automatons.
16771
16772 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
16773             Andrew Pinski  <apinski@apple.com>
16774
16775         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
16776         on when we have more than one input file.
16777         (c_common_parse_file): Restore loop over all input files.
16778         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
16779
16780         * c-decl.c (set_type_context): New function.
16781         (pop_scope): Use it to set context of types.  When we
16782         encounter a TYPE_DECL, set the context of the attached type too.
16783         (pop_file_scope): Don't call cpp_undef_all here.
16784         (diagnose_mismatched_decls): Do not complain about a second
16785         definition of an 'extern inline' function if it's not in the
16786         same translation unit.  Do not complain about inline
16787         declaration after use if the use was in a different
16788         translation unit.
16789         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
16790         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
16791         the external scope.
16792         (pushdecl_top_level): Likewise.
16793         (grokdeclarator): Clarify what is going on with setting
16794         DECL_EXTERNAL on function types, a little.
16795         (c_write_global_declarations): Don't do anything if
16796         -fsyntax-only or errors have been encountered.
16797
16798 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
16799
16800         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
16801
16802 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16803
16804         PR target/16459
16805         * pa.c (output_indirect_call): Use %r2 as the link register when
16806         calling $$dyncall with a pc-relative branch.
16807
16808 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
16809
16810         * doc/install.texi (Binaries): Mention OpenPKG.
16811
16812 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
16813
16814         Fix PR tree-optimization/15555
16815         * tree-dfa.c (dump_variable): If the variable is a pointer
16816         SSA_NAME, also dump its points-to information.
16817         * tree-flow.h (struct ptr_info_def): Add field
16818         is_dereferenced.
16819         (dump_points_to_info_for): Declare.
16820         (debug_points_to_info_for): Declare.
16821         * tree-optimize.c (init_tree_optimization_passes): Add a
16822         second alias analysis pass after DOM2.
16823         Move pass_del_pta to a later spot.
16824         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
16825         create a name tags when we find a dereferenced pointer.  Just
16826         mark the pointer dereferenced.
16827         (collect_points_to_info_for): Move code to clear points-to
16828         information to create_name_tags.
16829         (create_name_tags): New function.
16830         (compute_flow_sensitive_aliasing): Call it.
16831         (setup_pointers_and_addressables): Mark type tags for renaming
16832         here instead of ...
16833         (create_memory_tag): ... here.
16834         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
16835         (dump_points_to_info_for): Declare extern.
16836         (debug_points_to_info_for): New function.
16837
16838 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
16839
16840         * config/arc/arc.md: Switch to DFA-based scheduler description.
16841         * config/arc/arc.c: Switch to DFA-based scheduler description.
16842
16843 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16844
16845         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
16846         pointer.
16847
16848 2004-07-09  Richard Henderson  <rth@redhat.com>
16849
16850         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
16851         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16852         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
16853         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
16854
16855         * config/v850/v850-protos.h (v850_va_arg): Remove.
16856         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16857         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
16858         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
16859         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
16860         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
16861
16862 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16863
16864         PR target/12133
16865         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
16866         and DImode to use +/-4k offset.
16867
16868 2004-07-09  Richard Henderson  <rth@redhat.com>
16869
16870         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
16871         Remove.
16872         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16873         (xstormy16_gimplify_va_arg_expr): Rewrite from
16874         xstormy16_expand_builtin_va_arg.
16875         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
16876
16877         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
16878         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
16879
16880         * config/sh/sh-protos.h (sh_va_arg): Remove.
16881         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16882         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
16883         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
16884
16885         * config/pa/pa-protos.h (hppa_va_arg): Remove.
16886         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16887         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
16888         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
16889
16890         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
16891         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16892         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
16893         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
16894
16895 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16896
16897         * config/sparc/sparc.md (return): Rewrite length formula.
16898         * config/sparc/sparc.c (output_return): Pass 1 as 5th
16899         argument to final_scan_insn when in a delay slot.
16900         (output_sibcall): Likewise.
16901
16902 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16903
16904         * arm.c (arm_cpp_interwork): New variable.
16905         (arm_override_options): Set it if TARGET_INTERWORK was on the command
16906         line.
16907         * arm.h (arm_cpp_interwork): Declare it.
16908         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
16909         __THUMB_INTERWORK__ in the preprocessor.
16910
16911 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
16912
16913         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
16914
16915 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16916
16917         PR target/16416
16918         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
16919         Override default settings to account for -m32 and -m64.
16920
16921 2004-07-08  Randolph Chung  <tausq@debian.org>
16922
16923         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
16924
16925 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
16926
16927         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
16928         before comparing it as such.
16929
16930 2004-07-08  Richard Henderson  <rth@redhat.com>
16931
16932         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
16933         temporary.  Use bit arithmetic to align.
16934
16935 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
16936
16937         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
16938         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
16939         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
16940         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
16941         add_labels_and_missing_jumps, find_jump_block,
16942         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
16943         Likewise.
16944         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
16945         link_btr_uses, move_btr_def): Likewise.
16946         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
16947         expand_builtin_expect_jump): Likewise.
16948         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
16949         * calls.c (expand_call, emit_library_call_value_1): Likewise.
16950         * cfganal.c (forwarder_block_p): Likewise.
16951         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
16952         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
16953         find_bb_boundaries): Likewise.
16954         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16955         merge_blocks_move_predecessor_nojumps,
16956         merge_blocks_move_successor_nojumps, insns_match_p,
16957         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
16958         try_optimize_cfg): Likewise.
16959         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
16960         * cfglayout.c (skip_insns_after_block, label_for_bb,
16961         record_effective_endpoints, insn_locators_initialize,
16962         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
16963         * cfgmainloop.c (create_loop_notes): Likewise.
16964         * cfgrtl.c (delete_insn, delete_insn_chain,
16965         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
16966         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
16967         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
16968         redirect_branch_edge, force_nonfallthru_and_redirect,
16969         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
16970         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
16971         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
16972         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
16973         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
16974         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
16975         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
16976         * combine.c (combine_instructions, can_combine_p, try_combine,
16977         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
16978         distribute_notes, distribute_links, insn_cuid): Likewise.
16979         * cse.c (fold_rtx, cse_insn, cse_around_loop,
16980         invalidate_skipped_block, cse_set_around_loop,
16981         cse_end_of_basic_block, cse_main, cse_basic_block,
16982         cse_condition_code_reg): Likewise.
16983         * cselib.c (cselib_process_insn): Likewise.
16984         * ddg.c (create_ddg): Likewise.
16985         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
16986         Likewise.
16987         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
16988         gen_label_die, dwarf2out_var_location): Likewise.
16989         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
16990         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
16991         last_call_insn, active_insn_p, next_label, prev_label,
16992         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
16993         add_insn_before, remove_insn, add_function_usage_to,
16994         reorder_insns, find_line_note, remove_unnecessary_notes,
16995         emit_insn_after_1, classify_insn): Likewise.
16996         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
16997         connect_post_landing_pads, sjlj_mark_call_sites,
16998         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
16999         can_throw_internal, can_throw_external, set_nothrow_function_flags,
17000         convert_to_eh_region_ranges): Likewise.
17001         * explow.c (optimize_save_area_alloca): Likewise.
17002         * expr.c (expand_expr_real): Likewise.
17003         * final.c (insn_current_reference_address, compute_alignments,
17004         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
17005         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
17006         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
17007         propagate_block_delete_insn, propagate_one_insn,
17008         init_propagate_block_info, propagate_block, libcall_dead_p,
17009         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
17010         Likewise.
17011         * function.c (instantiate_virtual_regs, reorder_blocks_1,
17012         expand_function_start, expand_function_end, contains,
17013         thread_prologue_and_epilogue_insns,
17014         reposition_prologue_and_epilogue_notes): Likewise.
17015         * gcse.c (constprop_register, bypass_conditional_jumps,
17016         insert_insn_end_bb, gcse_after_reload): Likewise.
17017         * genemit.c (gen_expand, gen_split): Likewise.
17018         * genpeep.c (gen_peephole, main): Likewise.
17019         * global.c (build_insn_chain): Likewise.
17020         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
17021         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
17022         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
17023         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
17024         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
17025         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
17026         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
17027         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
17028         dead_or_predicable): Likewise.
17029         * integrate.c (try_constants): Likewise.
17030         * jump.c (rebuild_jump_labels, cleanup_barriers,
17031         purge_line_number_notes, init_label_info, mark_all_labels,
17032         squeeze_notes, get_label_before, get_label_after,
17033         reversed_comparison_code_parts, simplejump_p, pc_set,
17034         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
17035         delete_barrier, delete_prior_computation, delete_computation,
17036         delete_related_insns, delete_for_peephole, redirect_jump):
17037         Likewise.
17038         * lcm.c (optimize_mode_switching): Likewise.
17039         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
17040         Likewise.
17041         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
17042         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
17043         * loop-iv.c (simplify_using_assignment): Likewise.
17044         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
17045         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
17046         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
17047         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
17048         check_insn_for_givs, check_final_value, update_giv_derive,
17049         basic_induction_var, product_cheap_p, check_dbra_loop,
17050         loop_insn_first_p, last_use_this_basic_block,
17051         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
17052         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
17053         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
17054         sms_schedule_by_order): Likewise.
17055         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
17056         * postreload.c (reload_cse_simplify_operands, reload_combine,
17057         reload_cse_move2add): Likewise.
17058         * predict.c (can_predict_insn_p, estimate_probability,
17059         expected_value_to_br_prob, process_note_predictions): Likewise.
17060         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
17061         * profile.c (branch_prob): Likewise.
17062         * ra-build.c (live_out_1, livethrough_conflicts_bb,
17063         detect_webs_set_in_cond_jump): Likewise.
17064         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
17065         ra_print_rtl_with_bb): Likewise.
17066         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
17067         * recog.c (next_insn_tests_no_inequality, find_single_use,
17068         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
17069         * reg-stack.c (next_flags_user, record_label_references,
17070         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
17071         compensate_edge, convert_regs_1): Likewise.
17072         * regclass.c (scan_one_insn): Likewise.
17073         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
17074         regmove_optimize, fixup_match_1, single_set_for_csa,
17075         combine_stack_adjustments_for_block): Likewise.
17076         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
17077         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
17078         find_equiv_reg): Likewise.
17079         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
17080         reload_as_needed, emit_input_reload_insns, do_output_reload,
17081         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
17082         Likewise.
17083         * reorg.c (find_end_label, emit_delay_sequence,
17084         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
17085         get_jump_flags, rare_destination, mostly_true_jump,
17086         try_merge_delay_insns, redundant_insn, own_thread_p,
17087         fill_simple_delay_slots, fill_slots_from_thread,
17088         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
17089         dbr_schedule): Likewise.
17090         * resource.c (find_basic_block, next_insn_no_annul,
17091         find_dead_or_set_registers, mark_target_live_regs): Likewise.
17092         * rtl.h (RTX_PREV): Likewise.
17093         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
17094         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
17095         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
17096         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
17097         tablejump_p, computed_jump_p, insns_safe_to_move_p,
17098         find_first_parameter_load, can_hoist_insn_p): Likewise.
17099         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
17100         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
17101         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
17102         schedule_ebbs): Likewise.
17103         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
17104         is_conditionally_protected, can_schedule_ready_p,
17105         add_branch_dependences, debug_dependencies): Likewise.
17106         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
17107         Likewise.
17108         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
17109         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
17110         set_dominates_use, ujump_to_loop_cont): Likewise.
17111         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
17112         * varasm.c (output_constant_pool_1): Likewise.
17113
17114 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17115
17116         * tree-scalar-evolution.c: New file.
17117         * tree-scalar-evolution.h: New file.
17118         * tree-ssa-loop-niter.c: New file.
17119         * Makefile.in (SCEV_H): New.
17120         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
17121         * cfgloop.h (struct loop): Add bounds field.
17122         * tree-flow.h (struct tree_niter_desc): New type.
17123         (number_of_iterations_cond, number_of_iterations_exit,
17124         loop_niter_by_eval, find_loop_niter_by_eval,
17125         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
17126         free_numbers_of_iterations_estimates): Declare.
17127         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
17128         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
17129         * doc/invoke.texi (max-iterations-to-track): Document.
17130
17131 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
17132
17133         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
17134         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
17135         (MODE_AFTER): Add cast appropriately.
17136         * config/sh/sh.md (movdi splitter): Likewise.
17137         (casesi_worker_2): Add const qualifier appropriately.
17138         (eh_return): Remove unused variable.
17139         (insv): Initialize v;
17140
17141 2004-07-08  Richard Henderson  <rth@redhat.com>
17142
17143         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
17144         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17145         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
17146         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
17147         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
17148
17149         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
17150         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17151         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
17152         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
17153
17154         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
17155         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17156         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
17157         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
17158
17159         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
17160         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17161         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
17162         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
17163
17164         * config/i860/i860-protos.h (i860_va_arg): Remove.
17165         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17166         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
17167         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
17168
17169 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17170
17171         * system.h: Prototype getpagesize if missing.
17172         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
17173         * configure: Regenerate.
17174         * config.in: Regenerate.
17175
17176 2004-07-08  Richard Henderson  <rth@redhat.com>
17177
17178         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
17179         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17180         (fr30_gimplify_va_arg_expr): New.
17181         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
17182         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
17183
17184 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
17185
17186         PR target/16414
17187         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
17188         of asm_noperands result.
17189
17190 2004-07-08  Richard Henderson  <rth@redhat.com>
17191
17192         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
17193         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17194         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
17195         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
17196
17197 2004-07-08  Richard Henderson  <rth@redhat.com>
17198
17199         * builtins.c (ind_gimplify_va_arg_expr): New.
17200         * tree.h (ind_gimplify_va_arg_expr): Declare.
17201         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
17202
17203 2004-07-08  Jan Beulich  <jbeulich@novell.com>
17204
17205         * expmed.c (extract_bit_field): Correct condition to use vec_extract
17206         patterns also on vector elements other than the first one.
17207         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
17208         break statements.
17209
17210 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
17211
17212         * config/rs6000/darwin-ldouble.c: Correct reference
17213         to the Linnainmaa paper.
17214
17215 2004-07-08  Richard Henderson  <rth@redhat.com>
17216
17217         * config/arc/arc-protos.h (arc_va_arg): Remove.
17218         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17219         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
17220         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
17221
17222         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
17223         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17224         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
17225         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
17226
17227 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17228
17229         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
17230
17231 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
17232
17233         * c-decl.c (static_ctors, static_dtors): Make static.
17234         (pop_file_scope): Call c_common_write_pch and
17235         cgraph_finalize_compilation_unit here.
17236         (build_cdtor): Moved here from c-objc-common.c; simplify.
17237         (c_write_global_declarations_1): Clarify comment.
17238         (c_write_global_declarations): Close the external scope before
17239         doing anything else.  Call build_cdtor, cgraph_optimize, and
17240         mudflap_finish_file here.
17241         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
17242         Clarify comment.
17243         * c-objc-common.c: No need to include cgraph.h.
17244         (build_cdtor): Moved to c-decl.c.
17245         (c_objc_common_finish_file): Delete.
17246         * c-tree.h: Update to match.
17247         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
17248         (generate_static_references): Set TREE_USED before calling finish_decl.
17249         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
17250         on the static_instances_decl.
17251
17252 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
17253
17254         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
17255         decls when there is only one input translation unit.
17256         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
17257         change of 2004-07-05; do not treat declarations with
17258         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
17259         * opts.c (cur_in_fname): Delete.
17260         * opts.h: Likewise.
17261         * tree.c: Revert changes of 2004-07-05; no special treatment
17262         for TRANSLATION_UNIT_DECLs.
17263         * Makefile.in (tree.o): Update dependencies.
17264
17265 2004-07-08  Roger Sayle  <roger@eyesopen.com>
17266
17267         * builtins.c (fold_builtin_strcpy): Merge functionality from
17268         simplify_builtin_strcpy.  Add additional len argument.  No longer
17269         static.  Remove function prototype.
17270         (fold_builtin_strncpy): Likewise integrate functionality from
17271         simplify_builtin_strncpy.  Add additional slen argument.  No
17272         longer static.  Remove function prototype.
17273         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
17274         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
17275         types of "ignore" and "unlocked" parameters to bool.
17276         (fold_builtin_1):  Add additional ignore argument.  Call renamed
17277         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
17278         builtins.  Update arguments to fold_builtin_strncpy and
17279         fold_builtin_strcpy.  Add function prototype.
17280         (fold_builtin): Add additional Boolean ignore argument to pass
17281         to fold_builtin_1.
17282         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
17283         and fold_builtin_strncpy instead of simplify_builtin_fputs,
17284         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
17285
17286         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
17287         simplify_builtin_strncpy): Delete function prototypes.
17288         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
17289         fold_builtin_strncpy): Add function prototypes here.
17290         (fold_builtin): Update function prototype with new "bool ignore".
17291
17292         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
17293         (ccp_fold_builtin):  Update call to fold_builtin.  Call
17294         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
17295         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
17296         simplify_builtin_strncpy respectively.
17297         * fold-const.c (fold): Update call to fold_builtin.
17298
17299 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17300
17301         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
17302         to strcpy.
17303
17304         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
17305         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
17306         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
17307         * calls.c: Remove ifdefs of macros above.
17308         * functions.c: Likewise.
17309         * expr.c: Likewise.
17310
17311 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17312
17313         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
17314         (arch attribute): Delete.
17315         (current_function_calls_alloca attribute): Rename into calls_alloca.
17316         (calls_eh_return): New attribute.
17317         (leaf_function): Likewise.
17318         (length attribute): Fix formula for sibcalls.
17319         (return insn): Correctly compute the 'length' attribute.
17320         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
17321
17322 2004-07-08  Richard Henderson  <rth@redhat.com>
17323
17324         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
17325         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
17326         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
17327         * tree-eh.c (lower_eh_constructs_1): Likewise.
17328         * tree-sra.c (sra_walk_modify_expr): Likewise.
17329         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17330         (eliminate_unnecessary_stmts): Likewise.
17331         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
17332         * tree-tailcall.c (optimize_tail_call): Likewise.
17333         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
17334
17335 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17336             Jakub Jelinek  <jakub@redhat.com>
17337
17338         * config/i386/i386.c (override_options): Enable
17339         SSE prefetches with -mtune, as long as we are
17340         compiling for i686 or higher.  All i686 processors
17341         accept SSE prefetches as NOPS, some i586's don't.
17342
17343 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17344
17345         PR target/10567
17346         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
17347
17348 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17349
17350         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
17351         the handling of clobbering ASM_EXPRs.
17352
17353 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17354
17355         PR target/16430
17356         * config/sparc/sparc.c (function_value): In 64-bit mode,
17357         return the aggregates larger than 16 bytes like unions.
17358
17359 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17360
17361         PR target/16199
17362         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
17363         'temp' is zero, generate new pseudos as needed and emit the
17364         sequence of insns in single-assignment form.  Resync comments
17365         with code.
17366         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
17367         function before reload.
17368
17369 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
17370
17371         * vec.c (vec_assert_fail): Remove duplicate 'function'.
17372
17373         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
17374
17375         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
17376         Allocation is signed.
17377         (VEC_reserve): Return flag, allocation is signed.
17378
17379 2004-07-08  Richard Henderson  <rth@redhat.com>
17380
17381         * tree-ssa-ccp.c (fold_stmt): Get type directly from
17382         OBJ_TYPE_REF_OBJECT.
17383
17384 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
17385             Neil Booth  <neil@daikokuya.co.uk>
17386
17387         PR c/2511
17388         PR c/3325
17389         * c-decl.c (finish_struct): Ensure bit-fields are given the
17390         correct type.
17391         * c-common.c (c_common_signed_or_unsigned_type): For C, require
17392         the precision to match as well as the mode.
17393         * expr.c (reduce_to_bit_field_precision): New function.
17394         (expand_expr_real_1): Reduce expressions of bit-field type to
17395         proper precision.
17396         * langhooks.h (reduce_bit_field_operations): New hook.
17397         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
17398         Define.
17399         * c-lang.c, objc/objc-lang.c
17400         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
17401         * objc/objc-act.c (check_ivars): Convert types to bit-field types
17402         before checking.
17403         * tree.c (build_nonstandard_integer_type): New function.
17404         * tree.h (build_nonstandard_integer_type): New prototype.
17405         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
17406         conversions between integer and boolean types as useless.
17407
17408 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17409
17410         * c-common.c (c_common_nodes_and_builtins): Do not
17411         create __builtin_ptrdiff_t and __builtin_size_t.
17412
17413 2004-07-08  Andrew Pinski  <apinski@apple.com>
17414
17415         * Makefile.in (libbackend.o): Add -combine to the gcc
17416         command line.
17417
17418 2004-07-08  Nick Clifton  <nickc@redhat.com>
17419
17420         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
17421         Set to -Os.
17422
17423 2004-07-08  Richard Henderson  <rth@redhat.com>
17424
17425         * except.c (expand_eh_region_start, expand_eh_region_end,
17426         expand_eh_handler, expand_eh_region_end_cleanup,
17427         expand_start_all_catch, expand_start_catch, expand_end_catch,
17428         expand_end_all_catch, expand_eh_region_end_allowed,
17429         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
17430         expand_eh_region_end_fixup): Remove.
17431         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
17432         cleanups, outer_cleanups, label_chain, exception_region.
17433         (struct goto_fixup): Remove stack_level, cleanup_list_list.
17434         (struct label_chain): Remove.
17435         (struct stmt_status): Remove x_stack_block_stack.
17436         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
17437         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
17438         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
17439         end_cleanup_deferral, last_cleanup_this_contour,
17440         containing_blocks_have_cleanups_or_stack_level,
17441         any_pending_cleanups): Remove.
17442         (expand_null_return_1): Take no arguments.
17443         (expand_label, expand_naked_return, expand_return,
17444         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
17445         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
17446         expand_end_case_type): Don't use any of them.
17447         * calls.c (expand_call): Likewise.
17448         * dojump.c (do_jump): Likewise.
17449         * function.c (expand_function_end): Likewise.
17450         * expr.c (store_expr, expand_expr_real_1): Likewise.
17451         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
17452         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
17453         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
17454         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
17455         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
17456         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
17457         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
17458         for WITH_CLEANUP_EXPR.
17459         (gimple_push_cleanup): Likewise.
17460         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
17461         * print-tree.c (print_node): Likewise.
17462         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
17463         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
17464         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
17465         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
17466         (GOTO_SUBROUTINE_EXPR): Remove.
17467         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
17468         (DECL_TOO_LATE): Remove.
17469         * except.h, tree.h: Update decls.
17470
17471 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17472
17473         * explow.c (optimize_save_area_alloca): Do not accept parameters.
17474         * passes.c (rest_of_handle_final): Handle symout.
17475         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
17476         Push timevar here.
17477         (rest_of_handle_sched): Break out SMS.  Remove ifs for
17478         flag_schedule_insns and flag_modulo_sched.
17479         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
17480         collect at the end.
17481         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
17482         (rest_of_handle_partition_blocks, rest_of_handle_sms,
17483         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
17484         rest_of_handle_mode_switching, rest_of_handle_jump,
17485         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
17486         rest_of_handle_jump2, rest_of_handle_postreload,
17487         rest_of_handle_flow2, rest_of_clean_state,
17488         rest_of_handle_shorten_branches,
17489         rest_of_handle_prologue_epilogue,
17490         rest_of_handle_branch_target_load_optimize): New.
17491         (rest_of_compilation): Call the above.  Remove ggc_collect
17492         calls moved to rest_of_handle_*.
17493         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
17494
17495         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
17496         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
17497         * except.h (set_nothrow_function_flags): Update comment.
17498         * function.c (current_function_nothrow): Remove.
17499         * output.h (current_function_nothrow): Remove.
17500         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
17501         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
17502
17503 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17504
17505         PR bootstrap/16326
17506         * reorg.c: Revert 2004-06-30 change.
17507         (find_end_label): If HAVE_epilogue and !HAVE_return,
17508         return 0 instead of creating a label at the end of the insn chain.
17509         (optimize_skip): Account for the failure mode of find_end_label.
17510         (fill_simple_delay_slots): Likewise.
17511         (fill_slots_from_thread): Likewise.
17512         (relax_delay_slots): Likewise.
17513
17514 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17515
17516         * tree-flow.h (addressable_vars): Declare.
17517         * tree-ssa-alias.c (addressable_vars): Define.
17518         (setup_pointers_and_addressables): Add addressable variables
17519         to addressable_vars.
17520         * tree-ssa-operands.c (get_stmt_operands): Move
17521         handling of ASM_EXPRs ...
17522         (get_asm_expr_operands): ... here.
17523         When the ASM_EXPR clobbers memory, also clobber addressable
17524         variables.
17525         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
17526         (delete_tree_ssa): Reset addressable_vars.
17527
17528 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17529             Richard Henderson  <rth@redhat.com>
17530
17531         * varasm.c (assemble_variable): Use assemble_zeros for
17532         zero-initialized variables.
17533         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
17534         for SECCAT_BSS and SECCAT_TBSS.
17535
17536 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17537
17538         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
17539
17540         * expmed.c (emit_store_flag): Also special-case double-word
17541         (in-)equality comparison against -1.
17542
17543         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
17544         passing arguments the containers for which are registers.
17545
17546         * calls.c (emit_library_call_value_1): Use mode of function parameter
17547         rather than that of argument since constants have none.
17548
17549 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17550
17551         Introduce H8SX support.
17552         * expr.c (expand_strcpy): Renamed and moved to...
17553         * builtins.c (expand_movstr): ... here.  Tweak.
17554         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
17555         computed or has side effects.
17556         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
17557         unused, or if mempcpy fails.  Adjust the return value in the
17558         latter case.  Use movstr if everything else fails.
17559         * doc/md.texi (movstr): Document.
17560         (movmemM, clrmemM): Fix explanation of memory block operands.
17561         * config/h8300/h8300.md (stpcpy): Renamed to...
17562         (movstr): ... this.  Adjust.
17563         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17564         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
17565         movmem* and clrstr* to clrmem*.
17566         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
17567         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
17568         GENERAL_REGS, always.
17569         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
17570         getting the stack pointer as addr.
17571         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
17572         from general_operand_dst.
17573         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
17574         variant of...
17575         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
17576         instead of requiring it to match only before reload.
17577         (stpcpy_internal_normal): New, normal-mode variant of...
17578         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
17579         `D' instead of requiring it to match only before reload.
17580         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
17581         mode argument.
17582         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
17583         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
17584         h8300_get_index.
17585         * config/h8300/h8300.md (attr type): Add call.
17586         (attr can_delay): If type is call, set it no.
17587         (call, call_value): Set type to call.
17588         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
17589         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
17590         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
17591         * tree.c (get_narrower): Don't narrow integral types into
17592         non-integral types.
17593         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
17594         frame_size *before* the first use.
17595         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
17596         on input.
17597         (peephole2): Don't widen instructions that push SP.  Move
17598         decrement of SP to the end of all stm-generating peepholes.
17599         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17600         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
17601         and OR to set it to all ones.
17602         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17603         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
17604         (call, call_value): Set can_delay to "no".
17605         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
17606         * config/h8300/h8300.md (extzv): Make subreg check more robust.
17607         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17608         * config/h8300/h8300.md (*brabit): Remove.
17609         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
17610         zero_extract.  Use bit_memory_operand as the predicate for
17611         operand 1 and 'WU' as the constraint.  Check the difference
17612         between the base length and the final one when deciding which
17613         type of branch to use.
17614         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17615         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
17616         Use convert_move to extend the result for TARGET_H8300SX.  Check
17617         for QImode memory references.  Optimize the case where the
17618         destination is a paradoxical subreg.
17619         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17620         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
17621         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
17622         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17623         * config/h8300/h8300.md: Include mova.md
17624         (length_table): Add mova and mova_zero.
17625         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
17626         after all constant addresses for '%R', '%X', '%T' and '%S'.
17627         (h8300_mova_length): New function.
17628         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
17629         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
17630         dependencies for s-config, etc.
17631         * config/h8300/gemova.sh: New file.
17632         * config/h8300/mova.md: Generated.
17633         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
17634         * config/h8300/h8300.c (h8300_bitfield_length): New.
17635         (nibble_operand): Adjust.
17636         (h8300_binary_length): Handle conditional binary op.
17637         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
17638         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
17639         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
17640         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
17641         constraints.  WU is introduced as a variant of U that requires a
17642         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
17643         * config/h8300/h8300.md (attr type): Added bitbranch.
17644         (attr length_table): Added bitfield and bitbranch.
17645         (attr length): Compute bitbranch length.
17646         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
17647         least-significant bit of a byte.
17648         (brabit, brabc, brabs): New.
17649         (insv, extzv): Emit bfst and bfld on H8300SX.
17650         (bfld, bfst, seq, sne): New.
17651         (bstzhireg, cmpstz, bstz, bistz): New.
17652         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
17653         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
17654         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
17655         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
17656         (h8sx_unary_memory_operator): New function.
17657         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
17658         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
17659         * config/h8300/h8300.md: Add peepholes to combine reloads and
17660         arithmetic insns.
17661         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
17662         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
17663         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
17664         (and?i, ior?i, xor?i): Likewise.
17665         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
17666         * config/h8300/h8300.c: Move enums and prototypes to head of file.
17667         Various whitespace fixes.
17668         (h8300_constant_length): New function, split out from...
17669         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
17670         (h8300_classify_operand): Use IN_RANGE.
17671         (h8300_classify_operand): Use h8300_constant_length.
17672         (h8300_short_move_mem_p): Tighten size check.
17673         (h8sx_mergeable_memrefs_p): Tighten equality check.
17674         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
17675         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
17676         for -msx.
17677         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
17678         * config/h8300/crtn.asm: Likewise.
17679         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
17680         if __H8300SX__ is defined.
17681         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
17682         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
17683         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
17684         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
17685         addresses as mode-dependent.
17686         * config/h8300/h8300.c (print_operand_address): Update call to
17687         h8300_get_index.
17688         (h8300_get_index): Take a mode argument.  Rework to fix an
17689         earlier misunderstanding.
17690         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
17691         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
17692         into a register if TARGET_H8300SX.
17693         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
17694         TARGET_H8300SX.  Also disable related define_splits.
17695         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
17696         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
17697         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
17698         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
17699         * config/h8300/h8300.h (OK_FOR_Z): New macro.
17700         (EXTRA_CONSTRAINT_STR): Check it.
17701         * config/h8300/h8300.c (h8300_classify_operand): Accept null
17702         class arguments.
17703         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
17704         * config/h8300/h8300.md (length_table): Add mov_imm4.
17705         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
17706         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
17707         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
17708         be a label.
17709         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
17710         * config/h8300/h8300.c (h8300_reorg): New function.
17711         (TARGET_MACHINE_DEPENDENT_REORG): Define.
17712         * config/h8300/h8300.md (length): Subtract the length of the
17713         delay slot from (pc) when checking the range of forward branches.
17714         (delay_slot, can_delay): New attributes.
17715         (define_delay): Add bra/s handling.
17716         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
17717         (jump): Add delayed-branch handling.
17718         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
17719         * expr.c (expand_strcpy): New function.
17720         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
17721         (expand_builtin_stpcpy): Likewise.
17722         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
17723         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
17724         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
17725         handling to improve register allocation for -fno-omit-frame-pointer.
17726         (h8sx_split_movmd): Delete, moving er6 handling into...
17727         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
17728         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
17729         (movmd): Add calls to copy_rtx.
17730         (movmd_internal): In the second alternative, allow the initial and
17731         final destination registers to be different .  Update the splitter
17732         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
17733         instead of h8sx_split_movmd.
17734         (stpcpy, movsd): New expanders.
17735         (movsd_internal): New define_insn.
17736         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
17737         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
17738         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
17739         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
17740         and DESTINATION_REGS.
17741         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
17742         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
17743         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
17744         (h8300_move_ratio): Declare.
17745         (MOVE_RATIO): Use it.
17746         * config/h8300/h8300.c (h8300_move_ratio): New variable.
17747         (h8300_init_once): Initialize it.
17748         (h8300_reg_class_from_letter): New function.
17749         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
17750         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
17751         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
17752         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
17753         (movstrsi, movmd): New expanders.
17754         (movmd_internal): New insn.
17755         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
17756         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
17757         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
17758         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
17759         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
17760         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17761         * config/h8300/h8300.c (nibble_operand): Fix warning.
17762         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
17763         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
17764         (movsf_h8300h): Disable for TARGET_H8300SX.
17765         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17766         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
17767         h8300_stm_parallel and h8300_return_parallel.
17768         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
17769         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
17770         h8300_stm_parallel, h8300_return_parallel): New functions.
17771         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
17772         if TARGET_H8300SX.  Use h8300_push_pop.
17773         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
17774         and final pop when generating h8sx code.  Always emit some form
17775         of return insn.
17776         * config/h8300/h8300.md: Don't enforce register alignment in
17777         stm peepholes if TARGET_H8300SX.
17778         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
17779         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
17780         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
17781         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17782         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
17783         (MULTILIB_DIRNAMES): Add a directory for it.
17784         (MULTILIB_MATCHES): Delete.
17785         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
17786         * final.c (walk_alter_subreg): Handle addresses with subregs
17787         inside a ZERO_EXTEND or AND.
17788         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
17789         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
17790         if TARGET_H8300SX.
17791         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
17792         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
17793         @(dd,Rn.w) and @(dd,ERn.L).
17794         (h8300_displacement_size): Take the whole address as argument.
17795         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
17796         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
17797         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
17798         (h8sx_mergeable_memrefs_p): Declare.
17799         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
17800         (HAVE_PRE_INCREMENT): Likewise.
17801         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
17802         addresses for TARGET_H8300SX,
17803         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
17804         and POST_DEC.
17805         (movb_length_table, movl_length_table): New tables.
17806         (movw_length_table): Define to movb_length_table.
17807         (h8300_displacement_size): New, split out from...
17808         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
17809         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
17810         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
17811         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
17812         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
17813         (compute_plussi_length, compute_plussi_cc): Update accordingly.
17814         (h8sx_unary_shift_operator): Get the mode from the operator.
17815         (binary_shift_operator): Likewise.
17816         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
17817         a memory reference, check whether the reference is offsettable.
17818         (length_table): Add movb, movw and movl.
17819         (movqi): Add new h8sx pattern.  Don't force one operand to be a
17820         register when generating h8sx code.
17821         (movhi, movsi, movsf): Likewise.
17822         (movstrictqi): Use the length_table attribute.
17823         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
17824         (addqi3): Split into a define_expand and define_insn.  Don't accept
17825         memory operands in the expander.  Use h8300_operands_match_p to
17826         check for matching operands in the define_insn.
17827         (subqi3, negqi2, one_cmplqi2): Likewise.
17828         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
17829         in any patterns that are unused in h8sx code.  In the h8sx patterns,
17830         use h8300_operands_match_p to check whether operands match.
17831         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
17832         one_cmpl[hs]i3): Likewise.
17833         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
17834         in the expander.
17835         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
17836         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
17837         (h8300_insn_length_from_table): Add a second parameter.
17838         (output_h8sx_shift): Declare.
17839         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
17840         (EXTRA_CONSTRAINT): Replace with...
17841         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
17842         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
17843         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
17844         and h8sx_binary_shift_operator.
17845         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
17846         for TARGET_H8300SX.
17847         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
17848         (bit_memory_operand, fix_bit_operand): Likewise.
17849         (h8300_length_table_for_insn): Remove.
17850         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
17851         instructions.
17852         (h8300_short_immediate_length, h8300_binary_length): New functions.
17853         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
17854         (output_plussi): Use sub to add negative constants.
17855         (compute_plussi_length): Adjust accordingly.
17856         (h8sx_single_shift_type): New enum.
17857         (h8sx_single_shift, h8sx_unary_shift_operator,
17858         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
17859         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
17860         single h8sx instruction.  Return false in this case.
17861         * config/h8300/h8300.md (length_table): Add short_immediate.
17862         (length): Pass the operand array to h8300_insn_length_from_table.
17863         (adjust_length): Assume "no" for insns with a length_table attribute.
17864         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
17865         (*addhi3_h8300hs): Don't use for h8sx.
17866         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
17867         and sub.w #xx:3.
17868         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
17869         1's predicate to nonimmediate_operand.  Only skip default expansion
17870         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
17871         for single h8sx shift instructions.
17872         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
17873         * config/h8300/h8300.c (nibble_operand): Split out of...
17874         (reg_or_nibble_operand): ... this.
17875         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
17876         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
17877         umulhisi3): Introduce expand, and introduce separate insns for
17878         sign- or zero-extended REG and already-extended CONST_INT.
17879         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
17880         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
17881         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
17882         (subhi3): Likewise.  Don't accept immediates for operand 1.
17883         Remove the early clobber from second alternative of the h8300s pattern.
17884         (subsi3): Generalize for h8sx.  Force operand 2 into a register
17885         on plain h8300 targets.
17886         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
17887         (subsi3_h8300h): Generalize for h8sx.
17888         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
17889         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
17890         * config/h8300/h8300.c (reg_or_nibble_operand): New.
17891         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
17892         (TARGET_H8300SXMUL): New.
17893         (CONST_OK_FOR_P): New.
17894         (CONST_OK_FOR_LETTER_P): Adjust.
17895         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
17896         umulhisi3): Accept 4-bit immediate on H8SX.
17897         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
17898         (udivsi3, divhi3, udivsi3, divsi3): New.
17899         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
17900         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
17901         * config/h8300/h8300.h (OK_FOR_Q): New macro.
17902         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
17903         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
17904         Add ADDRESSOF to the bit_operand entry.
17905         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
17906         (h8300_src_operand): Likewise.
17907         (bit_operand): Check nonimmediate_operand rather than general_operand.
17908         Accept any nonimmediate_operand in h8sx code.
17909         (h8300_and_costs): Initialize operands[1].
17910         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
17911         (h8300_operand_class): New enum.
17912         (h8300_length_table): New typedef.
17913         (addb_length_table, addw_length_table, addl_length_table,
17914         logicl_length_table): New tables.
17915         (logicb_length_table, logicw_length_table): New macros.
17916         (h8300_classify_operand, h8300_length_from_table,
17917         h8300_length_table_for_insn, h8300_unary_length,
17918         h8300_insn_length_from_table): New functions.
17919         (output_plussi): Only use adds and subs for register destinations.
17920         Disable redundant clause.
17921         (compute_plussi_cc): Likewise.
17922         (compute_plussi_length): Likewise.  Use h8300_length_from_table
17923         to work out the length of an insn.
17924         (output_logical_op): Only use narrower immediate instructions
17925         if the destination is a register.
17926         (compute_logical_op_cc): Likewise.
17927         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
17928         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
17929         * config/h8300/h8300.md (length_table): New attribute.
17930         (length): When an instruction has a length_table attribute, use
17931         h8300_insn_length_from_table to calculate its default length.
17932         (cmpqi): Use h8300_dst_operand for the first operand and
17933         h8300_src_operand for the second.
17934         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
17935         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
17936         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
17937         iorsi3, xorhi3, xorsi3): Likewise.
17938         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
17939         so that it allows any combination of operands for TARGET_H8300SX.
17940         (iorqi3, xorqi3): Likewise.
17941         (cmpqi): Use the length_table attribute.
17942         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
17943         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
17944         (cmpqi): Add 'Q' constraint.
17945         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
17946         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
17947         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
17948         * config/h8300/h8300.h (MASK_H8300SX): New macro.
17949         (TARGET_H8300S): True for both -ms and -msx.
17950         (TARGET_H8300SX): New macro.
17951         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
17952         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
17953         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
17954         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
17955         [Temporary change.]
17956         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
17957         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
17958         16-bit pointers and 32-bit ints.
17959         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
17960         CONST_DOUBLE with mode no wider than SImode.
17961         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
17962         output operand.
17963         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
17964         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
17965         or SUBREG thereof.
17966         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
17967         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
17968         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
17969
17970 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17971
17972         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
17973
17974 2004-07-07  Per Bothner  <per@bothner.com>
17975
17976         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
17977
17978 2004-07-07  Mike Stump  <mrs@apple.com>
17979
17980         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
17981         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
17982         (machopic_finish): Likewise.
17983
17984 2004-07-07  Richard Henderson  <rth@redhat.com>
17985
17986         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
17987         through any value-preserving cast.
17988
17989 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17990
17991         * function.c (assign_parm_find_data_types): Call
17992         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
17993
17994 2004-07-07  Steven Bosscher  <stevenb@suse.de>
17995
17996         * tree-cfg.c (group_case_labels): Remove case labels that have
17997         the same target as the default case.
17998
17999 2004-07-07  Steven Bosscher  <stevenb@suse.de>
18000
18001         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
18002         regardless of DECL_LANG_SPECIFIC being present or not.
18003         * tree.h (DECL_NUM_STMTS): Purge.
18004
18005 2004-07-07  Andrew Pinski  <apinski@apple.com>
18006
18007         * configure: Regenerate with the right autoconf.
18008
18009 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
18010
18011         * ifcvt.c (total_bb_rtx_cost): New function.
18012         (find_if_case_1): Compare rtx_cost of basic block to cost of
18013         BRANCH_COST insns.
18014         (find_if_case_2): Same.
18015
18016 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
18017
18018         PR target/10567
18019         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
18020         (output_return): Likewise.
18021         (output_sibcall): Abort if !flag_delayed_branch.
18022         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
18023         (emit_and_preserve): New function.
18024         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
18025         indirect jump to the thunked-to function if !flag_delayed_branch.
18026         * config/sparc/sparc.md (delayed_branch): New attribute.
18027         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
18028         attribute to compute the length of the insn.
18029         (goto_handler_and_restore): Likewise.
18030
18031 2004-07-07  Andrew Pinski  <apinski@apple.com>
18032
18033         PR tree-optimization/15777
18034         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
18035
18036         * expr.c (expand_expr_real_1): Fix formating.
18037         BUFFER_REF and IN_EXPR are dead.
18038         * fold-const.c (non_lvalue): BUFFER_REF is dead.
18039         * tree-inline.c (estimate_num_insns_1): Likewise.
18040         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
18041         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
18042         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
18043
18044 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18045
18046         * collect2.c (dump_file): Don't call cplus_demangle if
18047         HAVE_LD_DEMANGLE is defined.
18048         (main): Pass "--demangle" to ld if no_demangle is not 0 and
18049         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
18050         if HAVE_LD_DEMANGLE is defined.
18051
18052         * configure.ac (--with-demangler-in-ld): Added
18053         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
18054         --with-demangler-in-ld is used.
18055         * config.in: Regenerated.
18056         * configure: Likewise.
18057
18058 2004-07-07  Roger Sayle  <roger@eyesopen.com>
18059
18060         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
18061         for simple floating point operations "fp", double precision
18062         multiplication "dmul", and single and double precision division
18063         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
18064         (ppc630_cost): New table split from ppc620_cost, to distinguish
18065         differences in floating point latencies.
18066         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
18067         (rs6000_rtx_costs): Add support for single and double precision
18068         floating point addition, subtraction, multiplication, division,
18069         fused-multiply-add, fused-multiply-sub, negation, absolute value
18070         and negative absolute value.  Tweak MEM case to use prefered idiom.
18071
18072 2004-07-07  Richard Henderson  <rth@redhat.com>
18073
18074         * tree-flow-inline.h (may_propagate_copy): Move...
18075         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
18076         attempt to copy between types requiring conversion.
18077         * tree-flow.h (may_propagate_copy): Update decl.
18078         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
18079
18080 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
18081
18082         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
18083         from -mtune= option.
18084
18085 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
18086
18087         * builtins.c: Rename movstr*, except for movstrict*, to
18088         movmem* and clrstr* to clrmem*.
18089         * expr.c: Likewise.
18090         * expr.h: Likewise.
18091         * genopinit.c: Likewise.
18092         * integrate.c: Likewise.
18093         * local-alloc.c: Likewise.
18094         * optabs.c: Likewise.
18095         * optabs.h: Likewise.
18096         * config/alpha/alpha.h: Likewise.
18097         * config/alpha/alpha.md: Likewise.
18098         * config/arm/arm-protos.h: Likewise.
18099         * config/arm/arm.c: Likewise.
18100         * config/arm/arm.md: Likewise.
18101         * config/avr/avr.md: Likewise.
18102         * config/c4x/c4x.c: Likewise.
18103         * config/c4x/c4x.md: Likewise.
18104         * config/frv/frv.md: Likewise.
18105         * config/i386/i386-protos.h: Likewise.
18106         * config/i386/i386.c: Likewise.
18107         * config/i386/i386.h: Likewise.
18108         * config/i386/i386.md: Likewise.
18109         * config/i860/i860.c: Likewise.
18110         * config/i860/i860.md: Likewise.
18111         * config/ip2k/ip2k.md: Likewise.
18112         * config/ip2k/libgcc.S: Likewise.
18113         * config/ip2k/t-ip2k: Likewise.
18114         * config/m32r/m32r.c: Likewise.
18115         * config/m32r/m32r.md: Likewise.
18116         * config/mcore/mcore.md: Likewise.
18117         * config/mips/mips.c: Likewise.
18118         * config/mips/mips.md: Likewise.
18119         * config/ns32k/ns32k.c: Likewise.
18120         * config/ns32k/ns32k.h: Likewise.
18121         * config/ns32k/ns32k.md: Likewise.
18122         * config/pa/pa.c: Likewise.
18123         * config/pa/pa.md: Likewise.
18124         * config/pdp11/pdp11.h: Likewise.
18125         * config/pdp11/pdp11.md: Likewise.
18126         * config/rs6000/rs6000.c: Likewise.
18127         * config/rs6000/rs6000.md: Likewise.
18128         * config/s390/s390-protos.h: Likewise.
18129         * config/s390/s390.c: Likewise.
18130         * config/s390/s390.md: Likewise.
18131         * config/sh/lib1funcs.asm: Likewise.
18132         * config/sh/sh.c: Likewise.
18133         * config/sh/sh.md: Likewise.
18134         * config/sh/t-sh: Likewise.
18135         * config/sparc/sparc.h: Likewise.
18136         * config/vax/vax.md: Likewise.
18137         * config/xtensa/xtensa.c: Likewise.
18138         * config/xtensa/xtensa.md: Likewise.
18139         * doc/invoke.texi: Likewise.
18140         * doc/md.texi: Likewise.
18141         * doc/rtl.texi: Likewise.
18142
18143 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
18144
18145         PR target/16407
18146         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
18147         * config/mips/mips.c (mips_declare_common_object): New function,
18148         mostly split out from...
18149         (mips_output_aligned_decl_common): ...here.
18150         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
18151         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
18152         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
18153         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
18154
18155 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18156
18157         PR c/16392
18158         * function.c (assign_parms): Fix typo from previous change.
18159
18160 2004-07-07  Jason Merrill  <jason@redhat.com>
18161
18162         PR c++/15815
18163         * doc/extend.texi (C++ Interface): Correct information and
18164         discourage use.
18165
18166 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
18167
18168         PR target/16130
18169         PR target/16142
18170         PR target/16143
18171         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
18172         insn.
18173
18174 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18175
18176         PR target/1679.
18177         * config/m32r/m32r.c (m32r_function_symbol): New function:
18178         Generate a symbol name RTX with the correct m32r specific flags
18179         set.
18180         (block_move_call): Use new function to generate correct symbol.
18181         * config/m32r/m32r-protos.h: Add prototype for new funcion.
18182         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
18183         function.
18184
18185 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
18186
18187         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
18188         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
18189         TYPE_BINFO_BASETYPE): Remove.
18190         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
18191         to ...
18192         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
18193         here.
18194         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
18195         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
18196         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
18197         (struct tree_binfo): Rename base_types to base_binfos.
18198         * alias.c (record_component_aliases): Adjust BINFO macros.
18199         * dbxout.c (dbxout_type): Likewise.
18200         * dwarf2out.c (gen_member_die): Likewise.
18201         * sdbout.c (sdbout_one_type): Likewise.
18202         * tree-dump.c (deque_and_dump): Likewise.
18203         * config/i386/i386.c (classify_argument,
18204         contains_128bit_aligned_vector_p): Likewise.
18205
18206 2004-07-07  Nick Clifton  <nickc@redhat.com>
18207
18208         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
18209         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
18210
18211 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
18212
18213         * vec.h: Fix the example use.
18214
18215 2004-07-06  Richard Henderson  <rth@redhat.com>
18216
18217         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
18218         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
18219         * tree-inline.c (copy_body_r, setup_one_parameter,
18220         initialize_inlined_parameters, expand_call_inline,
18221         declare_inline_vars): Don't check it.
18222         (expand_calls_inline): Remove old version, rename new version
18223         from gimple_expand_calls_inline.
18224         * tree-optimize.c (execute_gimple): Remove.
18225         (pass_gimple): Don't run anything.
18226
18227 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
18228
18229         * doc/sourcebuild.texi: Use semicolons instead of commas in
18230         section title.
18231
18232 2004-07-06  Richard Henderson  <rth@redhat.com>
18233
18234         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
18235         (sra_walk_modify_expr, scan_init): Likewise.
18236         (generate_element_zero): Check visited before scanning children.
18237         (generate_element_init): Set visited on error.
18238         (scalarize_init): Handle generate_element_init failure similar
18239         to use_block_copy.
18240
18241 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
18242
18243         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
18244         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
18245
18246 2004-07-06  Richard Henderson  <rth@redhat.com>
18247
18248         * config/i386/i386.c (legitimize_pic_address): Make static.
18249         (legitimize_address): Handle CONST with TLS operand.
18250         (ix86_expand_move): Don't call legitimize_pic_address directly.
18251         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
18252
18253 2004-07-06  Roger Sayle  <roger@eyesopen.com>
18254
18255         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
18256         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
18257         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
18258         is currently executed unconditionally, i.e. not in "else_bb".
18259
18260 2004-07-06  Steven Bosscher  <stevenb@suse.de>
18261
18262         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
18263         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18264         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
18265         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18266         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
18267         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18268         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
18269         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18270         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
18271         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18272         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
18273         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18274         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
18275         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18276         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
18277         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18278
18279 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18280
18281         * dojump.c (do_jump): REFERENCE_EXPR is dead.
18282         * expr.c (expand_expr_real_1): Ditto.
18283         * tree-inline.c (estimate_num_insns_1): Ditto.
18284         * tree-pretty-print.c (dump_generic_node): Ditto.
18285         (op_symbol): Ditto.
18286         * tree.def: Ditto.
18287
18288 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18289
18290         * tree-ssa-pre.c (reference_node_pool): New pool.
18291         (find_or_generate_expression): Class 'r' is okay too.
18292         (create_value_expr_from): Ditto.
18293         (add_to_sets): LHS should not include vuses.
18294         (eliminate): Ditto.
18295         (compute_avail): Reverse ordering of tests.
18296         Valuize INDIRECT_REF as well.
18297
18298 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
18299
18300         PR rtl-optimization/16380
18301         * loop.c (check_dbra_loop): Sink comparison instructions if they
18302         do something other than set cc0.
18303
18304 2004-07-06  James E Wilson  <wilson@specifixinc.com>
18305
18306         * doc/interface.texi (longjmp and automatic variables): Delete
18307         paragraph recommending taking the address of a variable.
18308
18309 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18310
18311         * vec.h (VEC_embedded_alloc): Remove.
18312         (VEC_embedded_size, VEC_embedded_init): New.
18313         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
18314         MEM_STAT_INFO.
18315         (VEC_truncate): New.
18316         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
18317         (vec_embedded_alloc): Remove.
18318         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
18319         (vec_embedded_alloc): Remove.
18320
18321 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
18322
18323         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
18324         (gt-langhooks.h): Remove.
18325
18326 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
18327
18328         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
18329
18330 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
18331
18332         * config/sparc/sparc.c (get_pc_symbol): Rename into
18333         add_pc_to_pic_symbol.
18334         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
18335         (load_pic_register): Account for previous changes.
18336         Use reg_names.  Don't create the label twice.
18337         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
18338         UNSPEC_LOAD_PCREL_SYM.
18339         (get_pc): Rename into load_pcrel_sym.  Add predicate to
18340         operands.  Remove condition.
18341
18342 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18343
18344         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
18345         RECORD, UNION & QUAL_UNION is actually a binfo.
18346
18347         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
18348         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
18349         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
18350         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
18351         * dwarf2out.c (add_data_member_location_attribute): Likewise.
18352         (gen_inheritance_die): Likewise.
18353         * tree-dump.c (deque_and_dump): Likewise.
18354         * doc/c-tree.texi (Binfos): Add under reconstruction note.
18355
18356 2004-07-06  Steven Bosscher  <stevenb@suse.de>
18357
18358         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
18359         Define.
18360         * config/mcore/mcore.md: Model memory latency with a simple DFA
18361         pipeline description instead of a define_function_unit.
18362
18363 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18364
18365         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
18366         * langhooks.h (var_mod_type_p): Likewise.
18367         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
18368         * expr.c (count_type_elements): Properly handle return from
18369         array_type_nelts and properly test for overflow.
18370         * gimplify.c (gimplify_init_constructor): Properly handle return
18371         from array_type_nelts.
18372         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
18373         * integrate.c (copy_decl_for_inlining): Correct comments.
18374         * tree-inline.c (remap_decl): Update comments, remove dead code,
18375         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
18376         (remap_type): Only remap if variably modified by vars in function
18377         being inlined.
18378         (copy_body_r): Use compatible_type langhooks to see when can fold.
18379         (setup_one_parameter): Don't remap type.
18380         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
18381         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
18382         compute TREE_INVARIANT for decl case.
18383         (find_var_from_fn): New function.
18384         (variably_modified_type_p): Add arg and call new function.
18385         * tree.h (variably_modified_type_p): Add extra arg.
18386
18387 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
18388
18389         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
18390         (goto_handler_and_restore_v9): Delete disabled insn.
18391         (goto_handler_and_restore_v9_sp64): Likewise.
18392
18393 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18394
18395         * calls.c (load_register_parameters): Call expand_shift instead
18396         of expand_binop with ashl_optab (or other shift optab) directly.
18397         * expr.c (emit_group_load, emit_group_store): Likewise.
18398         * function.c (assign_parm_setup_block): Likewise.
18399         * stmt.c (shift_return_value): Likewise.
18400
18401 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
18402
18403         * expr.c (expand_assignment): Disable the bitfield += optimizations.
18404
18405 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18406
18407         * doc/sourcebuild.texi: Revert previous patch.
18408
18409 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18410
18411         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
18412         TARGET_MEM_FUNCTIONS.
18413         * system.h: Poison TARGET_MEM_FUNCTIONS.
18414         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
18415         bcmp_libfunc, bzero_libfunc): Remove.
18416         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
18417         bzero_libfunc.
18418         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
18419         * doc/standards.texi: Don't mention calling BSD string functions.
18420         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
18421         * config/vax/t-memfuncs: New.
18422         * config/memcmp.c, config/memcpy.c, config/memmove.c,
18423         config/memset.c: New.
18424         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
18425         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
18426         vax/t-memfuncs.
18427         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
18428         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
18429         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
18430         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
18431         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
18432         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
18433         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
18434         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
18435         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
18436         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
18437
18438 2004-07-05  Richard Henderson  <rth@redhat.com>
18439
18440         * function.c (assign_parm_setup_reg): Properly rename variables in
18441         FUNCTION_ARG_CALLEE_COPIES section.
18442
18443 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18444
18445         * tree-mudflap.c: Include cgraph.h.
18446         (mf_init_extern_trees): Rename to mudflap_init.  Export.
18447         Rewrite to create synthetic declarations instead of looking
18448         up declarations from mf-runtime.h.
18449         (mf_make_builtin, mf_make_cache_struct_type): New functions.
18450         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
18451         Correct commentary.
18452         (execute_mudflap_function_decls, mudflap_register_call):
18453         Don't call mf_init_extern_trees.
18454         (mudflap_finish_file): Use cgraph_build_static_cdtor.
18455
18456         * tree-mudflap.h: Update prototypes.
18457         * c-mudflap.c: Delete file.
18458         * c-common.c: Include tree-mudflap.h.
18459         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
18460         * Makefile.in: Remove all references to c-mudflap.o.
18461         Update dependencies.
18462
18463 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18464
18465         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
18466         displacements with the spatial-locality cache-control completer.
18467
18468 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18469
18470         * langhooks.c: Don't include gt-langhooks.h.
18471         (var_labelno): Delete.
18472         (lhd_set_decl_assembler_name): Do not append a distinguishing
18473         number to file-scope internal-linkage declarations for the first
18474         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
18475         the declaration itself (if at block scope), or its containing
18476         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
18477         number.
18478
18479         * opts.c (cur_in_fname): New global.
18480         * opts.h: Declare it.
18481         * tree.c: Include opts.h.
18482         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
18483         DECL_UID equal to cur_in_fname.
18484         (copy_node_stat): Do not change DECL_UID when copying a
18485         TRANSLATION_UNIT_DECL.
18486         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
18487         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
18488
18489         * c-decl.c (c_static_assembler_name): Delete.
18490         * c-tree.h (c_static_assembler_name): Delete prototype.
18491         * c-lang.c, objc/objc-lang.c: Don't override
18492         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
18493
18494         * Makefile.in (tree.o): Update dependencies.
18495         (GTFILES): Remove langhooks.c.
18496
18497 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18498
18499         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
18500         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
18501         Normalize "X % C" as "X % -C" for signed modulus and negative C.
18502         Optimize "X % -Y" as "X % Y" for signed modulus.
18503         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
18504         into "((unsigned) X % Y) == 0".
18505
18506 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18507
18508         * sourcebuild.texi (Config Fragments): Use @comma{} in
18509         cross-reference to section title.
18510
18511 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18512
18513         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
18514         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
18515         (gimplify_target_expr, gimplify_expr): Likewise.
18516         (copy_if_shared_r): No longer need special case for BIND_EXPR.
18517         (unshare_body, unvisit_body): Only look at nested if BODY_P is
18518         whole function.
18519         (gimplify_compound_lval): See if we can strip any useless conversion.
18520         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
18521         from RHS, not LHS.
18522         (gimplify_modify_expr_to_memset): Likewise.
18523         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
18524         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
18525         (declare_inline_vars): Likewise.
18526         (walk_type_fields): New function.
18527         (walk_tree): Use it.
18528         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
18529
18530         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
18531         (sra_walk_modify_expr): Allow init function to fail.
18532         (scan_init): Now returns bool.
18533         (generate_element_init): If can't understand INIT, return false.
18534         (scalarize_init): Return false if generate_element_init does.
18535
18536         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
18537         print bounds.
18538
18539         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
18540         bounds if bounds aren't constant.
18541
18542         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
18543
18544         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
18545         to type hooks; remove bogus PARAMS.
18546
18547 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
18548
18549         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
18550         * dwarf2out.c (add_data_member_location_attribute): Check for
18551         TREE_BINFO.
18552         * tree.c (tree_node_kinds): Add "binfos".
18553         (binfo_lang_slots): New.
18554         (make_node_stat): Add TREE_BINFO.
18555         (make_tree_binfo_stat): New.
18556         (tree_node_structure): Add TREE_BINFO.
18557         * tree.def (TREE_BINFO): New.
18558         * tree.h (REC_OR_UNION_CHECK): Rename to ...
18559         (RECORD_OR_UNION_CHECK): ... here.
18560         (NOT_RECORD_OR_UNION_CHECK): New.
18561         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
18562         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
18563         RECORD_OR_UNION_CHECK.
18564         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
18565         (TYPE_LANG_SLOT_1): New.
18566         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
18567         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
18568         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
18569         (BINFO_ELTS): Remove.
18570         (BINFO_LANG_SLOT): New.
18571         (struct tree_binfo): New.
18572         (binfo_lang_slots): Declare.
18573         (enum tree_node_structure_enum): Add TS_BINFO.
18574         (union tree_node): Add binfo.
18575         (make_tree_binfo_stat): Declare.
18576         (make_tree_binfo): New.
18577         (enum tree_node_kind): Add binfo_kind.
18578
18579         * objc/objc-act.c (start_class, objc_declare_protocols,
18580         start_protocols): Use TYPE_LANG_SLOT_1.
18581         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
18582         to ...
18583         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
18584         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
18585         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
18586         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
18587
18588 2004-07-05  Steven Bosscher  <stevenb@suse.de>
18589
18590         * rtl.h (struct rtx_def): Remove the integrated flag.
18591         Use the return_val flag for MEM_SCALAR_P.
18592         Reshuffle and update flags in CLEAR_RTX_FLAGS.
18593
18594 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
18595
18596         PR target/16357
18597         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
18598         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
18599         move_by_pieces.
18600
18601 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
18602
18603         * var-tracking.c: Fix some comments.
18604         (frame_stack_adjust): New.
18605         (vt_stack_adjustments): Init stack_adjust of entry block to
18606         minus stack adjustment of function prologue.
18607         (adjust_stack_reference): Do not adjust if adjustment == 0.
18608         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
18609         (emit_notes_in_bb): Likewise.
18610         (vt_add_function_parameters): Do not adjust locations of
18611         function arguments.
18612         (vt_initialize): Compute the stack adjustment of function
18613         prologue and offset the initial "location" of frame_base_decl
18614         from the stack pointer after prologue.
18615
18616 2004-07-04  Richard Henderson  <rth@redhat.com>
18617
18618         * function.c (struct assign_parm_data_all): New.
18619         (struct assign_parm_data_one): New.
18620         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
18621         assign_parm_find_data_types, assign_parms_setup_varargs,
18622         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
18623         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
18624         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
18625         assign_parm_setup_block, assign_parm_setup_reg,
18626         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
18627         (assign_parms): ... here.
18628
18629 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
18630
18631         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
18632         now are bitmap_set_t's.
18633         (bitmap_insert_into_set): No point in inserting the value if
18634         it's invariant.
18635         (bitmap_set_contains): New function.
18636         (bitmap_set_replace_value): Add comment on why we do it
18637         this way.
18638         (set_contains): Removed.
18639         (bitmap_set_subtract_from_value_set): New name of
18640         set_subtract now that it's arguments are two different
18641         types of sets.
18642         Update callers.
18643         (bitmap_find_leader): Change algorithm used.
18644         (find_or_generate_expression): Update use of functions for new
18645         bitmap sets.
18646         (create_expression_by_pieces): Ditto.
18647         (insert_aux): Ditto.
18648         (insert): Ditto.
18649         (add_to_sets): Ditto.
18650         (init_pre): Ditto.
18651         (execute_pre): Ditto.
18652         (compute_avail): Ditto.
18653         Also ignore virtual phis.
18654
18655 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
18656
18657         * combine.c (simplify_comparison): Fix comment typo.
18658
18659 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
18660
18661         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
18662         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
18663         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
18664         (output_restore): Change parameter from 'insn' to 'pat'.
18665         (output_return): Adjust call to output_restore.
18666         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
18667         Adjust call to output_restore.
18668
18669 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
18670
18671         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
18672         and assert system is bsd.
18673
18674 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
18675
18676         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
18677         (TARGET_SWITCHES): Remove -mdebugc.
18678         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
18679         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
18680         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
18681         (sle_[sd]i_reg): Delete.
18682
18683 2004-07-04  Steven Bosscher  <stevenb@suse.de>
18684
18685         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
18686         Define.
18687         * config/iq2000/iq2000.md: Translate old pipeline description to an
18688         equivalent new one.
18689
18690 2004-07-04  Roger Sayle  <roger@eyesopen.com>
18691
18692         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
18693         Ensure the replacement rhs is valid gimple before performing
18694         the substitution.  Return false if these sanity checks fail.
18695         (fold_stmt): Only set changed to true, if set_rhs returns true.
18696         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
18697         succeeds.
18698
18699 2004-07-04  Richard Henderson  <rth@redhat.com>
18700
18701         PR c/16348
18702         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
18703
18704 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
18705
18706         * configure.ac (ranlib_flags): New variable.
18707         * Makefile.in (RANLIB_FLAGS): New variable.
18708         (libbackend.a): Use it.
18709         * configure: Regenerated.
18710
18711 2004-07-04  Roger Sayle  <roger@eyesopen.com>
18712
18713         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
18714         a "sign mask" instead of using ashr_optab directly.
18715
18716 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
18717
18718         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
18719         * doc/cppopts.texi: Clarify processing of command-line defines.
18720
18721 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
18722
18723         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
18724
18725 2004-07-04  Richard Henderson  <rth@redhat.com>
18726
18727         * rtl.def (ADDRESSOF): Remove.
18728         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
18729         (find_base_term, memrefs_conflict_p): Likewise.
18730         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
18731         (fold_rtx, cse_insn, set_live_p): Likewise.
18732         * dwarf2out.c (mem_loc_descriptor): Likewise.
18733         (add_location_or_const_value_attribute): Likewise.
18734         * emit-rtl.c (copy_insn_1): Likewise.
18735         * explow.c (memory_address): Likewise.
18736         * expmed.c (store_split_bit_field): Likewise.
18737         * expr.c (expand_expr_real_1): Likewise.
18738         * function.c (instantiate_decl
18739         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
18740         * genrecog.c (preds, validate_pattern): Likewise.
18741         * integrate.c (copy_rtx_and_substitute): Likewise.
18742         * recog.c (general_operand, register_operand): Likewise.
18743         (memory_address_p): Likwise.
18744         * reload1.c (eliminate_regs, elimination_effects): Likewise.
18745         * rtl.c (copy_rtx): Likewise.
18746         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
18747         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
18748         * rtlhooks.c (gen_lowpart_general): Likewise.
18749         * stmt.c (expand_asm_operands): Likewise.
18750         * web.c (entry_register, replace_ref, web_main): Likewise.
18751         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
18752         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
18753         * config/arm/arm.c (thumb_rtx_costs): Likewise.
18754         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
18755         * config/frv/frv.c (move_destination_operand, move_source_operand,
18756         condexec_dest_operand, condexec_source_operand,
18757         condexec_memory_operand): Likewise.
18758         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
18759         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
18760         (destination_xfmode_operand): Likewise.
18761         * config/mips/mips.h (PREDICATE_CODES): Likewise.
18762         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
18763         * config/s390/s390.c (general_s_operand): Likewise.
18764         * config/s390/s390.md (mov*): Likewise.
18765         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
18766
18767         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
18768         * expr.c (expand_expr_real_1): Likewise.
18769         * stmt.c (expand_decl): Likewise.
18770         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
18771
18772         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
18773         postponed_insns, put_var_into_stack, put_reg_into_stack,
18774         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
18775         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
18776         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
18777         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
18778         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
18779         purge_bitfield_addressof_replacements, purge_addressof_replacements,
18780         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
18781         struct insns_for_mem_walk_info, insns_for_mem_walk,
18782         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
18783         setjmp_protect_args): Remove.
18784         (push_function_context_to): Don't handle var_refs_queue.
18785         (pop_function_context_from, free_after_compilation): Likewise.
18786         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
18787         (assign_parms, allocate_struct_function): Likewise.
18788         (use_register_for_decl): New.
18789         (expand_function_end): Don't setjmp_protect.
18790         * function.h (struct emit_status): Update commentary.
18791         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
18792         (max_parm_reg, parm_reg_stack_loc): Remove.
18793         * passes.c (DFI_addressof): Remove.
18794         (dump_file_info): Remove addressof.
18795         (rest_of_handle_addressof): Remove.
18796         (rest_of_compilation): Don't call it.
18797         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
18798         * stmt.c (expand_decl): Use use_register_for_decl.
18799         * tree.h: Update decls.
18800         * web.c (mark_addressof): Remove.
18801         * doc/invoke.texi (-dF): Remove.
18802
18803 2004-07-03  Richard Henderson  <rth@redhat.com>
18804
18805         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
18806         instead of gen_mem_addressof.
18807         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
18808         TImode output register.
18809
18810 2004-07-03  Richard Henderson  <rth@redhat.com>
18811
18812         PR tree-optimization/16341
18813         * tree-sra.c (sra_walk_function): Increment to next stmt before
18814         processing the current stmt.
18815         (sra_insert_after): Always use BSI_SAME_STMT.
18816
18817 2004-07-03  Richard Henderson  <rth@redhat.com>
18818
18819         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
18820         fp plus with minus.
18821
18822 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18823
18824         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
18825         with tree_int_cst_equal.
18826
18827 2004-07-03  Andreas Schwab  <schwab@suse.de>
18828
18829         * config/ia64/ia64.md: Define new attribute "empty".
18830         (prologue_use, nop_x, insn_group_barrier): Set it.
18831
18832         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
18833         skip over "empty" insns.
18834
18835 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18836
18837         * tree-inline.c (initialize_inlined_parameters): Pass proper function
18838         context to gimplify_body.
18839         (walk_tree): Don't walk into types twice.
18840         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
18841
18842         * tree-sra.c (generate_element_init): Remove any useless conversions.
18843
18844         * gimplify.c (gimplify_conversion): Remove stripping useless
18845         conversions from here.
18846         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
18847         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
18848         Unshare before substituting PLACEHOLDER_EXPR.
18849         (gimplify_modify_expr_to_memset): Likewise.
18850         Pass address of TO to memset, not TO itself.
18851         (gimplify_init_constructor): Make copy of OBJECT so we have it each
18852         time we make an expression (to match a PLACEHOLDER_EXPR).
18853
18854         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
18855         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
18856         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
18857         * tree-ssa-dom.c (local_fold): Likewise.
18858
18859         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
18860         * langhooks.h (strct lang_hooks): New field type_max_size.
18861         * function.c (assign_temp): Call it.
18862
18863 2004-07-03  Steven Bosscher  <stevenb@suse.de>
18864
18865         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
18866         * config/sh/sh.md: Convert the SH1 pipeline description to
18867         a DFA model.
18868
18869 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
18870
18871         * c-decl.c (struct c_binding): Remove contour field; add
18872         depth, invisible, nested fields.
18873         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
18874         (B_IN_EXTERNAL_SCOPE): New convenience macros.
18875         (bind): Add invisible and nested arguments. Initialize
18876         new fields of struct c_binding; adjust loop scanning for
18877         insertion point.
18878         (free_binding_and_advance): Clear structure with memset.
18879         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
18880         in file scope, even if it's in external scope too.
18881         (pushdecl): Adjust to match.  Create invisible file-scope
18882         declarations for block-scope forward declarations of static functions.
18883         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
18884         (undeclared_variable, lookup_label, declare_label, define_label)
18885         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
18886         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
18887         (store_parm_decls_oldstyle): Adjust to match.
18888         (diagnose_mismatched_decls): Correct handling of linkage clashes.
18889         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
18890
18891         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
18892         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
18893
18894 2004-07-02  Richard Henderson  <rth@redhat.com>
18895
18896         * c-decl.c (grokdeclarator): Don't frob current_function_decl
18897         around variable_size.
18898         (set_decl_nonlocal): Remove.
18899         (store_parm_decls): Add stmts for pending sizes.
18900         * calls.c (calls_function, calls_function_1): Remove.
18901         (precompute_arguments): Don't call it.
18902         * cfgexpand.c (set_save_expr_context): Remove.
18903         (tree_expand_cfg): Don't call it.
18904         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
18905         (dwarf2out_finish): Likewise.
18906         * expr.c (emit_block_move): Adjust addresses to BLKmode.
18907         (store_constructor): Don't pre-evaluate SAVE_EXPR.
18908         (safe_from_p): Don't queue SAVE_EXPRs.
18909         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
18910         or build plain VAR_DECLs.
18911         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
18912         (fold): Likewise.
18913         (fold_checksum_tree): Don't special-case SAVE_EXPR.
18914         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
18915         (put_var_into_stack): Don't handle SAVE_EXPR.
18916         (gen_mem_addressof): Likewise.
18917         * function.h (struct function): Remove x_save_expr_regs.
18918         (save_expr_regs): Remove.
18919         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
18920         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
18921         * stor-layout.c (variable_size): Don't set it.
18922         (force_type_save_exprs, force_type_save_exprs_1): Remove.
18923         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
18924         all callers.  Don't set SAVE_EXPR_CONTEXT.
18925         * tree-inline.h (remap_save_expr): Update decl.
18926         * tree.c (save_expr): Update build size.
18927         (first_rtl_op): Don't handle SAVE_EXPR.
18928         (unsave_expr_1, contains_placeholder_p): Likewise.
18929         (decl_function_context): Likewise.
18930         * tree.def (SAVE_EXPR): Remove args 1 and 2.
18931         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
18932         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
18933
18934 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18935
18936         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
18937         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
18938         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
18939         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
18940         some first-person references and patronizing comments.  Based on
18941         printed manual.
18942         * doc/invoke.texi: Don't reference fortran@gnu.org.
18943         * doc/trouble.texi (Warning when a non-void function value is
18944         ignored): Rewrite.  From Russ Allbery and Chris Devers.
18945
18946 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
18947
18948         * tree-ssa-pre.c (bitmap_set_t): New.
18949         (bb_value_sets): avail_out is now a bitmap_set_t.
18950         (bitmap_find_leader): New function.
18951         (bitmap_value_insert_into_set): Ditto.
18952         (bitmap_set_copy): Ditto.
18953         (bitmap_value_replace_in_set): Ditto.
18954         (bitmap_set_contains_value): Ditto.
18955         (bitmap_set_new): Ditto.
18956         (bitmap_set_pool): New pool.
18957         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
18958         (insert_aux): Ditto.
18959         (add_to_sets): Ditto.
18960         (compute_avail): Ditto
18961         (eliminate): Ditto.
18962         (init_pre): Ditto.
18963         (fini_pre): Ditto.
18964         (execute_pre): Ditto.
18965
18966 2004-07-02  Roger Sayle  <roger@eyesopen.com>
18967
18968         * config/rs6000/rs6000.c (struct processor_costs): New structure
18969         used to hold instruction latencies/sizes for processor types.
18970         (rs6000_cost): New global variable pointing to current CPU's costs.
18971         (rs6000_override_options): Initialize rs6000_cost to point to the
18972         appropriate cost table based upon rs6000_cpu and optimize_size.
18973         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
18974         timings inline.
18975
18976 2004-07-02  Richard Henderson  <rth@redhat.com>
18977
18978         * expmed.c (make_tree): Don't use SET_DECL_RTL.
18979
18980 2004-07-02  Steven Bosscher  <stevenb@suse.de>
18981
18982         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
18983
18984 2004-07-01  Richard Henderson  <rth@redhat.com>
18985
18986         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
18987         (alpha_gp_save_rtx): Use assign_stack_local instead of
18988         gen_mem_addressof.
18989
18990 2004-07-01  Richard Henderson  <rth@redhat.com>
18991
18992         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
18993         (alpha_rtx_cost_data): Update to match.
18994         (alpha_rtx_cost_size): New.
18995         (alpha_rtx_costs): Honor optimize_size.
18996
18997 2004-07-01  Richard Henderson  <rth@redhat.com>
18998
18999         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
19000         * cfgexpand.c (tree_expand_cfg): Do it here.
19001         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
19002         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
19003         * config/mips/mips.c (mips_output_mi_thunk): And here.
19004         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
19005         * config/sh/sh.c (sh_output_mi_thunk): And here.
19006         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
19007
19008 2004-07-01  Richard Henderson  <rth@redhat.com>
19009
19010         * tree.def (RTL_EXPR): Remove.
19011         * c-typeck.c (lvalue_p): Don't handle it.
19012         * expr.c (safe_from_p): Likewise.
19013         (expand_expr_real_1): Likewise.
19014         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
19015         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
19016         * gengtype.c (adjust_field_tree_exp): Likewise.
19017         * stmt.c (warn_if_unused_value): Likewise.
19018         * tree-gimple.c (recalculate_side_effects): Likewise.
19019         * tree-pretty-print.c (dump_generic_node): Likewise.
19020         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
19021         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
19022         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
19023
19024         * stmt.c (struct stmt_status): Remove x_last_expr_type,
19025         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
19026         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
19027         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
19028         all the bits that tracked last_expr.
19029         (expand_end_bindings): Don't track last_expr.
19030         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
19031         (clear_last_expr): Remove.
19032         (expand_asm): Don't call it.
19033         (expand_asm_operands, expand_end_cond): Likewise.
19034         (expand_naked_return, expand_null_return_1): Likewise.
19035         * c-typeck.c (c_begin_compound_stmt): Likewise.
19036         * cfgexpand.c (expand_block): Use expand_expr_stmt.
19037         * expr.c (expand_expr_real_1): Likewise.
19038         * tree.h: Update prototypes.
19039
19040         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
19041         (struct emit_status): Remove sequence_rtl_expr.
19042         (struct function): Remove x_rtl_expr_chain.
19043         (seq_rtl_expr, rtl_expr_chain): Remove.
19044         * function.c (struct temp_slot): Remove rtl_expr.
19045         (assign_stack_temp_for_type): Don't set it.
19046         (free_temp_slots, pop_temp_slots): Don't check it.
19047         (free_after_compilation): Don't clear x_rtl_expr_chain.
19048         (fixup_var_refs): Don't search it.
19049         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
19050         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
19051         or seq_rtl_expr.
19052         (push_topmost_sequence): Likewise.
19053         (end_sequence, init_emit): Likewise.
19054         (start_sequence_for_rtl_expr): Remove.
19055         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
19056         * rtl.h (preserve_rtl_expr_result): Remove.
19057
19058 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
19059
19060         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
19061         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
19062         typos.
19063
19064 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
19065
19066         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
19067         (STANDARD_STARTFILE_PREFIX_2): Define.
19068         (standard_startfile_prefix_1): Initialize to
19069         STANDARD_STARTFILE_PREFIX_1.
19070         (standard_startfile_prefix_2): Initialize to
19071         STANDARD_STARTFILE_PREFIX_2.
19072         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
19073         (STANDARD_STARTFILE_PREFIX_1): Define.
19074         (STANDARD_STARTFILE_PREFIX_2): Define.
19075         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
19076         (STANDARD_STARTFILE_PREFIX_2): Document.
19077
19078 2004-07-01  Richard Henderson  <rth@redhat.com>
19079
19080         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
19081         in order to disable scalarization.  Instead set a flag and wait
19082         for a candidate decl.
19083
19084 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
19085
19086         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
19087         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
19088         Use terminology "testsuite" and "enumerated".
19089
19090 2004-07-01  Richard Henderson  <rth@redhat.com>
19091
19092         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
19093         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
19094         (initial_return_save): Likewise.
19095         (flush_queued_reg_saves): Remap register numbers.
19096         (dwarf2out_return_reg): Likewise.
19097
19098 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19099
19100         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
19101
19102         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
19103         access functions for lower bound and element size and only output
19104         if lower bound nonzero or element size not same as that of type.
19105         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
19106
19107 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19108
19109         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
19110
19111 2004-07-01  Per Bothner  <per@bothner.com>
19112
19113         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
19114
19115 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
19116
19117         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
19118         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
19119         first operand.  Don't optimize if the bitfield is volatile.
19120
19121 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19122
19123         * c-pretty-print.c (pp_c_postfix_expression): Handle
19124         floating-point comparison operators.
19125         (pp_c_expression): Pass floating-point comparison
19126         operators to pp_c_postfix_expression.
19127
19128 2004-07-01  Roger Sayle  <roger@eyesopen.com>
19129
19130         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
19131         rtx_cost instead of "had_mult" to determine whether the transformed
19132         expression is cheaper than the original.
19133
19134 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
19135
19136         * alias.c (get_alias_set, canon_rtx, get_addr,
19137         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
19138         Use MEM_P.
19139         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
19140         expand_builtin): Likewise.
19141         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
19142         Likewise.
19143         * combine.c (can_combine_p, combinable_i3pat, try_combine,
19144         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
19145         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
19146         record_dead_and_set_regs_1, get_last_value_validate,
19147         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
19148         * cse.c (check_dependence, canon_hash, equiv_constant,
19149         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
19150         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
19151         count_reg_usage): Likewise.
19152         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
19153         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
19154         cselib_record_sets): Likewise.
19155         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
19156         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
19157         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
19158         * df.c (df_uses_record): Likewise.
19159         * dojump (do_jump): Likewise.
19160         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
19161         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
19162         decl_start_label): Likewise.
19163         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
19164         operand_subword, change_address_1, make_safe_from): Likewise.
19165         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
19166         stabilize, force_not_mem): Likewise.
19167         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
19168         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
19169         * expr.c (convert_move, convert_modes, emit_block_move,
19170         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
19171         emit_move_insn_1, expand_assignment, store_expr,
19172         store_constructor_field, store_constructor, store_field,
19173         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
19174         Likewise.
19175         * final.c (cleanup_subreg_operands, alter_subreg,
19176         get_mem_expr_from_op): Likewise.
19177         * flow.c (notice_stack_pointer_modification_1,
19178         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
19179         Likewise.
19180         * function.c (mark_temp_addr_taken, preserve_temp_slots,
19181         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
19182         optimize_bit_field, flush_addressof, purge_addressof_1,
19183         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
19184         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
19185         keep_stack_depressed): Likewise.
19186         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
19187         noce_process_if_block, find_memory): Likewise.
19188         * integrate.c (subst_constants, allocate_initial_values): Likewise.
19189         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
19190         update_equiv_regs): Likewise.
19191         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
19192         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
19193         * optabs.c (expand_abs, emit_unop_insn): Likewise.
19194         * passes.c (rest_of_handle_final): Likewise.
19195         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
19196         move2add_note_store): Likewise.
19197         * ra-build.c (detect_remat_webs): Likewise.
19198         * ra-debug.c (dump_static_insn_cost): Likewise.
19199         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
19200         * recog.c (validate_change, apply_change_group, cancel_changes,
19201         validate_replace_rtx_1, general_operand, register_operand,
19202         nonmemory_operand, push_operand, pop_operand, memory_operand,
19203         indirect_operand, asm_operand_ok, offsettable_memref_p,
19204         offsettable_nonstrict_memref_p, constrain_operands,
19205         store_data_bypass_p): Likewise.
19206         * reg-stack.c (subst_stack_regs_pat): Likewise.
19207         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
19208         copy_cost, reg_scan_mark_refs): Likewise.
19209         * regmove.c (optimize_reg_copy_3, stack_memref_p,
19210         combine_stack_adjustments_for_block): Likewise.
19211         * regrename.c (copyprop_hardreg_forward_1): Likewise.
19212         * reload.c (can_reload_into, push_reload, decompose, immune_p,
19213         find_reloads, find_reloads_address, find_reloads_address_1,
19214         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
19215         find_equiv_reg): Likewise.
19216         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
19217         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
19218         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
19219         delete_address_reloads): Likewise.
19220         * resource.c (mark_referenced_resources): Likewise.
19221         * rtlanal.c (get_jump_table_offset, count_occurrences,
19222         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
19223         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
19224         num_sign_bit_copies1): Likewise.
19225         * rtlhooks.c (gen_lowpart_general): Likewise.
19226         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
19227         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
19228         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
19229         sdbout_global_decl): Likewise.
19230         * simplify-rtx.c (simplify_subreg): Likewise.
19231         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
19232         expand_anon_union_decl, expand_end_case_type): Likewise.
19233         * unroll.c (calculate_giv_inc): Likewise.
19234         * var-tracking.c (stack_adjust_offset_pre_post,
19235         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
19236         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
19237         vt_add_function_parameters): Likewise.
19238         * varasm.c (make_var_volatile, notice_global_symbol,
19239         assemble_external, decode_addr_const, mark_weak,
19240         default_encode_section_info): Likewise.
19241
19242 2004-07-01  Steven Bosscher  <stevenb@suse.de>
19243
19244         * stmt.c (check_seenlabel): Remove.
19245         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
19246
19247 2004-07-01  Richard Henderson  <rth@redhat.com>
19248
19249         * function.h (struct function): Remove x_function_call_count.
19250         (function_call_count): Remove.
19251         * calls.c (expand_call): Don't set it.
19252         * integrate.c (copy_rtx_and_substitute): Likewise.
19253
19254         * function.h (struct function): Remove x_cleanup_label.
19255         (cleanup_label): Remove.
19256         * stmt.c (expand_value_return): Don't use it.
19257         * function.c (free_after_compilation): Don't set it.
19258         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
19259         * cfgexpand.c (tree_expand_cfg): Update call.
19260         * tree.h (expand_function_start): Update decl.
19261
19262 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
19263
19264         PR c/1027
19265         * c-lang.c (c_initialize_diagnostics): Move from here ...
19266         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
19267         (c_tree_printer): Use pretty-printer to format %T.
19268         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
19269         before '*' if not C++.
19270         (pp_c_direct_abstract_declarator): Don't try to print array upper
19271         bound for flexible array members.
19272         * c-tree.h: Include "diagnostic.h".
19273         (c_initialize_diagnostics): Declare.
19274         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
19275         * c-format.c (format_type_warning): New function.  Improve
19276         diagnostics for incorrect format argument types.
19277         (check_format_types): Use it.  Add two parameters.  Use the
19278         TYPE_MAIN_VARIANT of wanted_type.
19279         (check_format_info_main): Pass new parameters to
19280         check_format_types.
19281         (struct format_wanted_type): Update comment.
19282
19283 2004-07-01  Nick Clifton  <nickc@redhat.com>
19284
19285         * target.h (struct gcc_target): Add new field to struct cxx:
19286         import_export_class.
19287         * target-def.h (TARGET_CXX): Initialise the new field.
19288         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
19289         the new field.
19290         * doc/tm.texi: Document the new target hook.
19291
19292 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19293
19294         * builtins.c (fold_builtin_classify): Fix typo.
19295
19296 2004-07-01  Richard Henderson  <rth@redhat.com>
19297
19298         * function.c (identify_blocks, identify_blocks_1): Remove.
19299         * function.h (identify_blocks): Remove.
19300         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
19301
19302 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19303
19304         * builtins.c (fold_builtin_classify): New.
19305         (fold_builtin_unordered_cmp): Fix commentary.
19306         (fold_builtin): Use it.
19307         * builtins.def: Define builtins for isnan,
19308         isnanf, isnanl, finite, finitef, finitel,
19309         isinf, isinff, isinfl.
19310
19311 2004-07-01  Richard Henderson  <rth@redhat.com>
19312
19313         * function.h (struct function): Remove dont_emit_block_notes.
19314         * gimple-low.c (lower_function_body): Don't set it.
19315         * cfgexpand.c (expand_block): Don't check it.
19316         * cfglayout.c (insn_locators_initialize): Likewise.
19317         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
19318         * passes.c (rest_of_compilation): Likewise.
19319         * stmt.c (expand_start_bindings_and_block): Likewise.
19320         (expand_end_bindings): Likewise.
19321
19322 2004-07-01  Richard Henderson  <rth@redhat.com>
19323
19324         * cgraph.h (cgraph_build_static_cdtor): Declare.
19325         * cgraphunit.c (cgraph_build_static_cdtor): New.
19326         * c-objc-common.c (build_cdtor): Use it.
19327         * coverage.c (create_coverage): Likewise.
19328         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
19329         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
19330
19331 See ChangeLog.11 for earlier changes.